[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 0/6] HVM Emulation and trap injection fixes
This series covers issues discovered during the analysis of XSAs 105 and 106. Patch 1 makes fixes to the SYS{CALL,ENTER,EXIT} emulation Patches 2-4 provide support to inject software events from the emulator Patch 5 introduces HVM Forced Emulation Prefix support to aid testing Patch 6 is misc cleanup to svm_inject_trap() As part of developing the software event injection emulation (and reverse engineering AMD's behaviour), I developed a unit test. The unit test tests: * icebp (0xf1) * int $1 (0xcd 0x01) * int3 (0xcc) * int $3 (0xcd 0x03) In the following setups: * Regular instruction * Regular instruction with a redundant addr32 (0x67) prefix * Forced emulation prefix * Forced eumation and redundant addr32 prefix Under the following conditions: * Ring0, all perms ok * Ring0, descriptor not present * Ring3, all perms ok * Ring3, descriptor not present * Ring3, dpl=0 Verifying that the correct exception occurs with correct eip and error code (when appropriate). Given some TUITs I hope to upstream a framework for unit testing in this fashion. Andrew Cooper (5): x86/emulate: Provide further information about software events x86/hvm: Don't discard the SW/HW event distinction from the emulator x86/emulate: Support for emulating software event injection x86/hvm: Forced Emulation Prefix for debug builds of Xen x86/svm: Misc cleanup Jan Beulich (1): x86emul: fix SYSCALL/SYSENTER/SYSEXIT emulation docs/misc/xen-command-line.markdown | 11 ++ xen/arch/x86/hvm/emulate.c | 50 ++++++-- xen/arch/x86/hvm/hvm.c | 5 + xen/arch/x86/hvm/io.c | 2 +- xen/arch/x86/hvm/svm/svm.c | 77 ++++++++++-- xen/arch/x86/hvm/vmx/realmode.c | 14 +-- xen/arch/x86/hvm/vmx/vmx.c | 18 ++- xen/arch/x86/mm.c | 2 + xen/arch/x86/mm/shadow/common.c | 1 + xen/arch/x86/x86_emulate/x86_emulate.c | 203 +++++++++++++++++++++++--------- xen/arch/x86/x86_emulate/x86_emulate.h | 19 +++ xen/include/asm-x86/hvm/emulate.h | 5 +- xen/include/asm-x86/hvm/hvm.h | 5 + 13 files changed, 326 insertions(+), 86 deletions(-) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |