From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32921) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFEnP-0000L1-Qu for qemu-devel@nongnu.org; Tue, 21 Jun 2016 02:04:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bFEnJ-0006UL-Pe for qemu-devel@nongnu.org; Tue, 21 Jun 2016 02:04:22 -0400 References: <1466238846-21365-1-git-send-email-bharata@linux.vnet.ibm.com> From: Thomas Huth Message-ID: <5768D8DC.4060304@redhat.com> Date: Tue, 21 Jun 2016 08:04:12 +0200 MIME-Version: 1.0 In-Reply-To: <1466238846-21365-1-git-send-email-bharata@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC PATCH v0 1/1] spapr: Support setting of compat CPU type for CPU cores List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Bharata B Rao , qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, david@gibson.dropbear.id.au, imammedo@redhat.com On 18.06.2016 10:34, Bharata B Rao wrote: > Compat CPU type is typically specified on -cpu cmdline option like: > -cpu host,compat=3Dpower7 or -cpu POWER8E,compat=3Dpower7 etc. > With the introduction of sPAPR CPU core devices, we need to support > the same for core devices too. >=20 > Support the specification of CPU compat type on device_add command for > sPAPRCPUCore devices like: > (qemu) device_add POWER8E-spapr-cpu-core,id=3Dcore3,compat=3Dpower7,cor= e-id=3D24 > > Signed-off-by: Bharata B Rao > --- > Applies on ppc-for-2.7 branch of David Gibson's tree. >=20 > hw/ppc/spapr.c | 8 +++++ > hw/ppc/spapr_cpu_core.c | 73 +++++++++++++++++++++++++++++++++= ++++++++ > include/hw/ppc/spapr_cpu_core.h | 2 ++ > 3 files changed, 83 insertions(+) [...] > diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c > index 3a5da09..9eb63cc 100644 > --- a/hw/ppc/spapr_cpu_core.c > +++ b/hw/ppc/spapr_cpu_core.c > @@ -96,6 +96,24 @@ char *spapr_get_cpu_core_type(const char *model) > return core_type; > } > =20 > +/* > + * Returns the CPU compat type specified in -cpu @model. > + */ > +char *spapr_get_cpu_compat_type(const char *model) > +{ > + char *compat_type =3D NULL; > + gchar **model_pieces =3D g_strsplit(model, ",", 2); > + > + if (model_pieces[1]) { > + gchar **compat_pieces =3D g_strsplit(model_pieces[1], "=3D", 2= ); > + > + compat_type =3D g_strdup_printf("%s", compat_pieces[1]); > + } > + > + g_strfreev(model_pieces); > + return compat_type; > +} Shouldn't you check for "compat=3D" somewhere in this function (and properly iterate over all parts of the comma separated string)? In case we support more properties than "compat=3D" some day, this will go wrong otherwise... Thomas