[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 08/16] kvm: print suberror on all internal errors
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 08/16] kvm: print suberror on all internal errors |
Date: |
Mon, 3 Feb 2014 17:39:03 +0100 |
From: Radim Krčmář <address@hidden>
KVM introduced internal error exit reason and suberror at the same time,
and later extended it with internal error data.
QEMU does not report suberror on hosts between these two events because
we check for the extension. (half a year in 2009, but it is misleading)
Fix by removing KVM_CAP_INTERNAL_ERROR_DATA condition on printf.
(partially improved by bb44e0d12df70 and ba4047cf848a3 in the past)
Reviewed-by: Laszlo Ersek <address@hidden>
Signed-off-by: Radim Krčmář <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
kvm-all.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/kvm-all.c b/kvm-all.c
index a3fb8de..f742f8d 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1545,17 +1545,16 @@ static void kvm_handle_io(uint16_t port, void *data,
int direction, int size,
static int kvm_handle_internal_error(CPUState *cpu, struct kvm_run *run)
{
- fprintf(stderr, "KVM internal error.");
+ fprintf(stderr, "KVM internal error. Suberror: %d\n",
+ run->internal.suberror);
+
if (kvm_check_extension(kvm_state, KVM_CAP_INTERNAL_ERROR_DATA)) {
int i;
- fprintf(stderr, " Suberror: %d\n", run->internal.suberror);
for (i = 0; i < run->internal.ndata; ++i) {
fprintf(stderr, "extra data[%d]: %"PRIx64"\n",
i, (uint64_t)run->internal.data[i]);
}
- } else {
- fprintf(stderr, "\n");
}
if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) {
fprintf(stderr, "emulation failure\n");
--
1.8.3.1
- [Qemu-devel] [PULL 00/16] KVM changes for 2014-02-03, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 02/16] target-i386: kvm_cpu_fill_host(): No need to check level, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 01/16] target-i386: kvm_cpu_fill_host(): Kill unused code, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 04/16] target-i386: kvm_cpu_fill_host(): No need to check xlevel2, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 06/16] target-i386: kvm_cpu_fill_host(): Fill feature words in a loop, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 08/16] kvm: print suberror on all internal errors,
Paolo Bonzini <=
- [Qemu-devel] [PULL 09/16] KVM: fix coexistence of KVM and Hyper-V leaves, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 10/16] kvm: make availability of Hyper-V enlightenments dependent on KVM_CAP_HYPERV, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 11/16] kvm: make hyperv hypercall and guest os id MSRs migratable., Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 13/16] kvm: add support for hyper-v timers, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 14/16] target-i386: Eliminate CONFIG_KVM #ifdefs, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 15/16] target-i386: Don't change x86_def_t struct on cpu_x86_register(), Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 03/16] target-i386: kvm_cpu_fill_host(): No need to check CPU vendor, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 05/16] target-i386: kvm_cpu_fill_host(): Set all feature words at end of function, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 07/16] target-i386: kvm_check_features_against_host(): Kill feature word array, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 12/16] kvm: make hyperv vapic assist page migratable, Paolo Bonzini, 2014/02/03