qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Radoslaw Biernacki" <rad@semihalf.com>,
	kvm@vger.kernel.org, "David Hildenbrand" <david@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Thomas Huth" <thuth@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Leif Lindholm" <leif@nuviainc.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Greg Kurz" <groug@kaod.org>,
	qemu-s390x@nongnu.org, qemu-arm@nongnu.org,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	qemu-ppc@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [PATCH 7/7] accel/kvm: Exit gracefully when KVM is not supported
Date: Fri, 19 Feb 2021 12:44:28 +0100	[thread overview]
Message-ID: <20210219114428.1936109-8-philmd@redhat.com> (raw)
In-Reply-To: <20210219114428.1936109-1-philmd@redhat.com>

Now that we added the 'kvm_supported' field to MachineClass
and all our machines able to use KVM have this field set,
we can check it in kvm_init() and exit gracefully with
a friendly error message.

Before:

  $ qemu-system-aarch64 -M raspi3b -enable-kvm
  qemu-system-aarch64: /build/qemu-ETIdrs/qemu-4.2/exec.c:865: cpu_address_space_init: Assertion `asidx == 0 || !kvm_enabled()' failed.
  Aborted

  $ qemu-system-aarch64 -M xlnx-zcu102 -enable-kvm -smp 6
  qemu-system-aarch64: kvm_init_vcpu: kvm_arch_init_vcpu failed (0): Invalid argument

After:

  $ qemu-system-aarch64 -M raspi3b -enable-kvm
  Machine 'raspi3b' does not support KVM

  $ qemu-system-aarch64 -M xlnx-zcu102 -enable-kvm -smp 6
  Machine 'xlnx-zcu102' does not support KVM

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 accel/kvm/kvm-all.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index b069938d881..8a8d3f64248 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -2001,6 +2001,12 @@ static int kvm_init(MachineState *ms)
 
     s = KVM_STATE(ms->accelerator);
 
+    if (!mc->kvm_supported) {
+        ret = -EINVAL;
+        fprintf(stderr, "Machine '%s' does not support KVM\n", mc->name);
+        exit(1);
+    }
+
     /*
      * On systems where the kernel can support different base page
      * sizes, host page size may be different from TARGET_PAGE_SIZE,
-- 
2.26.2



  parent reply	other threads:[~2021-02-19 11:50 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19 11:44 [PATCH 0/7] hw/kvm: Exit gracefully when KVM is not supported Philippe Mathieu-Daudé
2021-02-19 11:44 ` [PATCH 1/7] accel/kvm: Check MachineClass kvm_type() return value Philippe Mathieu-Daudé
2021-02-19 11:44 ` [PATCH 2/7] hw/boards: Introduce 'kvm_supported' field to MachineClass Philippe Mathieu-Daudé
2021-02-19 11:57   ` Daniel P. Berrangé
2021-02-19 12:08     ` Peter Maydell
2021-02-19 12:10       ` Daniel P. Berrangé
2021-02-19 15:52       ` Leif Lindholm
2021-02-19 11:44 ` [PATCH 3/7] hw/arm: Set kvm_supported for KVM-compatible machines Philippe Mathieu-Daudé
2021-02-19 11:44 ` [PATCH 4/7] hw/mips: " Philippe Mathieu-Daudé
2021-02-19 11:44 ` [RFC PATCH 5/7] hw/ppc: " Philippe Mathieu-Daudé
2021-02-19 11:44 ` [PATCH 6/7] hw/s390x: Set kvm_supported to s390-ccw-virtio machines Philippe Mathieu-Daudé
2021-02-19 11:44 ` Philippe Mathieu-Daudé [this message]
2021-02-19 11:55 ` [PATCH 0/7] hw/kvm: Exit gracefully when KVM is not supported Peter Maydell
2021-02-19 12:09   ` Philippe Mathieu-Daudé
2021-02-19 12:00 ` Daniel P. Berrangé
2021-02-19 12:15   ` Philippe Mathieu-Daudé
2021-02-19 12:18     ` Daniel P. Berrangé
2021-02-19 13:10       ` Philippe Mathieu-Daudé
2021-02-19 12:34 ` Claudio Fontana
2021-02-19 17:36   ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210219114428.1936109-8-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alistair@alistair23.me \
    --cc=aurelien@aurel32.net \
    --cc=borntraeger@de.ibm.com \
    --cc=chenhuacai@kernel.org \
    --cc=cohuck@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=groug@kaod.org \
    --cc=hpoussin@reactos.org \
    --cc=kvm@vger.kernel.org \
    --cc=leif@nuviainc.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=rad@semihalf.com \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).