From patchwork Wed Jul 4 12:49:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 939303 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41LLX20ZK6z9s1B for ; Wed, 4 Jul 2018 22:53:36 +1000 (AEST) Received: from localhost ([::1]:46928 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fahHp-0001mF-Cz for incoming@patchwork.ozlabs.org; Wed, 04 Jul 2018 08:53:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fahE5-0007bx-FN for qemu-devel@nongnu.org; Wed, 04 Jul 2018 08:49:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fahE4-0000ZI-LX for qemu-devel@nongnu.org; Wed, 04 Jul 2018 08:49:41 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:40644 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fahE0-0000VY-7J; Wed, 04 Jul 2018 08:49:36 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B91C74067720; Wed, 4 Jul 2018 12:49:35 +0000 (UTC) Received: from kamzik.brq.redhat.com (unknown [10.43.2.160]) by smtp.corp.redhat.com (Postfix) with ESMTP id 91E212156889; Wed, 4 Jul 2018 12:49:34 +0000 (UTC) From: Andrew Jones To: qemu-devel@nongnu.org, qemu-arm@nongnu.org Date: Wed, 4 Jul 2018 14:49:23 +0200 Message-Id: <20180704124923.32483-7-drjones@redhat.com> In-Reply-To: <20180704124923.32483-1-drjones@redhat.com> References: <20180704124923.32483-1-drjones@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Wed, 04 Jul 2018 12:49:35 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Wed, 04 Jul 2018 12:49:35 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'drjones@redhat.com' RCPT:'' X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 Subject: [Qemu-devel] [RFC PATCH 6/6] hw/arm/virt: cpu topology: don't allow threads X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wei@redhat.com, peter.maydell@linaro.org, eric.auger@redhat.com, imammedo@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 --- hw/arm/virt.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 6c5fecdd61df..8fc2751ab4bb 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -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