[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1/6] x86/vmx: Improvements to vmentry failure handling
Combine the almost identical vm_launch_fail() and vm_resume_fail() into a single vmx_vmentry_failure(). Re-save all GPRs so that domain_crash() prints the real register values, rather than the stack frame of the vmx_vmentry_failure() call. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Kevin Tian <kevin.tian@xxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Jun Nakajima <jun.nakajima@xxxxxxxxx> v2: * Swap printk for gprintk --- xen/arch/x86/hvm/vmx/entry.S | 9 +++++---- xen/arch/x86/hvm/vmx/vmcs.c | 15 ++++----------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S index 2a4ed57..a5438a4 100644 --- a/xen/arch/x86/hvm/vmx/entry.S +++ b/xen/arch/x86/hvm/vmx/entry.S @@ -101,14 +101,15 @@ UNLIKELY_END(realmode) /*.Lvmx_resume:*/ VMRESUME - sti - call vm_resume_fail - ud2 + jmp .Lvmx_vmentry_fail .Lvmx_launch: VMLAUNCH + +.Lvmx_vmentry_fail: sti - call vm_launch_fail + SAVE_ALL + call vmx_vmentry_failure ud2 ENTRY(vmx_asm_do_vmentry) diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c index 4ea1ad1..53207e6 100644 --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -1612,21 +1612,14 @@ void vmx_destroy_vmcs(struct vcpu *v) free_xenheap_page(v->arch.hvm_vmx.msr_bitmap); } -void vm_launch_fail(void) -{ - unsigned long error; - - __vmread(VM_INSTRUCTION_ERROR, &error); - printk("<vm_launch_fail> error code %lx\n", error); - domain_crash_synchronous(); -} - -void vm_resume_fail(void) +void vmx_vmentry_failure(void) { + struct vcpu *curr = current; unsigned long error; __vmread(VM_INSTRUCTION_ERROR, &error); - printk("<vm_resume_fail> error code %lx\n", error); + gprintk(XENLOG_ERR, "VM%s error: %#lx\n", + curr->arch.hvm_vmx.launched ? "RESUME" : "LAUNCH", error); domain_crash_synchronous(); } -- 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 |