All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tang Chen <tangchen@cn.fujitsu.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: zhugh.fnst@cn.fujitsu.com, mst@redhat.com, hutao@cn.fujitsu.com,
	qemu-devel@nongnu.org, isimatu.yasuaki@jp.fujitsu.com,
	pbonzini@redhat.com
Subject: Re: [Qemu-devel] [RESEND PATCH v3 1/8] acpi, piix4: Add memory hot unplug support for piix4.
Date: Tue, 16 Sep 2014 11:17:38 +0800	[thread overview]
Message-ID: <5417ABD2.8070809@cn.fujitsu.com> (raw)
In-Reply-To: <20140904141551.740e43fc@nial.usersys.redhat.com>

Hi Igor,

On 09/04/2014 08:15 PM, Igor Mammedov wrote:
> On Wed, 27 Aug 2014 16:08:32 +0800
> Tang Chen <tangchen@cn.fujitsu.com> wrote:
>
>> From: Hu Tao <hutao@cn.fujitsu.com>
>>
>> Implement acpi_memory_unplug_cb(), sending an sci to guest to trigger
>> memory hot-remove, and call it in piix4_device_unplug_cb().
>>
>> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
>> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
>> ---
>>   hw/acpi/memory_hotplug.c         | 25 +++++++++++++++++++++++++
>>   hw/acpi/piix4.c                  |  3 +++
>>   include/hw/acpi/memory_hotplug.h |  2 ++
>>   3 files changed, 30 insertions(+)
>>
>> diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
>> index ed39241..c310b44 100644
>> --- a/hw/acpi/memory_hotplug.c
>> +++ b/hw/acpi/memory_hotplug.c
>> @@ -195,6 +195,31 @@ void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
>>       return;
>>   }
>>   
>> +void acpi_memory_unplug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
>> +                           DeviceState *dev, Error **errp)
>> +{
>> +    Error *local_err = NULL;
>> +    int slot = object_property_get_int(OBJECT(dev), "slot", &local_err);
> might be worth to use PC_DIMM_SLOT_PROP here, and while at it
> do the same to acpi_memory_plug_cb() as well in separate patch.
>

Followed.

>> +
>> +    if (local_err) {
>> +        error_propagate(errp, local_err);
>> +        return;
>> +    }
>> +
>> +    if (slot >= mem_st->dev_count) {
>> +        char *dev_path = object_get_canonical_path(OBJECT(dev));
>> +        error_setg(errp, "acpi_memory_plug_cb: "
>> +                   "device [%s] returned invalid memory slot[%d]",
>> +                   dev_path, slot);
>> +        g_free(dev_path);
>> +        return;
>> +    }
> move 3 above blocks into separate function to reduce code duplication
> with acpi_memory_plug_cb(), perhaps something like following:
>
> MemStatus *
> acpi_memory_get_slot_status_descriptor(MemHotplugState *mem_st,
>                                         DeviceState *dev, Error **errp);

Followed.

>> +
> place here also missing removal signaling for selected mdev,
> perhaps it's due to wrong patch ordering

It is not a wrong ordering of patches. I meant to define mdev->is_removing
in patch 6/8. But it is OK to define it here. So followed.

>> +    /* do ACPI magic */
>> +    ar->gpe.sts[0] |= ACPI_MEMORY_HOTPLUG_STATUS;
>> +    acpi_update_sci(ar, irq);
> worth to make this block a separate function and reuse in
> acpi_memory_plug_cb()

Followed.

Thanks.

>> +}
>> +
>>   static const VMStateDescription vmstate_memhp_sts = {
>>       .name = "memory hotplug device state",
>>       .version_id = 1,
>> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
>> index b72b34e..c1d5187 100644
>> --- a/hw/acpi/piix4.c
>> +++ b/hw/acpi/piix4.c
>> @@ -362,6 +362,9 @@ static void piix4_device_unplug_cb(HotplugHandler *hotplug_dev,
>>       if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
>>           acpi_pcihp_device_unplug_cb(&s->ar, s->irq, &s->acpi_pci_hotplug, dev,
>>                                       errp);
>> +    } else if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
>> +        acpi_memory_unplug_cb(&s->ar, s->irq, &s->acpi_memory_hotplug, dev,
>> +                              errp);
>>       } else {
>>           error_setg(errp, "acpi: device unplug request for not supported device"
>>                      " type: %s", object_get_typename(OBJECT(dev)));
>> diff --git a/include/hw/acpi/memory_hotplug.h b/include/hw/acpi/memory_hotplug.h
>> index 7bbf8a0..fc6b868 100644
>> --- a/include/hw/acpi/memory_hotplug.h
>> +++ b/include/hw/acpi/memory_hotplug.h
>> @@ -28,6 +28,8 @@ void acpi_memory_hotplug_init(MemoryRegion *as, Object *owner,
>>   
>>   void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
>>                            DeviceState *dev, Error **errp);
>> +void acpi_memory_unplug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
>> +                           DeviceState *dev, Error **errp);
>>   
>>   extern const VMStateDescription vmstate_memory_hotplug;
>>   #define VMSTATE_MEMORY_HOTPLUG(memhp, state) \
> .
>

  reply	other threads:[~2014-09-16  3:16 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-27  8:08 [Qemu-devel] [RESEND PATCH v3 0/8] QEmu memory hot unplug support Tang Chen
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 1/8] acpi, piix4: Add memory hot unplug support for piix4 Tang Chen
2014-09-04 12:15   ` Igor Mammedov
2014-09-16  3:17     ` Tang Chen [this message]
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 2/8] acpi, ich9: Add memory hot unplug support for ich9 Tang Chen
2014-09-04 12:25   ` Igor Mammedov
2014-09-16  3:18     ` Tang Chen
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 3/8] pc: Add memory hot unplug support for pc machine Tang Chen
2014-09-04 12:44   ` Igor Mammedov
2014-09-04 13:16     ` Igor Mammedov
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 4/8] qdev: Add memory hot unplug support for bus-less devices Tang Chen
2014-09-04 13:22   ` Igor Mammedov
2014-09-16  8:42     ` Tang Chen
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 5/8] pc-dimm: Add pc_dimm_unrealize() for memory hot unplug support Tang Chen
2014-09-04 13:28   ` Igor Mammedov
2014-09-12  5:30     ` zhanghailiang
2014-09-12 13:17       ` Igor Mammedov
2014-09-24  7:02         ` Tang Chen
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 6/8] acpi: Add hardware implementation for memory hot unplug Tang Chen
2014-09-04 14:20   ` Igor Mammedov
2014-09-16 10:12     ` Tang Chen
2014-09-16 11:34       ` Igor Mammedov
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 7/8] pc, acpi bios: Add memory hot unplug interface Tang Chen
2014-09-04 13:53   ` Igor Mammedov
2014-08-27  8:08 ` [Qemu-devel] [RESEND PATCH v3 8/8] monitor: Add memory hot unplug support for device_del command Tang Chen
2014-09-04 14:02   ` Igor Mammedov

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=5417ABD2.8070809@cn.fujitsu.com \
    --to=tangchen@cn.fujitsu.com \
    --cc=hutao@cn.fujitsu.com \
    --cc=imammedo@redhat.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=zhugh.fnst@cn.fujitsu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.