From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mohammed Gamal Subject: [PATCH] Handle emulation failure in userspace Date: Tue, 1 Sep 2009 15:13:20 +0200 Message-ID: <1251810800-28839-1-git-send-email-m.gamal005@gmail.com> Cc: kvm@vger.kernel.org, avi@redhat.com, Mohammed Gamal To: mtosatti@redhat.com Return-path: Received: from mail-bw0-f219.google.com ([209.85.218.219]:60114 "EHLO mail-bw0-f219.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754644AbZIANNV (ORCPT ); Tue, 1 Sep 2009 09:13:21 -0400 Received: by bwz19 with SMTP id 19so3509891bwz.37 for ; Tue, 01 Sep 2009 06:13:23 -0700 (PDT) Sender: kvm-owner@vger.kernel.org List-ID: Since we return to userspace from KVM on invalid state emulation failure, let qemu handle it. Signed-off-by: Mohammed Gamal --- qemu-kvm.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/qemu-kvm.c b/qemu-kvm.c index b59e403..090a3ae 100644 --- a/qemu-kvm.c +++ b/qemu-kvm.c @@ -1029,6 +1029,14 @@ int kvm_run(kvm_vcpu_context_t vcpu, void *env) r = kvm_s390_handle_reset(kvm, vcpu, run); break; #endif + case KVM_EXIT_INTERNAL_ERROR: + fprintf(stderr, "KVM internal error. Suberror: %d\n", + run->internal.suberror); + kvm_show_regs(vcpu); + if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) + fprintf(stderr, "emulation failure, check dmesg for details\n"); + abort(); + break; default: if (kvm_arch_run(vcpu)) { fprintf(stderr, "unhandled vm exit: 0x%x\n", run->exit_reason); -- 1.6.0.4