[PATCH] handle -smp > 16 more cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The x86 kvm kernel module limits guest cpu count to 16, but theuserspace pc definition says 255 still, so kvm_create_vcpu will fail for that reason with -smp > 16 specified.  This patch causes qemu-kvm to exit in that case.  Without this patch other errors get reported down the road and finally a segfault occurs.

Bruce

Signed-off-by: Bruce Rogers <brogers@xxxxxxxxxx>

diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c
index ed76367..b6d6d5e 100644
--- a/qemu/qemu-kvm.c
+++ b/qemu/qemu-kvm.c
@@ -417,12 +417,18 @@ static void *ap_main_loop(void *_env)
     CPUState *env = _env;
     sigset_t signals;
     struct ioperm_data *data = NULL;
+    int r;

     current_env = env;
     env->thread_id = kvm_get_thread_id();
     sigfillset(&signals);
     sigprocmask(SIG_BLOCK, &signals, NULL);
-    kvm_create_vcpu(kvm_context, env->cpu_index);
+    r = kvm_create_vcpu(kvm_context, env->cpu_index);
+    if (r)
+    {
+        fprintf(stderr, "error creating vcpu: %d\n", r);
+        exit(1);
+    }
     kvm_qemu_init_env(env);

 #ifdef USE_KVM_DEVICE_ASSIGNMENT


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux