From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YabDF-0004LO-A6 for qemu-devel@nongnu.org; Tue, 24 Mar 2015 22:38:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YabD0-0001bj-4R for qemu-devel@nongnu.org; Tue, 24 Mar 2015 22:38:33 -0400 Date: Wed, 25 Mar 2015 13:08:43 +1100 From: David Gibson Message-ID: <20150325020843.GT25043@voom.fritz.box> References: <1427117764-23008-1-git-send-email-bharata@linux.vnet.ibm.com> <1427117764-23008-10-git-send-email-bharata@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="2YRWZLSLC5jz1DAJ" Content-Disposition: inline In-Reply-To: <1427117764-23008-10-git-send-email-bharata@linux.vnet.ibm.com> Subject: Re: [Qemu-devel] [RFC PATCH v2 09/23] spapr: Add CPU hotplug handler List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Bharata B Rao Cc: mdroth@linux.vnet.ibm.com, agraf@suse.de, qemu-devel@nongnu.org, qemu-ppc@nongnu.org, tyreld@linux.vnet.ibm.com, nfont@linux.vnet.ibm.com, imammedo@redhat.com, afaerber@suse.de --2YRWZLSLC5jz1DAJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Mar 23, 2015 at 07:05:50PM +0530, Bharata B Rao wrote: > Add CPU hotplug handler to spapr machine class and let the plug handler > initialize spapr CPU specific initialization bits for a realized CPU. > This lets CPU boot path and hotplug path to share as much code as possibl= e. >=20 > Signed-off-by: Bharata B Rao Reviewed-by: David Gibson > --- > hw/ppc/spapr.c | 25 ++++++++++++++++++++++++- > 1 file changed, 24 insertions(+), 1 deletion(-) >=20 > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 200dd75..6650f82 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -1555,7 +1555,6 @@ static void ppc_spapr_init(MachineState *machine) > fprintf(stderr, "Unable to find PowerPC CPU definition\n"); > exit(1); > } > - spapr_cpu_init(cpu); > } > =20 > /* allocate RAM */ > @@ -1841,12 +1840,33 @@ static void spapr_nmi(NMIState *n, int cpu_index,= Error **errp) > } > } > =20 > +static void spapr_machine_device_plug(HotplugHandler *hotplug_dev, > + DeviceState *dev, Error **errp) > +{ > + if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { > + CPUState *cs =3D CPU(dev); > + PowerPCCPU *cpu =3D POWERPC_CPU(cs); > + > + spapr_cpu_init(cpu); > + } > +} > + > +static HotplugHandler *spapr_get_hotpug_handler(MachineState *machine, > + DeviceState *dev) > +{ > + if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { > + return HOTPLUG_HANDLER(machine); > + } > + return NULL; > +} > + > static void spapr_machine_class_init(ObjectClass *oc, void *data) > { > MachineClass *mc =3D MACHINE_CLASS(oc); > sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(oc); > FWPathProviderClass *fwc =3D FW_PATH_PROVIDER_CLASS(oc); > NMIClass *nc =3D NMI_CLASS(oc); > + HotplugHandlerClass *hc =3D HOTPLUG_HANDLER_CLASS(oc); > =20 > mc->init =3D ppc_spapr_init; > mc->reset =3D ppc_spapr_reset; > @@ -1856,6 +1876,8 @@ static void spapr_machine_class_init(ObjectClass *o= c, void *data) > mc->default_boot_order =3D NULL; > mc->kvm_type =3D spapr_kvm_type; > mc->has_dynamic_sysbus =3D true; > + mc->get_hotplug_handler =3D spapr_get_hotpug_handler; > + hc->plug =3D spapr_machine_device_plug; > smc->dr_phb_enabled =3D false; > smc->dr_cpu_enabled =3D false; > smc->dr_lmb_enabled =3D false; > @@ -1875,6 +1897,7 @@ static const TypeInfo spapr_machine_info =3D { > .interfaces =3D (InterfaceInfo[]) { > { TYPE_FW_PATH_PROVIDER }, > { TYPE_NMI }, > + { TYPE_HOTPLUG_HANDLER }, > { } > }, > }; --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --2YRWZLSLC5jz1DAJ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJVEhirAAoJEGw4ysog2bOSgA8P/AnYziGJ+X52yYxGLuzx9lKr IeYUUEtEC7zB6N6yjO5MKIPFoM4JuI4OR/ZyaF9eiAiVq9hBrRMUb2sWQVJc1yIa y+UR9H9PToPwchsTc9mlQDkd19fNB5+FDh2UzGuy+XTt2RBksRKcWfbwGop7cg1O 4+NsYmy184YFjnOHw+EBbdVJ3r6S5lRIsUxogye+jS8A1fSg3oBF/M/tZHEvUcZd YeAhQiIKw/9YEZX7eYB8DvX5eyFzC57BCudcte0oJqZZaab5NBHLVb9DZJHoYbII kHo8K6+a5i2CQNb/b/Yz2TxjX1kfTMkt7vb4edwfJ0pVxFQFF/2lxRdup3HbWLNh PJNwyXqGNX2jip59AwXg5ZJ1XpkqGzJDn4aXUTuSUIT7vVr4GCQ3uALT/9hLmVw4 vyP27w8gPQnnbe+rMcU26cxeiGs9o8sgmD2JeOolBI4WHiFif2dDNYKPzhfZPN4W KOKFsMhutZoeyO6KGPArUQuxyoWOvQ1mxLvzPKyHXAwj/ZilRWiPcMc314J6dgBs cwRQuZQhsuxKmyV+cDYmPyzV+4G7FHwvE0dn+nvJLEmstFUMoOtKbQIOyfnazpJp IkMGK6J1oFgows2RDINdZN2vll22/JG6iw12Y2vVeSzvN7hVKltJOl3HRd3BOb0R 10W8888wKEzNfRjg1Cad =LkzB -----END PGP SIGNATURE----- --2YRWZLSLC5jz1DAJ--