[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [HVM][VMX] More descriptive failed vmentry.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Node ID d6363854fb35e8b6f6b6271d770b996ea6806111 # Parent bbea54da02b552ace34e502c5d8f803ea585741c [HVM][VMX] More descriptive failed vmentry. Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx> --- xen/arch/x86/hvm/vmx/vmx.c | 22 ++++++++++++++++++++-- xen/include/asm-x86/hvm/vmx/vmx.h | 5 +++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff -r bbea54da02b5 -r d6363854fb35 xen/arch/x86/hvm/vmx/vmx.c --- a/xen/arch/x86/hvm/vmx/vmx.c Wed Jul 05 14:29:57 2006 +0100 +++ b/xen/arch/x86/hvm/vmx/vmx.c Wed Jul 05 14:31:22 2006 +0100 @@ -2093,8 +2093,26 @@ asmlinkage void vmx_vmexit_handler(struc if ( unlikely(exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY) ) { - printk("Failed vm entry (reason 0x%x)\n", exit_reason); - printk("*********** VMCS Area **************\n"); + unsigned int failed_vmentry_reason = exit_reason & 0xFFFF; + + __vmread(EXIT_QUALIFICATION, &exit_qualification); + printk("Failed vm entry (exit reason 0x%x) ", exit_reason); + switch ( failed_vmentry_reason ) { + case EXIT_REASON_INVALID_GUEST_STATE: + printk("caused by invalid guest state (%ld).\n", exit_qualification); + break; + case EXIT_REASON_MSR_LOADING: + printk("caused by MSR entry %ld loading.\n", exit_qualification); + break; + case EXIT_REASON_MACHINE_CHECK: + printk("caused by machine check.\n"); + break; + default: + printk("reason not known yet!"); + break; + } + + printk("************* VMCS Area **************\n"); vmcs_dump_vcpu(); printk("**************************************\n"); domain_crash_synchronous(); diff -r bbea54da02b5 -r d6363854fb35 xen/include/asm-x86/hvm/vmx/vmx.h --- a/xen/include/asm-x86/hvm/vmx/vmx.h Wed Jul 05 14:29:57 2006 +0100 +++ b/xen/include/asm-x86/hvm/vmx/vmx.h Wed Jul 05 14:31:22 2006 +0100 @@ -133,6 +133,11 @@ extern unsigned int cpu_rev; #define EXIT_REASON_MSR_WRITE 32 #define EXIT_REASON_MWAIT_INSTRUCTION 36 +#define EXIT_REASON_INVALID_GUEST_STATE 33 +#define EXIT_REASON_MSR_LOADING 34 +#define EXIT_REASON_MACHINE_CHECK 41 + + /* * Interruption-information format */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |