[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
- [PATCH RFC V2 21/37] hw/arm: MADT Tbl change to size the guest with possible vCPUs, (continued)
[PATCH RFC V2 25/37] arm/virt: Add/update basic hot-(un)plug framework, Salil Mehta, 2023/09/26
[PATCH RFC V2 26/37] arm/virt: Changes to (un)wire GICC<->vCPU IRQs during hot-(un)plug, Salil Mehta, 2023/09/26
[PATCH RFC V2 27/37] hw/arm, gicv3: Changes to update GIC with vCPU hot-plug notification, Salil Mehta, 2023/09/26
[PATCH RFC V2 28/37] hw/intc/arm-gicv3*: Changes required to (re)init the vCPU register info, Salil Mehta, 2023/09/26
[PATCH RFC V2 29/37] arm/virt: Update the guest(via GED) about CPU hot-(un)plug events, Salil Mehta, 2023/09/26
[PATCH RFC V2 30/37] hw/arm: Changes required for reset and to support next boot, Salil Mehta, 2023/09/26
[PATCH RFC V2 31/37] physmem, gdbstub: Common helping funcs/changes to *unrealize* vCPU, Salil Mehta, 2023/09/26