[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Removing the PVH assert in arch/x86/hvm/io.c:87

>>> On 05.12.14 at 12:07, <roger.pau@xxxxxxxxxx> wrote:
> El 05/12/14 a les 10.15, Jan Beulich ha escrit:
>>>>> On 04.12.14 at 17:35, <roger.pau@xxxxxxxxxx> wrote:
>>> I've just stumbled upon this assert while testing PVH on different
>>> hardware. It was added in 7c4870 as a safe belt, but it turns out INS
>>> and OUTS go through handle_mmio. So using this instructions from a PVH
>>> guest basically kills Xen.
>>> I've removed it and everything seems fine, so I'm considering sending a
>>> patch for 4.5 in order to have it removed. I think the path that could
>>> trigger the crash because of the missing vioapic stuff is already
>>> guarded by the other chunk added in the same patch.
>> Iirc we settled on forbidding paths to handle_mmio() for PVH (hence
>> the ASSERT()). Sadly you provide way too little detail on what is
>> actually happening in your case: What's the use case of to-be-
>> emulated INS/OUTS in a PVH kernel?
> In this specific situation I'm seeing intsw instructions executed by the
> FreeBSD ATA layer:
> http://fxr.watson.org/fxr/source/dev/ata/ata-lowlevel.c#L740 
>> What's the call tree that gets
>> you into handle_mmio(), considering that both calls to
>> handle_mmio_with_translation() from hvm_hap_nested_page_fault()
>> as well as the one to handle_mmio() ought to be unreachable for PVH?
> You can get there from vmx_vmexit_handler if the exit reason is

A PVH guest without passed through device shouldn't access I/O
ports in the first place. Are you trying to hand an IDE or SATA
controller to the guest? Or is this happening with just Dom0, in
which case I'd suspect the I/O bitmap isn't being set up properly,
thus causing a VM exit when none is needed?

And yes, guarding the EXIT_REASON_IO_INSTRUCTION handling
in vmx_vmexit_handler() against PVH would seem necessary,
directing control flow to exit_and_crash. I'm pretty certain I had
pointed this out while reviewing the original PVH series.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.