xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v10 0/3] Notify monitor when emulating an unimplemented instruction
@ 2017-09-06 13:48 Petre Pircalabu
  2017-09-06 13:48 ` [PATCH v10 1/3] gitignore: add local vimrc files Petre Pircalabu
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Petre Pircalabu @ 2017-09-06 13:48 UTC (permalink / raw)
  To: xen-devel
  Cc: Petre Pircalabu, kevin.tian, sstabellini, wei.liu2, jun.nakajima,
	rcojocaru, George.Dunlap, andrew.cooper3, ian.jackson, tim,
	paul.durrant, tamas, jbeulich

This patchset implements a mechanism which allows XEN to send first an event
if the emulator encountered an unsupported instruction.
The monitor application can choose to mitigate the error, for example to singlestep
the instruction using the real processor and then resume execution of the normal
instruction flow.

This feature was tested using a modified version of XTF:
https://github.com/petrepircalabu/xen-test-framework/tree/emul_unimpl

---
Changed since v1:
  * Removed the emulation kind check when calling hvm_inject_hw_exception

Changed since v2:
  * Removed a file added by mistake

Changed since v3:
  * Removed extra stray line
  * Added the _enabled suffix to the emul_unhandleable monitor option

Changed since v4
  * Fixed return expression of hvm_monitor_emul_unhandleable handle
  monitor_traps failures.
  * Removed stray parantheses.

Changed since v5:
  * Removed unnecessary "else" when calling hvm_monitor_emul_unhandleable.
  * Added extra line in arch_monitor_domctl_event.

Changed since v6:
  * add the distinction between unimplemented instructions and emulation failures.
  * changed "emul_unhandleable" event name to "emul_unimplemented"

Changed since v7:
  * Add "fall-through" comments to the switch statements (coverity)
  * Added X86EMUL_UNIMPLEMENTED to X86EMUL_UNHANDLEABLE checks the in functions
  referencing x86_emulate.
  * Improved comment describing X86EMUL_UNIMPLEMENTED.

Changed since v8:
  * Removed unnecessary "fall-through" comments.
  * Added check for X86EMUL_UNIMPLEMENTED in hvm_ud_intercept.
  * add a new label 'unimplemented_insn' to accomodate the existing jumps to
  'cannot_emulate' (e.g. invoke_stub)

Changed since v9:
  * Added detailed description in the patch comment regarding the usage (and lack of it) 
  of the new X86EMUL_UNIMPLEMENTED return code.
  * removed 'cannot_emulate' label.
  * added local vimrc files to the gitignore list.

Petre Pircalabu (3):
  gitignore: add local vimrc files
  x86emul: New return code for unimplemented instruction
  x86/monitor: Notify monitor if an emulation fails.

 .gitignore                             |  1 +
 tools/libxc/include/xenctrl.h          |  2 ++
 tools/libxc/xc_monitor.c               | 14 +++++++++++
 xen/arch/x86/hvm/emulate.c             |  7 ++++++
 xen/arch/x86/hvm/hvm.c                 |  1 +
 xen/arch/x86/hvm/io.c                  |  1 +
 xen/arch/x86/hvm/monitor.c             | 17 +++++++++++++
 xen/arch/x86/hvm/vmx/realmode.c        |  2 +-
 xen/arch/x86/mm/shadow/multi.c         |  2 +-
 xen/arch/x86/monitor.c                 | 13 ++++++++++
 xen/arch/x86/x86_emulate/x86_emulate.c | 45 ++++++++++++++++++----------------
 xen/arch/x86/x86_emulate/x86_emulate.h |  6 +++++
 xen/include/asm-x86/domain.h           |  1 +
 xen/include/asm-x86/hvm/monitor.h      |  1 +
 xen/include/asm-x86/monitor.h          |  3 ++-
 xen/include/public/domctl.h            |  1 +
 xen/include/public/vm_event.h          |  2 ++
 17 files changed, 95 insertions(+), 24 deletions(-)

-- 
2.7.4


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

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

end of thread, other threads:[~2017-09-12  9:35 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-06 13:48 [PATCH v10 0/3] Notify monitor when emulating an unimplemented instruction Petre Pircalabu
2017-09-06 13:48 ` [PATCH v10 1/3] gitignore: add local vimrc files Petre Pircalabu
2017-09-07 14:59   ` Wei Liu
2017-09-07 15:36     ` Petre Ovidiu PIRCALABU
2017-09-07 15:41       ` Wei Liu
2017-09-07 16:12       ` Ian Jackson
2017-09-07 17:15         ` Petre Ovidiu PIRCALABU
2017-09-06 13:48 ` [PATCH v10 2/3] x86emul: New return code for unimplemented instruction Petre Pircalabu
2017-09-07 14:26   ` Jan Beulich
2017-09-07 15:08     ` Jan Beulich
2017-09-11 15:52       ` Petre Ovidiu PIRCALABU
2017-09-12  9:35         ` Jan Beulich
2017-09-07 14:36   ` Andrew Cooper
2017-09-06 13:48 ` [PATCH v10 3/3] x86/monitor: Notify monitor if an emulation fails Petre Pircalabu
2017-09-06 15:12 ` [PATCH v10 0/3] Notify monitor when emulating an unimplemented instruction Tamas K Lengyel
2017-09-06 15:48   ` Petre Ovidiu PIRCALABU

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).