qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: Auger Eric <eric.auger@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"qemu-arm@nongnu.org" <qemu-arm@nongnu.org>,
	"imammedo@redhat.com" <imammedo@redhat.com>
Cc: "peter.maydell@linaro.org" <peter.maydell@linaro.org>,
	"sameo@linux.intel.com" <sameo@linux.intel.com>,
	"ard.biesheuvel@linaro.org" <ard.biesheuvel@linaro.org>,
	Linuxarm <linuxarm@huawei.com>,
	"shannon.zhaosl@gmail.com" <shannon.zhaosl@gmail.com>,
	"sebastien.boeuf@intel.com" <sebastien.boeuf@intel.com>,
	"xuwei \(O\)" <xuwei5@huawei.com>,
	"lersek@redhat.com" <lersek@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v5 4/8] hw/arm/virt: Add memory hotplug framework
Date: Wed, 19 Jun 2019 08:16:15 +0000	[thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83F2AA94E@lhreml524-mbs.china.huawei.com> (raw)
In-Reply-To: <5e59ade1-91ab-e9c8-2c41-97217355c612@redhat.com>

Hi Eric,

> -----Original Message-----
> From: Auger Eric [mailto:eric.auger@redhat.com]
> Sent: 18 June 2019 13:42
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>;
> qemu-devel@nongnu.org; qemu-arm@nongnu.org; imammedo@redhat.com
> Cc: peter.maydell@linaro.org; shannon.zhaosl@gmail.com;
> sameo@linux.intel.com; sebastien.boeuf@intel.com; xuwei (O)
> <xuwei5@huawei.com>; lersek@redhat.com; ard.biesheuvel@linaro.org;
> Linuxarm <linuxarm@huawei.com>
> Subject: Re: [PATCH v5 4/8] hw/arm/virt: Add memory hotplug framework
> 
> Hi Shameer,
> 
> On 5/22/19 6:22 PM, Shameer Kolothum wrote:
> > From: Eric Auger <eric.auger@redhat.com>
> >
> > This patch adds the memory hot-plug/hot-unplug infrastructure in
> > machvirt. The device memory is not yet exposed to the Guest either
> > through DT or ACPI and hence both cold/hot plug of memory is
> > explicitly disabled for now.
> >
> > Signed-off-by: Eric Auger <eric.auger@redhat.com>
> > Signed-off-by: Kwangwoo Lee <kwangwoo.lee@sk.com>
> > Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> > ---
> >  hw/arm/Kconfig |  2 ++
> >  hw/arm/virt.c  | 51
> > +++++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 52 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index
> > af8cffde9c..6ef22439b5 100644
> > --- a/hw/arm/Kconfig
> > +++ b/hw/arm/Kconfig
> > @@ -19,6 +19,8 @@ config ARM_VIRT
> >      select PLATFORM_BUS
> >      select SMBIOS
> >      select VIRTIO_MMIO
> small conflict to be resolved here after addition of "select ACPI_PCI".

Ok. I will address that in next revision.

Thanks,
Shameer

> > +    select MEM_DEVICE
> > +    select DIMM
> >
> >  config CHEETAH
> >      bool
> > diff --git a/hw/arm/virt.c b/hw/arm/virt.c index
> > 5331ab71e2..3df8c389ff 100644
> > --- a/hw/arm/virt.c
> > +++ b/hw/arm/virt.c
> > @@ -62,6 +62,8 @@
> >  #include "hw/arm/smmuv3.h"
> >  #include "hw/acpi/acpi.h"
> >  #include "target/arm/internals.h"
> > +#include "hw/mem/pc-dimm.h"
> > +#include "hw/mem/nvdimm.h">
> >  #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \
> >      static void virt_##major##_##minor##_class_init(ObjectClass *oc,
> > \ @@ -1862,6 +1864,40 @@ static const CPUArchIdList
> *virt_possible_cpu_arch_ids(MachineState *ms)
> >      return ms->possible_cpus;
> >  }
> >
> > +static void virt_memory_pre_plug(HotplugHandler *hotplug_dev,
> DeviceState *dev,
> > +                                 Error **errp) {
> > +
> > +    /*
> > +     * The device memory is not yet exposed to the Guest either through>
> +     * DT or ACPI and hence both cold/hot plug of memory is explicitly
> > +     * disabled for now.
> > +     */
> > +    if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> > +        error_setg(errp, "memory cold/hot plug is not yet supported");
> > +        return;
> > +    }
> > +
> > +    pc_dimm_pre_plug(PC_DIMM(dev), MACHINE(hotplug_dev), NULL,
> errp);
> > +}
> > +
> > +static void virt_memory_plug(HotplugHandler *hotplug_dev,
> > +                             DeviceState *dev, Error **errp) {
> > +    VirtMachineState *vms = VIRT_MACHINE(hotplug_dev);
> > +
> > +    pc_dimm_plug(PC_DIMM(dev), MACHINE(vms), NULL);
> > +
> > +}
> > +
> > +static void virt_machine_device_pre_plug_cb(HotplugHandler *hotplug_dev,
> > +                                            DeviceState *dev,
> Error
> > +**errp) {
> > +    if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> > +        virt_memory_pre_plug(hotplug_dev, dev, errp);
> > +    }
> > +}
> > +
> >  static void virt_machine_device_plug_cb(HotplugHandler *hotplug_dev,
> >                                          DeviceState *dev, Error
> > **errp)  { @@ -1873,12 +1909,23 @@ static void
> > virt_machine_device_plug_cb(HotplugHandler *hotplug_dev,
> >                                       SYS_BUS_DEVICE(dev));
> >          }
> >      }
> > +    if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> > +        virt_memory_plug(hotplug_dev, dev, errp);
> > +    }
> > +}
> > +
> > +static void virt_machine_device_unplug_request_cb(HotplugHandler
> *hotplug_dev,
> > +                                          DeviceState *dev, Error
> > +**errp) {
> > +    error_setg(errp, "device unplug request for unsupported device"
> > +               " type: %s", object_get_typename(OBJECT(dev)));
> >  }
> >
> >  static HotplugHandler *virt_machine_get_hotplug_handler(MachineState
> *machine,
> >
> DeviceState
> > *dev)  {
> > -    if (object_dynamic_cast(OBJECT(dev), TYPE_SYS_BUS_DEVICE)) {
> > +    if (object_dynamic_cast(OBJECT(dev), TYPE_SYS_BUS_DEVICE) ||
> > +       (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM))) {
> >          return HOTPLUG_HANDLER(machine);
> >      }
> >
> > @@ -1942,7 +1989,9 @@ static void virt_machine_class_init(ObjectClass
> *oc, void *data)
> >      mc->kvm_type = virt_kvm_type;
> >      assert(!mc->get_hotplug_handler);
> >      mc->get_hotplug_handler = virt_machine_get_hotplug_handler;
> > +    hc->pre_plug = virt_machine_device_pre_plug_cb;
> >      hc->plug = virt_machine_device_plug_cb;
> > +    hc->unplug_request = virt_machine_device_unplug_request_cb;
> >  }
> >
> >  static void virt_instance_init(Object *obj)
> >
> Thanks
> 
> Eric

  reply	other threads:[~2019-06-19  8:18 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-22 16:22 [Qemu-devel] [PATCH v5 0/8] ARM virt: ACPI memory hotplug support Shameer Kolothum
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 1/8] hw/acpi: Make ACPI IO address space configurable Shameer Kolothum
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 2/8] hw/acpi: Do not create memory hotplug method when handler is not defined Shameer Kolothum
2019-06-20 12:45   ` Igor Mammedov
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 3/8] hw/acpi: Add ACPI Generic Event Device Support Shameer Kolothum
2019-06-18 12:40   ` Auger Eric
2019-06-19  8:14     ` Shameerali Kolothum Thodi
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 4/8] hw/arm/virt: Add memory hotplug framework Shameer Kolothum
2019-06-18 12:42   ` Auger Eric
2019-06-19  8:16     ` Shameerali Kolothum Thodi [this message]
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 5/8] hw/arm/virt: Enable device memory cold/hot plug with ACPI boot Shameer Kolothum
2019-06-18 12:43   ` Auger Eric
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 6/8] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT Shameer Kolothum
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 7/8] hw/acpi: Add system power down support to GED Shameer Kolothum
2019-06-18 12:43   ` Auger Eric
2019-05-22 16:22 ` [Qemu-devel] [PATCH v5 8/8] hw/arm: Use GED for system_powerdown event Shameer Kolothum
2019-06-18 12:49   ` Auger Eric
2019-06-18 12:52 ` [Qemu-devel] [PATCH v5 0/8] ARM virt: ACPI memory hotplug support Auger Eric
2019-06-18 12:57   ` Peter Maydell
2019-06-18 13:44     ` Auger Eric
2019-06-19  8:18       ` Shameerali Kolothum Thodi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5FC3163CFD30C246ABAA99954A238FA83F2AA94E@lhreml524-mbs.china.huawei.com \
    --to=shameerali.kolothum.thodi@huawei.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=eric.auger@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=lersek@redhat.com \
    --cc=linuxarm@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sameo@linux.intel.com \
    --cc=sebastien.boeuf@intel.com \
    --cc=shannon.zhaosl@gmail.com \
    --cc=xuwei5@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).