From nobody Mon Feb 9 08:12:12 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1494477025616492.6923991775818; Wed, 10 May 2017 21:30:25 -0700 (PDT) Received: from localhost ([::1]:45945 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8fk8-0002IZ-Dp for importer@patchew.org; Thu, 11 May 2017 00:30:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56363) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8fV2-0005Sk-5g for qemu-devel@nongnu.org; Thu, 11 May 2017 00:14:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d8fUz-0001Zc-Hl for qemu-devel@nongnu.org; Thu, 11 May 2017 00:14:48 -0400 Received: from ozlabs.org ([103.22.144.67]:47925) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d8fUz-0001WH-5u; Thu, 11 May 2017 00:14:45 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3wNfrS4TmZz9sNf; Thu, 11 May 2017 14:14:31 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1494476072; bh=AmZHa1m9QzuwxKEB8dFSCE2Q9fZaCw5CKeO2uI7jwi4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TeZcjG8CRnWQrUyCiLDKYE3yyssmENRpVGLvqR37M2OGRzolflSO1BQ221QlFDa+C Da8UsuC5nMAg6a12Da5LnkgfMqbW2xIUlCZwMVfaTj1x2AE4KH0/2AhxAS+NxUczhc KdC7Ecn+Vxg+DLld7RC8qx+aEmmzkC1OZGrJ3Ycw= From: David Gibson To: peter.maydell@linaro.org Date: Thu, 11 May 2017 14:14:26 +1000 Message-Id: <20170511041426.6488-24-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170511041426.6488-1-david@gibson.dropbear.id.au> References: <20170511041426.6488-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 23/23] target/ppc: Avoid printing wrong aliases in CPU help text 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: Thomas Huth , mdroth@linux.vnet.ibm.com, nikunj@linux.vnet.ibm.com, aik@ozlabs.ru, mark.cave-ayland@ilande.co.uk, agraf@suse.de, qemu-devel@nongnu.org, qemu-ppc@nongnu.org, clg@kaod.org, sjitindarsingh@gmail.com, bharata@linux.vnet.ibm.com, sam.bobroff@au1.ibm.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Thomas Huth When running with KVM, we update the "family" CPU alias to point to the right host CPU type, so that it for example possible to use "-cpu POWER8" on a POWER8NVL host. However, the function for printing the list of available CPU models is called earlier than the KVM setup code, so the output of "-cpu help" is wrong in that case. Since it would be somewhat ugly anyway to have different help texts depending on whether "-enable-kvm" has been specified or not, we should better always print the same text, so fix this issue by printing "alias for preferred XXX CPU" instead. Reviewed-by: Eduardo Habkost Signed-off-by: Thomas Huth Signed-off-by: David Gibson --- target/ppc/cpu.h | 1 + target/ppc/kvm.c | 12 ------------ target/ppc/translate_init.c | 27 +++++++++++++++++++++++++-- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index c0f63f6..401e10e 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1225,6 +1225,7 @@ static inline PowerPCCPU *ppc_env_get_cpu(CPUPPCState= *env) =20 PowerPCCPUClass *ppc_cpu_class_by_pvr(uint32_t pvr); PowerPCCPUClass *ppc_cpu_class_by_pvr_mask(uint32_t pvr); +PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc); =20 struct PPCVirtualHypervisor { Object parent; diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index cb2cf2b..51249ce 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -2424,18 +2424,6 @@ bool kvmppc_has_cap_mmu_hash_v3(void) return cap_mmu_hash_v3; } =20 -static PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc) -{ - ObjectClass *oc =3D OBJECT_CLASS(pcc); - - while (oc && !object_class_is_abstract(oc)) { - oc =3D object_class_get_parent(oc); - } - assert(oc); - - return POWERPC_CPU_CLASS(oc); -} - PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void) { uint32_t host_pvr =3D mfpvr(); diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index fda30b0..56a0ab2 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -10285,6 +10285,18 @@ PowerPCCPU *cpu_ppc_init(const char *cpu_model) return POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, cpu_model)); } =20 +PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc) +{ + ObjectClass *oc =3D OBJECT_CLASS(pcc); + + while (oc && !object_class_is_abstract(oc)) { + oc =3D object_class_get_parent(oc); + } + assert(oc); + + return POWERPC_CPU_CLASS(oc); +} + /* Sort by PVR, ordering special case "host" last. */ static gint ppc_cpu_list_compare(gconstpointer a, gconstpointer b) { @@ -10316,6 +10328,7 @@ static void ppc_cpu_list_entry(gpointer data, gpoin= ter user_data) ObjectClass *oc =3D data; CPUListState *s =3D user_data; PowerPCCPUClass *pcc =3D POWERPC_CPU_CLASS(oc); + DeviceClass *family =3D DEVICE_CLASS(ppc_cpu_get_family_class(pcc)); const char *typename =3D object_class_get_name(oc); char *name; int i; @@ -10338,8 +10351,18 @@ static void ppc_cpu_list_entry(gpointer data, gpoi= nter user_data) if (alias_oc !=3D oc) { continue; } - (*s->cpu_fprintf)(s->file, "PowerPC %-16s (alias for %s)\n", - alias->alias, name); + /* + * If running with KVM, we might update the family alias later, so + * avoid printing the wrong alias here and use "preferred" instead + */ + if (strcmp(alias->alias, family->desc) =3D=3D 0) { + (*s->cpu_fprintf)(s->file, + "PowerPC %-16s (alias for preferred %s CPU)\= n", + alias->alias, family->desc); + } else { + (*s->cpu_fprintf)(s->file, "PowerPC %-16s (alias for %s)\n", + alias->alias, name); + } } g_free(name); } --=20 2.9.3