@@ -1390,6 +1390,19 @@ static void machvirt_init(MachineState *machine)
exit(1);
}
+ if (!vmc->ignore_cpu_topology && smp_threads > 1) {
+ if (kvm_enabled() &&
+ strcmp(machine->cpu_type, ARM_CPU_TYPE_NAME("host")) == 0) {
+ error_report("mach-virt: KVM: user controlled MPIDR.MT not "
+ "yet supported");
+ } else {
+ error_report("mach-virt: CPU type %s does not support SMT",
+ machine->cpu_type);
+ }
+ error_report("mach-virt: smp_threads cannot be > 1");
+ exit(1);
+ }
+
/* If we have an EL3 boot ROM then the assumption is that it will
* implement PSCI itself, so disable QEMU's internal implementation
* so it doesn't get in the way. Instead of starting secondary
None of the cpu models supported by mach-virt support threads. Furthermore when running with KVM and cpu=host, while the host processor may support threads, we don't yet support telling KVM that we want the guest to see that. So if the user tries to select more than one thread for the cpu topology, just error-out. We'll remove the restriction for KVM guests after adding support to KVM and QEMU for userspace controlled VCPU MPIDRs. Signed-off-by: Andrew Jones <drjones@redhat.com> --- hw/arm/virt.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)