|
[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 |