[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 11/19] s390x: allow only 1 CPU with TCG
From: |
David Hildenbrand |
Subject: |
[Qemu-devel] [PATCH v2 11/19] s390x: allow only 1 CPU with TCG |
Date: |
Mon, 4 Sep 2017 17:43:08 +0200 |
Specifying more than 1 CPU (e.g. -smp 5) leads to SIGP errors (the
guest tries to bring these CPUs up but fails), because we don't support
multiple CPUs on s390x under TCG.
Let's bail out if more than 1 is specified, so we don't raise people's
hope. Make it a define, so we can easily bump it up later.
Signed-off-by: David Hildenbrand <address@hidden>
---
hw/s390x/s390-virtio-ccw.c | 7 +++++++
target/s390x/cpu.h | 2 ++
2 files changed, 9 insertions(+)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index f67b4b5d58..f7ca20d77a 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -23,6 +23,7 @@
#include "hw/s390x/css.h"
#include "virtio-ccw.h"
#include "qemu/config-file.h"
+#include "qemu/error-report.h"
#include "s390-pci-bus.h"
#include "hw/s390x/storage-keys.h"
#include "hw/s390x/storage-attributes.h"
@@ -55,6 +56,12 @@ static void s390_init_cpus(MachineState *machine)
if (machine->cpu_model == NULL) {
machine->cpu_model = s390_default_cpu_model_name();
}
+ if (tcg_enabled() && max_cpus > S390_TCG_MAX_CPUS) {
+ error_report("Number of SMP CPUs requested (%d) exceeds max CPUs "
+ "supported by TCG (%d) on s390x", max_cpus,
+ S390_TCG_MAX_CPUS);
+ exit(1);
+ }
cpu_states = g_new0(S390CPU *, max_cpus);
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index 147aceba28..dca6aa9aae 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -209,6 +209,8 @@ static inline S390CPU *s390_env_get_cpu(CPUS390XState *env)
#define ENV_OFFSET offsetof(S390CPU, env)
+#define S390_TCG_MAX_CPUS 1
+
#ifndef CONFIG_USER_ONLY
extern const struct VMStateDescription vmstate_s390_cpu;
#endif
--
2.13.5
- Re: [Qemu-devel] [PATCH v2 08/19] s390x: move sclp_service_call() to interrupt.c, (continued)
[Qemu-devel] [PATCH v2 09/19] target/s390x: use trigger_pgm_exception() in s390_cpu_handle_mmu_fault(), David Hildenbrand, 2017/09/04
[Qemu-devel] [PATCH v2 10/19] target/s390x: use program_interrupt() in per_check_exception(), David Hildenbrand, 2017/09/04
[Qemu-devel] [PATCH v2 11/19] s390x: allow only 1 CPU with TCG,
David Hildenbrand <=
[Qemu-devel] [PATCH v2 12/19] target/s390x: set cpu->id for linux user when realizing, David Hildenbrand, 2017/09/04
[Qemu-devel] [PATCH v2 14/19] target/s390x: rename next_cpu_id to next_core_id, David Hildenbrand, 2017/09/04