|
[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 |