qemu-devel
[Top][All Lists]
Advanced

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

RE: [PATCH RFC V2 24/37] hw/acpi: Update ACPI GED framework to support v


From: Salil Mehta
Subject: RE: [PATCH RFC V2 24/37] hw/acpi: Update ACPI GED framework to support vCPU Hotplug
Date: Tue, 26 Sep 2023 12:27:26 +0000

> From: Michael S. Tsirkin <mst@redhat.com>
> Sent: Tuesday, September 26, 2023 1:00 PM
> To: Salil Mehta <salil.mehta@huawei.com>
> Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; maz@kernel.org; jean-
> philippe@linaro.org; Jonathan Cameron <jonathan.cameron@huawei.com>;
> lpieralisi@kernel.org; peter.maydell@linaro.org;
> richard.henderson@linaro.org; imammedo@redhat.com; andrew.jones@linux.dev;
> david@redhat.com; philmd@linaro.org; eric.auger@redhat.com;
> will@kernel.org; ardb@kernel.org; oliver.upton@linux.dev;
> pbonzini@redhat.com; gshan@redhat.com; rafael@kernel.org;
> borntraeger@linux.ibm.com; alex.bennee@linaro.org; linux@armlinux.org.uk;
> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
> vishnu@os.amperecomputing.com; karl.heubaum@oracle.com;
> miguel.luis@oracle.com; salil.mehta@opnsrc.net; zhukeqian
> <zhukeqian1@huawei.com>; wangxiongfeng (C) <wangxiongfeng2@huawei.com>;
> wangyanan (Y) <wangyanan55@huawei.com>; jiakernel2@gmail.com;
> maobibo@loongson.cn; lixianglai@loongson.cn
> Subject: Re: [PATCH RFC V2 24/37] hw/acpi: Update ACPI GED framework to
> support vCPU Hotplug
> 
> On Tue, Sep 26, 2023 at 11:37:38AM +0000, Salil Mehta wrote:
> > > From: Michael S. Tsirkin <mst@redhat.com>
> > > Sent: Tuesday, September 26, 2023 12:02 PM
> > > To: Salil Mehta <salil.mehta@huawei.com>
> > > Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; maz@kernel.org; jean-
> > > philippe@linaro.org; Jonathan Cameron <jonathan.cameron@huawei.com>;
> > > lpieralisi@kernel.org; peter.maydell@linaro.org;
> > > richard.henderson@linaro.org; imammedo@redhat.com;
> andrew.jones@linux.dev;
> > > david@redhat.com; philmd@linaro.org; eric.auger@redhat.com;
> > > will@kernel.org; ardb@kernel.org; oliver.upton@linux.dev;
> > > pbonzini@redhat.com; gshan@redhat.com; rafael@kernel.org;
> > > borntraeger@linux.ibm.com; alex.bennee@linaro.org;
> linux@armlinux.org.uk;
> > > darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
> > > vishnu@os.amperecomputing.com; karl.heubaum@oracle.com;
> > > miguel.luis@oracle.com; salil.mehta@opnsrc.net; zhukeqian
> > > <zhukeqian1@huawei.com>; wangxiongfeng (C) <wangxiongfeng2@huawei.com>;
> > > wangyanan (Y) <wangyanan55@huawei.com>; jiakernel2@gmail.com;
> > > maobibo@loongson.cn; lixianglai@loongson.cn
> > > Subject: Re: [PATCH RFC V2 24/37] hw/acpi: Update ACPI GED framework to
> > > support vCPU Hotplug
> > >
> > > On Tue, Sep 26, 2023 at 11:04:23AM +0100, Salil Mehta wrote:
> > > > ACPI GED shall be used to convey to the guest kernel about any CPU
> hot-
> > > (un)plug
> > > > events. Therefore, existing ACPI GED framework inside QEMU needs to
> be
> > > enhanced
> > > > to support CPU hotplug state and events.
> > > >
> > > > Co-developed-by: Salil Mehta <salil.mehta@huawei.com>
> > >
> > > Co-developed with yourself?
> > >
> > > didn't you co-develop this with xianglai li?
> >
> > No, our effort is quite old ARM patch-set existed since the year 2020
> > without any change. Please check the original patch-set here:
> >
> > https://lore.kernel.org/qemu-devel/20200613213629.21984-11-
> salil.mehta@huawei.com/
> >
> >
> > To be fair to the authors, it will not be right to add another SOB here.
> >
> 
> I see. And what's the difference with patches that xianglai li posted?

I am not sure if there is. But if there is any change then it can be
commented on the architecture agnostic patch-set which I shall be
posting later this week. If that change is a common change to all
the architectures maybe I can pick-up that change and add in the V2
version of the arch agnostic patch-set and then it will make sense
to add the SOBs of the contributing members there.

> Are they both rebases of the same old patch then?

RFC V2 is an extension of RFC V1. We been working with ARM, Oracle
Ampere, Linaro and other companies to get to this stage.

It has already been agreed that Loongson folks shall be rebasing
their patch-set over ARM RFC V2 patch-set which is very big. 


