All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] HVM Emulation and trap injection fixes
@ 2014-09-23 15:03 Andrew Cooper
  2014-09-23 15:03 ` [PATCH 1/6] x86emul: fix SYSCALL/SYSENTER/SYSEXIT emulation Andrew Cooper
                   ` (6 more replies)
  0 siblings, 7 replies; 28+ messages in thread
From: Andrew Cooper @ 2014-09-23 15:03 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper

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

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2014-09-26 21:09 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-23 15:03 [PATCH 0/6] HVM Emulation and trap injection fixes Andrew Cooper
2014-09-23 15:03 ` [PATCH 1/6] x86emul: fix SYSCALL/SYSENTER/SYSEXIT emulation Andrew Cooper
2014-09-23 15:03 ` [PATCH 2/6] x86/emulate: Provide further information about software events Andrew Cooper
2014-09-23 15:03 ` [PATCH 3/6] x86/hvm: Don't discard the SW/HW event distinction from the emulator Andrew Cooper
2014-09-25 20:57   ` Tian, Kevin
2014-09-26 20:12   ` Boris Ostrovsky
2014-09-23 15:03 ` [PATCH 4/6] x86/emulate: Support for emulating software event injection Andrew Cooper
2014-09-23 22:24   ` Aravind Gopalakrishnan
2014-09-24  9:22     ` Andrew Cooper
2014-09-24 13:01   ` Boris Ostrovsky
2014-09-24 13:04     ` Andrew Cooper
2014-09-24 13:24       ` Boris Ostrovsky
2014-09-24 14:20         ` Andrew Cooper
2014-09-26 20:13           ` Boris Ostrovsky
2014-09-26 21:09   ` Aravind Gopalakrishnan
2014-09-23 15:03 ` [PATCH 5/6] x86/hvm: Forced Emulation Prefix for debug builds of Xen Andrew Cooper
2014-09-23 15:27   ` Jan Beulich
2014-09-23 16:09     ` [PATCH v2 " Andrew Cooper
2014-09-23 16:21       ` Jan Beulich
2014-09-25 21:04         ` Tian, Kevin
2014-09-23 18:20       ` Boris Ostrovsky
2014-09-23 18:23         ` Andrew Cooper
2014-09-23 20:17           ` Boris Ostrovsky
2014-09-24 12:56             ` Andrew Cooper
2014-09-26 20:14       ` Boris Ostrovsky
2014-09-23 15:03 ` [PATCH 6/6] x86/svm: Misc cleanup Andrew Cooper
2014-09-26 20:15   ` Boris Ostrovsky
2014-09-23 15:19 ` [PATCH 0/6] HVM Emulation and trap injection fixes Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.