[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



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
EXIT_REASON_IO_INSTRUCTION.

Roger.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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