diff -r ce8f37efc992 xen/arch/x86/hvm/svm/svm.c --- a/xen/arch/x86/hvm/svm/svm.c Mon Apr 06 14:26:29 2009 +0100 +++ b/xen/arch/x86/hvm/svm/svm.c Mon Apr 06 17:24:28 2009 +0100 @@ -1217,9 +1217,14 @@ exit_reason = vmcb->exitcode; - HVMTRACE_ND(VMEXIT64, 1/*cycles*/, 3, exit_reason, - (uint32_t)regs->eip, (uint32_t)((uint64_t)regs->eip >> 32), - 0, 0, 0); + if ( hvm_long_mode_enabled(v) ) + HVMTRACE_ND(VMEXIT64, 1/*cycles*/, 3, exit_reason, + (uint32_t)regs->eip, (uint32_t)((uint64_t)regs->eip >> 32), + 0, 0, 0); + else + HVMTRACE_ND(VMEXIT, 1/*cycles*/, 2, exit_reason, + (uint32_t)regs->eip, + 0, 0, 0, 0); if ( unlikely(exit_reason == VMEXIT_INVALID) ) { diff -r ce8f37efc992 xen/arch/x86/hvm/vmx/vmx.c --- a/xen/arch/x86/hvm/vmx/vmx.c Mon Apr 06 14:26:29 2009 +0100 +++ b/xen/arch/x86/hvm/vmx/vmx.c Mon Apr 06 17:24:28 2009 +0100 @@ -2241,9 +2241,14 @@ exit_reason = __vmread(VM_EXIT_REASON); - HVMTRACE_ND(VMEXIT64, 1/*cycles*/, 3, exit_reason, - (uint32_t)regs->eip, (uint32_t)((uint64_t)regs->eip >> 32), - 0, 0, 0); + if ( hvm_long_mode_enabled(v) ) + HVMTRACE_ND(VMEXIT64, 1/*cycles*/, 3, exit_reason, + (uint32_t)regs->eip, (uint32_t)((uint64_t)regs->eip >> 32), + 0, 0, 0); + else + HVMTRACE_ND(VMEXIT, 1/*cycles*/, 2, exit_reason, + (uint32_t)regs->eip, + 0, 0, 0, 0); perfc_incra(vmexits, exit_reason);