[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 6/6] EXAMPLE TEST CODE
--- xen/arch/x86/traps.c | 17 +++++++++++++++++ xen/include/asm-x86/hvm/vmx/vmx.h | 4 +++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index b32f696..bc34d56 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -4045,6 +4045,23 @@ void asm_domain_crash_synchronous(unsigned long addr) __domain_crash_synchronous(); } +#include <xen/keyhandler.h> +#include <asm/hvm/vmx/vmx.h> + +static void do_extreme_debug(unsigned char key, struct cpu_user_regs *regs) +{ + printk("'%c' pressed -> Extreme debugging in progress...\n", key); + + __vmptrld(0x2); +} + +static int __init extreme_debug_keyhandler_init(void) +{ + register_irq_keyhandler('1', &do_extreme_debug, "Extreme debugging", 0); + return 0; +} +__initcall(extreme_debug_keyhandler_init); + /* * Local variables: * mode: C diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vmx/vmx.h index f16a306..42f904e 100644 --- a/xen/include/asm-x86/hvm/vmx/vmx.h +++ b/xen/include/asm-x86/hvm/vmx/vmx.h @@ -292,14 +292,16 @@ static always_inline void __vmptrld(u64 addr) /* CF==1 or ZF==1 --> BUG() */ UNLIKELY_START(be, vmptrld) _ASM_BUGFRAME_TEXT(0) + "jmp 1f;" UNLIKELY_END_SECTION + "\n1:" : #ifdef HAVE_GAS_VMX : "m" (addr), #else : "a" (&addr), #endif - _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0) + _ASM_BUGFRAME_INFO(BUGFRAME_warn, __LINE__, __FILE__, 0) : "memory"); } -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |