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

Assertion,'hvmemul_cache_disabled(curr)' failed at vmx.c:4380



Currently I only know how to get this assert with debug=y and hvm_fep enabled.  The attached test code should reproduce this. This happens when any guest does the "ud2 xen" inl that uses QEMU.  Port 0x3f1 is what I use to reproduce this.

My understanding is that it is possible to get to the x86 instruction emulator for "inl" instruction without hvm_fep enabled. Here is more info:

(XEN) [2020-08-18 12:33:45.880] Assertion 'hvmemul_cache_disabled(curr)' failed at vmx.c:4380 (XEN) [2020-08-18 12:33:45.905] ----[ Xen-4.15-unstable  x86_64 debug=y   Tainted:  C H ]----
(XEN) [2020-08-18 12:33:45.930] CPU:    3
(XEN) [2020-08-18 12:33:45.941] RIP: e008:[<ffff82d04029d565>]vmx_vmenter_helper+0x3d/0x45d (XEN) [2020-08-18 12:33:45.966] RFLAGS: 0000000000010097 CONTEXT: hypervisor (d1v0)
...

I did track this to:

commit 2efbc2d446b1315de9c6441a4d535b1fb91e1767
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Apr 23 09:55:00 2020 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Apr 23 09:55:00 2020 +0200

    x86/HVM: implement memory read caching for insn emulation
...
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Paul Durrant <pdurrant@xxxxxxxx>
...

   -Don Slutz

Attachment: hvm_fep_inl_test.c
Description: Text document


 


Rackspace

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