20230926100436.28284-1-salil.mehta@huawei.com/T/#m523b37819c4811c7827333982004e07a1ef03879">https://lore.kernel.org/qemu-devel/20230926100436.28284-1-salil.mehta@huawei.com/T/#m523b37819c4811c7827333982004e07a1ef03879

I have for now pointed the patches in the exact order which can be
used to rebase their patch-set .

I will be sending a separate arch agnostic patch-set later this week
which will be without RFC Tag. This way different companies can work
independently.


Thanks
Salil.

> > > Just include his S.O.B then, and drop the non-standard Co-developed-by.
> >
> > Co-developed-by Tag has been added to ensure main authors of the patch
> > get highlighted clearly.
> 
> I think I don't know the patch provenance at this point.


It was us from Huawei in the year 2020.

https://lore.kernel.org/qemu-devel/20200613213629.21984-10-salil.mehta@huawei.com/




> > > > Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
> > > > Co-developed-by: Keqian Zhu <zhukeqian1@huawei.com>
> > > > Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
> > > > Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
> > >
> > >
> > >
> > > > ---
> > > >  hw/acpi/generic_event_device.c | 10 ++++++++++
> > > >  1 file changed, 10 insertions(+)
> > > >
> > > > diff --git a/hw/acpi/generic_event_device.c
> > > b/hw/acpi/generic_event_device.c
> > > > index ad252e6a91..0266733a54 100644
> > > > --- a/hw/acpi/generic_event_device.c
> > > > +++ b/hw/acpi/generic_event_device.c
> > > > @@ -12,6 +12,7 @@
> > > >  #include "qemu/osdep.h"
> > > >  #include "qapi/error.h"
> > > >  #include "hw/acpi/acpi.h"
> > > > +#include "hw/acpi/cpu.h"
> > > >  #include "hw/acpi/generic_event_device.h"
> > > >  #include "hw/irq.h"
> > > >  #include "hw/mem/pc-dimm.h"
> > > > @@ -239,6 +240,8 @@ static void
> acpi_ged_device_plug_cb(HotplugHandler
> > > *hotplug_dev,
> > > >          } else {
> > > >              acpi_memory_plug_cb(hotplug_dev, &s->memhp_state, dev,
> > > errp);
> > > >          }
> > > > +    } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> > > > +        acpi_cpu_plug_cb(hotplug_dev, &s->cpuhp_state, dev, errp);
> > > >      } else {
> > > >          error_setg(errp, "virt: device plug request for unsupported
> > > device"
> > > >                     " type: %s", object_get_typename(OBJECT(dev)));
> > > > @@ -253,6 +256,8 @@ static void
> acpi_ged_unplug_request_cb(HotplugHandler
> > > *hotplug_dev,
> > > >      if ((object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM) &&
> > > >                         !(object_dynamic_cast(OBJECT(dev),
> > > TYPE_NVDIMM)))) {
> > > >          acpi_memory_unplug_request_cb(hotplug_dev, &s->memhp_state,
> dev,
> > > errp);
> > > > +    } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> > > > +        acpi_cpu_unplug_request_cb(hotplug_dev, &s->cpuhp_state,
> dev,
> > > errp);
> > > >      } else {
> > > >          error_setg(errp, "acpi: device unplug request for
> unsupported
> > > device"
> > > >                     " type: %s", object_get_typename(OBJECT(dev)));
> > > > @@ -266,6 +271,8 @@ static void acpi_ged_unplug_cb(HotplugHandler
> > > *hotplug_dev,
> > > >
> > > >      if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> > > >          acpi_memory_unplug_cb(&s->memhp_state, dev, errp);
> > > > +    } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> > > > +        acpi_cpu_unplug_cb(&s->cpuhp_state, dev, errp);
> > > >      } else {
> > > >          error_setg(errp, "acpi: device unplug for unsupported
> device"
> > > >                     " type: %s", object_get_typename(OBJECT(dev)));
> > > > @@ -277,6 +284,7 @@ static void acpi_ged_ospm_status(AcpiDeviceIf
> *adev,
> > > ACPIOSTInfoList ***list)
> > > >      AcpiGedState *s = ACPI_GED(adev);
> > > >
> > > >      acpi_memory_ospm_status(&s->memhp_state, list);
> > > > +    acpi_cpu_ospm_status(&s->cpuhp_state, list);
> > > >  }
> > > >
> > > >  static void acpi_ged_send_event(AcpiDeviceIf *adev,
> AcpiEventStatusBits
> > > ev)
> > > > @@ -291,6 +299,8 @@ static void acpi_ged_send_event(AcpiDeviceIf
> *adev,
> > > AcpiEventStatusBits ev)
> > > >          sel = ACPI_GED_PWR_DOWN_EVT;
> > > >      } else if (ev & ACPI_NVDIMM_HOTPLUG_STATUS) {
> > > >          sel = ACPI_GED_NVDIMM_HOTPLUG_EVT;
> > > > +    } else if (ev & ACPI_CPU_HOTPLUG_STATUS) {
> > > > +        sel = ACPI_GED_CPU_HOTPLUG_EVT;
> > > >      } else {
> > > >          /* Unknown event. Return without generating interrupt. */
> > > >          warn_report("GED: Unsupported event %d. No irq injected",
> ev);
> > > > --
> > > > 2.34.1




reply via email to

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