[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RESEND PATCH v1 11/13] pc-dimm: Add memory hot unplug
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [RESEND PATCH v1 11/13] pc-dimm: Add memory hot unplug support for pc-dimm. |
Date: |
Thu, 29 Jan 2015 14:34:53 +0100 |
On Thu, 8 Jan 2015 09:06:18 +0800
Tang Chen <address@hidden> wrote:
> Implement unplug cb for pc-dimm. It remove the corresponding
> memory region, and unregister vmstat. At last, it calls memory
> unplug cb to reset memory status and do unparenting.
> ---
> hw/i386/pc.c | 25 +++++++++++++++++++++++--
> 1 file changed, 23 insertions(+), 2 deletions(-)
>
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index f501f1f..3732f67 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1691,6 +1691,23 @@ out:
> error_propagate(errp, local_err);
> }
>
> +static void pc_dimm_unplug(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + PCMachineState *pcms = PC_MACHINE(hotplug_dev);
> + PCDIMMDevice *dimm = PC_DIMM(dev);
> + PCDIMMDeviceClass *ddc = PC_DIMM_GET_CLASS(dimm);
> + MemoryRegion *mr = ddc->get_memory_region(dimm);
> + HotplugHandlerClass *hhc;
> + Error *local_err = NULL;
> +
> + memory_region_del_subregion(&pcms->hotplug_memory, mr);
> + vmstate_unregister_ram(mr, dev);
I'd first cleanup external state by calling acpi unplug handler
and only the do above.
> +
> + hhc = HOTPLUG_HANDLER_GET_CLASS(pcms->acpi_dev);
> + hhc->unplug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &local_err);
> +}
> +
> static void pc_cpu_plug(HotplugHandler *hotplug_dev,
> DeviceState *dev, Error **errp)
> {
> @@ -1744,8 +1761,12 @@ static void
> pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> static void pc_machine_device_unplug_cb(HotplugHandler *hotplug_dev,
> DeviceState *dev, Error **errp)
> {
> - error_setg(errp, "acpi: device unplug for not supported device"
> - " type: %s", object_get_typename(OBJECT(dev)));
> + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> + pc_dimm_unplug(hotplug_dev, dev, errp);
> + } else {
> + error_setg(errp, "acpi: device unplug for not supported device"
> + " type: %s", object_get_typename(OBJECT(dev)));
> + }
> }
>
> static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
- [Qemu-devel] [RESEND PATCH v1 05/13] acpi, piix4: Add memory hot unplug request support for piix4., (continued)
- [Qemu-devel] [RESEND PATCH v1 05/13] acpi, piix4: Add memory hot unplug request support for piix4., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 06/13] acpi, ich9: Add memory hot unplug request support for ich9., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 08/13] acpi, mem-hotplug: Add unplug cb for memory device., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 07/13] pc-dimm: Add memory hot unplug request support for pc-dimm., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 09/13] acpi, piix4: Add memory hot unplug support for piix4., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 10/13] acpi, ich9: Add memory hot unplug support for ich9., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 11/13] pc-dimm: Add memory hot unplug support for pc-dimm., Tang Chen, 2015/01/07
- Re: [Qemu-devel] [RESEND PATCH v1 11/13] pc-dimm: Add memory hot unplug support for pc-dimm.,
Igor Mammedov <=
- [Qemu-devel] [RESEND PATCH v1 12/13] acpi: Add hardware implementation for memory hot unplug., Tang Chen, 2015/01/07
- [Qemu-devel] [RESEND PATCH v1 13/13] pc, acpi bios: Add memory hot unplug interface., Tang Chen, 2015/01/07
- Re: [Qemu-devel] [RESEND PATCH v1 00/13] QEmu memory hot unplug support., Igor Mammedov, 2015/01/29