qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 6/7] spapr.c: introduce spapr_core_unplug_possible()


From: David Gibson
Subject: Re: [PATCH v1 6/7] spapr.c: introduce spapr_core_unplug_possible()
Date: Fri, 15 Jan 2021 11:52:45 +1100

On Thu, Jan 14, 2021 at 03:06:27PM -0300, Daniel Henrique Barboza wrote:
> Next patch is going to add more conditions to allow a CPU core
> hotunplug. Let's put it into a separated function to avoid crowding
> the body of spapr_core_unplug_request().
> 
> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>

LGTM, except for naming.  I'd expect a function named *_possible() to
return a boolean, where "true" means it *is* possible, rather than a
0-or-negative-error value.

So you could either change the type and sense of the function, or
change the name to, say spapr_core_unplug_check(), which I would
expect to return an error code.

> ---
>  hw/ppc/spapr.c | 27 ++++++++++++++++++++-------
>  1 file changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 2c403b574e..a2f01c21aa 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -3706,22 +3706,35 @@ static void spapr_core_unplug(HotplugHandler 
> *hotplug_dev, DeviceState *dev)
>      qdev_unrealize(dev);
>  }
>  
> -static
> -void spapr_core_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev,
> -                               Error **errp)
> +static int spapr_core_unplug_possible(HotplugHandler *hotplug_dev, CPUCore 
> *cc,
> +                                      Error **errp)
>  {
> -    SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev));
>      int index;
> -    SpaprDrc *drc;
> -    CPUCore *cc = CPU_CORE(dev);
>  
>      if (!spapr_find_cpu_slot(MACHINE(hotplug_dev), cc->core_id, &index)) {
>          error_setg(errp, "Unable to find CPU core with core-id: %d",
>                     cc->core_id);
> -        return;
> +        return -1;
>      }
> +
>      if (index == 0) {
>          error_setg(errp, "Boot CPU core may not be unplugged");
> +        return -1;
> +    }
> +
> +    return 0;
> +}
> +
> +static
> +void spapr_core_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev,
> +                               Error **errp)
> +{
> +    ERRP_GUARD();
> +    SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev));
> +    SpaprDrc *drc;
> +    CPUCore *cc = CPU_CORE(dev);
> +
> +    if (spapr_core_unplug_possible(hotplug_dev, cc, errp) < 0) {
>          return;
>      }
>  

-- 
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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]