From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mohammed Gamal Subject: [PATCH 2/2] Handle emulation failure in userspace Date: Fri, 28 Aug 2009 16:48:53 +0200 Message-ID: <1251470933-14500-2-git-send-email-m.gamal005@gmail.com> References: <1251470933-14500-1-git-send-email-m.gamal005@gmail.com> Cc: kvm@vger.kernel.org, Mohammed Gamal To: avi@redhat.com Return-path: Received: from mail-fx0-f217.google.com ([209.85.220.217]:44403 "EHLO mail-fx0-f217.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751839AbZH1Os6 (ORCPT ); Fri, 28 Aug 2009 10:48:58 -0400 Received: by mail-fx0-f217.google.com with SMTP id 17so1616063fxm.37 for ; Fri, 28 Aug 2009 07:49:00 -0700 (PDT) In-Reply-To: <1251470933-14500-1-git-send-email-m.gamal005@gmail.com> 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..a1648e0 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: + kvm_show_regs(vcpu); + fprintf(stderr, "\nKVM internal error. Suberror: %d\n", + run->internal.suberror); + 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