[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/hvm: Corrections and improvements to unhandled vmexit logging
commit ef3e8db8068ce4d82501d427dd0ca77a6af89572 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Wed Apr 19 16:56:32 2017 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Fri Apr 21 18:46:34 2017 +0100 x86/hvm: Corrections and improvements to unhandled vmexit logging * Use gprintk rather than gdprintk. These logging messages shouldn't disappear in release builds, as they usually happen immediately before a domain crash. Raise them from WARNING to ERR. * Format the vmexit reason in the same base as is used in the vendor manuals (decimal for Intel, hex for AMD), and consistently use 0x for hex numbers. * Consistently use "Unexpected vmexit" terminology. In particular, this corrects the information printed for nested VT-x, and actually prints information for nested SVM. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> Release-acked-by: Julien Grall <julien.grall@xxxxxxx> --- xen/arch/x86/hvm/svm/nestedsvm.c | 2 ++ xen/arch/x86/hvm/svm/svm.c | 7 +++---- xen/arch/x86/hvm/vmx/vmx.c | 2 +- xen/arch/x86/hvm/vmx/vvmx.c | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c index d4fc81f..f46e346 100644 --- a/xen/arch/x86/hvm/svm/nestedsvm.c +++ b/xen/arch/x86/hvm/svm/nestedsvm.c @@ -1406,6 +1406,8 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs, /* Always let the guest handle VMMCALL/VMCALL */ return NESTEDHVM_VMEXIT_INJECT; default: + gprintk(XENLOG_ERR, "Unexpected nested vmexit: reason %#"PRIx64"\n", + exitcode); break; } diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 07e9718..178adc5 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -2833,10 +2833,9 @@ void svm_vmexit_handler(struct cpu_user_regs *regs) default: unexpected_exit_type: - gdprintk(XENLOG_ERR, "unexpected VMEXIT: exit reason = %#"PRIx64", " - "exitinfo1 = %#"PRIx64", exitinfo2 = %#"PRIx64"\n", - exit_reason, - (u64)vmcb->exitinfo1, (u64)vmcb->exitinfo2); + gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", " + "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n", + exit_reason, vmcb->exitinfo1, vmcb->exitinfo2); svm_crash_or_fault(v); break; } diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index f8d3c17..c8ef18a 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -4106,7 +4106,7 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs) /* fall through */ default: exit_and_crash: - gdprintk(XENLOG_WARNING, "Bad vmexit (reason %#lx)\n", exit_reason); + gprintk(XENLOG_ERR, "Unexpected vmexit: reason %lu\n", exit_reason); if ( vmx_get_cpl() ) hvm_inject_hw_exception(TRAP_invalid_op, diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 936feb6..3560fae 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -2550,8 +2550,8 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs, nvcpu->nv_vmexit_pending = 1; break; default: - gdprintk(XENLOG_WARNING, "Unknown nested vmexit reason %x.\n", - exit_reason); + gprintk(XENLOG_ERR, "Unexpected nested vmexit: reason %u\n", + exit_reason); } return ( nvcpu->nv_vmexit_pending == 1 ); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |