[{"id":1764781,"web_url":"http://patchwork.ozlabs.org/comment/1764781/","msgid":"<20170907172123.6732c1ba@bahia>","list_archive_url":null,"date":"2017-09-07T15:21:23","subject":"Re: [Qemu-devel] [Qemu-ppc] [PATCH] hw/ppc/spapr.c: cleaning up\n\tqdev_get_machine() calls","submitter":{"id":69178,"url":"http://patchwork.ozlabs.org/api/people/69178/","name":"Greg Kurz","email":"groug@kaod.org"},"content":"On Wed,  6 Sep 2017 15:43:05 -0300\nDaniel Henrique Barboza <danielhb@linux.vnet.ibm.com> wrote:\n\n> This patch removes the qdev_get_machine() calls that are made in\n> spapr.c in situations where we can get an existing pointer for\n> the MachineState by either passing it as an argument to the function\n> or by using other already available pointers.\n> \n> The following changes were made:\n> \n> - spapr_node0_size: static function that is called two times:\n> at spapr_setup_hpt_and_vrma and ppc_spapr_init. In both cases we can\n> pass an existing MachineState pointer to it.\n> \n> - spapr_build_fdt: MachineState pointer can be retrieved from\n> the existing sPAPRMachineState pointer.\n> \n> - spapr_boot_set: the opaque in the first arg is a sPAPRMachineState\n> pointer as we can see inside ppc_spapr_init:\n> \n>     qemu_register_boot_set(spapr_boot_set, spapr);\n> \n> We can get a MachineState pointer from it.\n> \n> - spapr_machine_device_plug and spapr_machine_device_unplug_request: the\n> MachineState, sPAPRMachineState, MachineClass and sPAPRMachineClass pointers\n> can all be retrieved from the HotplugHandler pointer.\n> \n> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>\n> ---\n\nIt makes sense for me.\n\nReviewed-by: Greg Kurz <groug@kaod.org>\n\n>  hw/ppc/spapr.c | 19 +++++++++----------\n>  1 file changed, 9 insertions(+), 10 deletions(-)\n> \n> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c\n> index cec441c..6ac3390 100644\n> --- a/hw/ppc/spapr.c\n> +++ b/hw/ppc/spapr.c\n> @@ -390,10 +390,8 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPRMachineState *spapr)\n>      return ret;\n>  }\n>  \n> -static hwaddr spapr_node0_size(void)\n> +static hwaddr spapr_node0_size(MachineState *machine)\n>  {\n> -    MachineState *machine = MACHINE(qdev_get_machine());\n> -\n>      if (nb_numa_nodes) {\n>          int i;\n>          for (i = 0; i < nb_numa_nodes; ++i) {\n> @@ -1027,7 +1025,7 @@ static void *spapr_build_fdt(sPAPRMachineState *spapr,\n>                               hwaddr rtas_addr,\n>                               hwaddr rtas_size)\n>  {\n> -    MachineState *machine = MACHINE(qdev_get_machine());\n> +    MachineState *machine = MACHINE(spapr);\n>      MachineClass *mc = MACHINE_GET_CLASS(machine);\n>      sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(machine);\n>      int ret;\n> @@ -1347,7 +1345,7 @@ void spapr_setup_hpt_and_vrma(sPAPRMachineState *spapr)\n>      spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal);\n>  \n>      if (spapr->vrma_adjust) {\n> -        spapr->rma_size = kvmppc_rma_size(spapr_node0_size(),\n> +        spapr->rma_size = kvmppc_rma_size(spapr_node0_size(MACHINE(spapr)),\n>                                            spapr->htab_shift);\n>      }\n>      /* We're setting up a hash table, so that means we're not radix */\n> @@ -2007,7 +2005,7 @@ static SaveVMHandlers savevm_htab_handlers = {\n>  static void spapr_boot_set(void *opaque, const char *boot_device,\n>                             Error **errp)\n>  {\n> -    MachineState *machine = MACHINE(qdev_get_machine());\n> +    MachineState *machine = MACHINE(opaque);\n>      machine->boot_order = g_strdup(boot_device);\n>  }\n>  \n> @@ -2154,7 +2152,7 @@ static void ppc_spapr_init(MachineState *machine)\n>      MemoryRegion *rma_region;\n>      void *rma = NULL;\n>      hwaddr rma_alloc_size;\n> -    hwaddr node0_size = spapr_node0_size();\n> +    hwaddr node0_size = spapr_node0_size(machine);\n>      long load_limit, fw_size;\n>      char *filename;\n>      Error *resize_hpt_err = NULL;\n> @@ -3198,7 +3196,8 @@ out:\n>  static void spapr_machine_device_plug(HotplugHandler *hotplug_dev,\n>                                        DeviceState *dev, Error **errp)\n>  {\n> -    sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(qdev_get_machine());\n> +    MachineState *ms = MACHINE(hotplug_dev);\n> +    sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(ms);\n>  \n>      if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {\n>          int node;\n> @@ -3247,8 +3246,8 @@ static void spapr_machine_device_plug(HotplugHandler *hotplug_dev,\n>  static void spapr_machine_device_unplug_request(HotplugHandler *hotplug_dev,\n>                                                  DeviceState *dev, Error **errp)\n>  {\n> -    sPAPRMachineState *sms = SPAPR_MACHINE(qdev_get_machine());\n> -    MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());\n> +    sPAPRMachineState *sms = SPAPR_MACHINE(OBJECT(hotplug_dev));\n> +    MachineClass *mc = MACHINE_GET_CLASS(sms);\n>  \n>      if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {\n>          if (spapr_ovec_test(sms->ov5_cas, OV5_HP_EVT)) {","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xp42c2G6Gz9s8J\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  8 Sep 2017 01:22:48 +1000 (AEST)","from localhost ([::1]:40901 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpydi-0008ON-Bf\n\tfor incoming@patchwork.ozlabs.org; Thu, 07 Sep 2017 11:22:46 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:51012)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1dpyco-00087V-JY\n\tfor qemu-devel@nongnu.org; Thu, 07 Sep 2017 11:21:55 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1dpyce-0003ts-Vz\n\tfor qemu-devel@nongnu.org; Thu, 07 Sep 2017 11:21:50 -0400","from 1.mo177.mail-out.ovh.net ([178.33.107.143]:45919)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <groug@kaod.org>) id 1dpyce-0003mu-Md\n\tfor qemu-devel@nongnu.org; Thu, 07 Sep 2017 11:21:40 -0400","from player714.ha.ovh.net (b6.ovh.net [213.186.33.56])\n\tby mo177.mail-out.ovh.net (Postfix) with ESMTP id E9CF374DFE\n\tfor <qemu-devel@nongnu.org>; Thu,  7 Sep 2017 17:21:31 +0200 (CEST)","from bahia (gar31-1-82-66-74-139.fbx.proxad.net [82.66.74.139])\n\t(Authenticated sender: groug@kaod.org)\n\tby player714.ha.ovh.net (Postfix) with ESMTPSA id 6AB363C00A2;\n\tThu,  7 Sep 2017 17:21:25 +0200 (CEST)"],"Date":"Thu, 7 Sep 2017 17:21:23 +0200","From":"Greg Kurz <groug@kaod.org>","To":"Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>","Message-ID":"<20170907172123.6732c1ba@bahia>","In-Reply-To":"<20170906184305.2612-1-danielhb@linux.vnet.ibm.com>","References":"<20170906184305.2612-1-danielhb@linux.vnet.ibm.com>","X-Mailer":"Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-redhat-linux-gnu)","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tboundary=\"Sig_/J0nbrKH.ntGbdCInPjQxfUc\";\n\tprotocol=\"application/pgp-signature\"","X-Ovh-Tracer-Id":"7204352029848213989","X-VR-SPAMSTATE":"OK","X-VR-SPAMSCORE":"-100","X-VR-SPAMCAUSE":"gggruggvucftvghtrhhoucdtuddrfeelledrfedvgdekjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"178.33.107.143","Subject":"Re: [Qemu-devel] [Qemu-ppc] [PATCH] hw/ppc/spapr.c: cleaning up\n\tqdev_get_machine() calls","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"david@gibson.dropbear.id.au, qemu-ppc@nongnu.org, qemu-devel@nongnu.org, \n\tmdroth@linux.vnet.ibm.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1765749,"web_url":"http://patchwork.ozlabs.org/comment/1765749/","msgid":"<20170909035410.GQ2735@umbus.fritz.box>","list_archive_url":null,"date":"2017-09-09T03:54:10","subject":"Re: [Qemu-devel] [Qemu-ppc] [PATCH] hw/ppc/spapr.c: cleaning up\n\tqdev_get_machine() calls","submitter":{"id":47,"url":"http://patchwork.ozlabs.org/api/people/47/","name":"David Gibson","email":"david@gibson.dropbear.id.au"},"content":"On Thu, Sep 07, 2017 at 05:21:23PM +0200, Greg Kurz wrote:\n> On Wed,  6 Sep 2017 15:43:05 -0300\n> Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com> wrote:\n> \n> > This patch removes the qdev_get_machine() calls that are made in\n> > spapr.c in situations where we can get an existing pointer for\n> > the MachineState by either passing it as an argument to the function\n> > or by using other already available pointers.\n> > \n> > The following changes were made:\n> > \n> > - spapr_node0_size: static function that is called two times:\n> > at spapr_setup_hpt_and_vrma and ppc_spapr_init. In both cases we can\n> > pass an existing MachineState pointer to it.\n> > \n> > - spapr_build_fdt: MachineState pointer can be retrieved from\n> > the existing sPAPRMachineState pointer.\n> > \n> > - spapr_boot_set: the opaque in the first arg is a sPAPRMachineState\n> > pointer as we can see inside ppc_spapr_init:\n> > \n> >     qemu_register_boot_set(spapr_boot_set, spapr);\n> > \n> > We can get a MachineState pointer from it.\n> > \n> > - spapr_machine_device_plug and spapr_machine_device_unplug_request: the\n> > MachineState, sPAPRMachineState, MachineClass and sPAPRMachineClass pointers\n> > can all be retrieved from the HotplugHandler pointer.\n> > \n> > Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>\n> > ---\n> \n> It makes sense for me.\n> \n> Reviewed-by: Greg Kurz <groug@kaod.org>\n\nApplied to ppc-for-2.11.\n\n> \n> >  hw/ppc/spapr.c | 19 +++++++++----------\n> >  1 file changed, 9 insertions(+), 10 deletions(-)\n> > \n> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c\n> > index cec441c..6ac3390 100644\n> > --- a/hw/ppc/spapr.c\n> > +++ b/hw/ppc/spapr.c\n> > @@ -390,10 +390,8 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPRMachineState *spapr)\n> >      return ret;\n> >  }\n> >  \n> > -static hwaddr spapr_node0_size(void)\n> > +static hwaddr spapr_node0_size(MachineState *machine)\n> >  {\n> > -    MachineState *machine = MACHINE(qdev_get_machine());\n> > -\n> >      if (nb_numa_nodes) {\n> >          int i;\n> >          for (i = 0; i < nb_numa_nodes; ++i) {\n> > @@ -1027,7 +1025,7 @@ static void *spapr_build_fdt(sPAPRMachineState *spapr,\n> >                               hwaddr rtas_addr,\n> >                               hwaddr rtas_size)\n> >  {\n> > -    MachineState *machine = MACHINE(qdev_get_machine());\n> > +    MachineState *machine = MACHINE(spapr);\n> >      MachineClass *mc = MACHINE_GET_CLASS(machine);\n> >      sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(machine);\n> >      int ret;\n> > @@ -1347,7 +1345,7 @@ void spapr_setup_hpt_and_vrma(sPAPRMachineState *spapr)\n> >      spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal);\n> >  \n> >      if (spapr->vrma_adjust) {\n> > -        spapr->rma_size = kvmppc_rma_size(spapr_node0_size(),\n> > +        spapr->rma_size = kvmppc_rma_size(spapr_node0_size(MACHINE(spapr)),\n> >                                            spapr->htab_shift);\n> >      }\n> >      /* We're setting up a hash table, so that means we're not radix */\n> > @@ -2007,7 +2005,7 @@ static SaveVMHandlers savevm_htab_handlers = {\n> >  static void spapr_boot_set(void *opaque, const char *boot_device,\n> >                             Error **errp)\n> >  {\n> > -    MachineState *machine = MACHINE(qdev_get_machine());\n> > +    MachineState *machine = MACHINE(opaque);\n> >      machine->boot_order = g_strdup(boot_device);\n> >  }\n> >  \n> > @@ -2154,7 +2152,7 @@ static void ppc_spapr_init(MachineState *machine)\n> >      MemoryRegion *rma_region;\n> >      void *rma = NULL;\n> >      hwaddr rma_alloc_size;\n> > -    hwaddr node0_size = spapr_node0_size();\n> > +    hwaddr node0_size = spapr_node0_size(machine);\n> >      long load_limit, fw_size;\n> >      char *filename;\n> >      Error *resize_hpt_err = NULL;\n> > @@ -3198,7 +3196,8 @@ out:\n> >  static void spapr_machine_device_plug(HotplugHandler *hotplug_dev,\n> >                                        DeviceState *dev, Error **errp)\n> >  {\n> > -    sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(qdev_get_machine());\n> > +    MachineState *ms = MACHINE(hotplug_dev);\n> > +    sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(ms);\n> >  \n> >      if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {\n> >          int node;\n> > @@ -3247,8 +3246,8 @@ static void spapr_machine_device_plug(HotplugHandler *hotplug_dev,\n> >  static void spapr_machine_device_unplug_request(HotplugHandler *hotplug_dev,\n> >                                                  DeviceState *dev, Error **errp)\n> >  {\n> > -    sPAPRMachineState *sms = SPAPR_MACHINE(qdev_get_machine());\n> > -    MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());\n> > +    sPAPRMachineState *sms = SPAPR_MACHINE(OBJECT(hotplug_dev));\n> > +    MachineClass *mc = MACHINE_GET_CLASS(sms);\n> >  \n> >      if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {\n> >          if (spapr_ovec_test(sms->ov5_cas, OV5_HP_EVT)) {\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=gibson.dropbear.id.au\n\theader.i=@gibson.dropbear.id.au header.b=\"NGvVqzN+\"; \n\tdkim-atps=neutral"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xq4Yf2jrxz9sBW\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  9 Sep 2017 16:49:42 +1000 (AEST)","from localhost ([::1]:48449 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dqZaG-00033b-F0\n\tfor incoming@patchwork.ozlabs.org; Sat, 09 Sep 2017 02:49:40 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:53041)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <dgibson@ozlabs.org>) id 1dqZZQ-0002rc-7w\n\tfor qemu-devel@nongnu.org; Sat, 09 Sep 2017 02:48:49 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <dgibson@ozlabs.org>) id 1dqZZO-0006od-VJ\n\tfor qemu-devel@nongnu.org; Sat, 09 Sep 2017 02:48:48 -0400","from ozlabs.org ([2401:3900:2:1::2]:43389)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <dgibson@ozlabs.org>)\n\tid 1dqZZO-0006kG-4y; Sat, 09 Sep 2017 02:48:46 -0400","by ozlabs.org (Postfix, from userid 1007)\n\tid 3xq4XV1mQXz9sBW; Sat,  9 Sep 2017 16:48:42 +1000 (AEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n\td=gibson.dropbear.id.au; s=201602; t=1504939722;\n\tbh=FD08Ixw6uab3sV4CjrMMMRJ+MiQgDzXGKFWkMf79up4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=NGvVqzN+kBky72DOqZdWSSg4yj1XLJTtlGGgI99A/ar53CO/XGh97mteu+x0FwbEP\n\tDs+bFZzGnrF88ama2zRAS2pSgC5PMeir/4Rv4I9k1WCyfp6fpkB5uX1Wcf1qbBaD+Q\n\tdWd7tg1IXNVoOJVJZeacREMpfCxE3UF3DGoEnCMw=","Date":"Sat, 9 Sep 2017 13:54:10 +1000","From":"David Gibson <david@gibson.dropbear.id.au>","To":"Greg Kurz <groug@kaod.org>","Message-ID":"<20170909035410.GQ2735@umbus.fritz.box>","References":"<20170906184305.2612-1-danielhb@linux.vnet.ibm.com>\n\t<20170907172123.6732c1ba@bahia>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"z87VqPJ/HsYrR2WM\"","Content-Disposition":"inline","In-Reply-To":"<20170907172123.6732c1ba@bahia>","User-Agent":"Mutt/1.8.3 (2017-05-23)","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"2401:3900:2:1::2","Subject":"Re: [Qemu-devel] [Qemu-ppc] [PATCH] hw/ppc/spapr.c: cleaning up\n\tqdev_get_machine() calls","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-ppc@nongnu.org,\n\tDaniel Henrique Barboza <danielhb@linux.vnet.ibm.com>, \n\tqemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]