From: Igor Mammedov <imammedo@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
"Michael S . Tsirkin" <mst@redhat.com>,
Marcel Apfelbaum <marcel@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>,
Eduardo Habkost <ehabkost@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>,
Markus Armbruster <armbru@redhat.com>,
qemu-ppc@nongnu.org, Pankaj Gupta <pagupta@redhat.com>,
Alexander Graf <agraf@suse.de>, Cornelia Huck <cohuck@redhat.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 08/14] spapr: handle pc-dimm unplug via hotplug handler chain
Date: Fri, 1 Jun 2018 12:53:32 +0200 [thread overview]
Message-ID: <20180601125332.0bcd6b8b@redhat.com> (raw)
In-Reply-To: <20180517081527.14410-9-david@redhat.com>
On Thu, 17 May 2018 10:15:21 +0200
David Hildenbrand <david@redhat.com> wrote:
> Let's handle it via hotplug_handler_unplug(). E.g. necessary to hotplug/
> unplug memory devices (which a pc-dimm is) later.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
> hw/ppc/spapr.c | 23 +++++++++++++++++++----
> 1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 2f315f963b..286c38c842 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -3291,7 +3291,8 @@ static sPAPRDIMMState *spapr_recover_pending_dimm_state(sPAPRMachineState *ms,
> /* Callback to be called during DRC release. */
> void spapr_lmb_release(DeviceState *dev)
> {
> - sPAPRMachineState *spapr = SPAPR_MACHINE(qdev_get_hotplug_handler(dev));
> + HotplugHandler *hotplug_ctrl = qdev_get_hotplug_handler(dev);
> + sPAPRMachineState *spapr = SPAPR_MACHINE(hotplug_ctrl);
> sPAPRDIMMState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev));
>
> /* This information will get lost if a migration occurs
> @@ -3309,9 +3310,21 @@ void spapr_lmb_release(DeviceState *dev)
>
> /*
> * Now that all the LMBs have been removed by the guest, call the
> - * pc-dimm unplug handler to cleanup up the pc-dimm device.
> + * unplug handler chain. This can never fail.
> */
> - pc_dimm_memory_unplug(dev, MACHINE(spapr));
> + hotplug_ctrl = qdev_get_hotplug_handler(dev);
> + hotplug_handler_unplug(hotplug_ctrl, dev, &error_abort);
> +}
> +
> +static void spapr_memory_unplug(HotplugHandler *hotplug_dev, DeviceState *dev,
> + Error **errp)
> +{
> + sPAPRMachineState *spapr = SPAPR_MACHINE(hotplug_dev);
> + sPAPRDIMMState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev));
> + g_assert(ds);
> + g_assert(!ds->nr_lmbs);
Theses 2 lines seems to unrelated to patch topic,
could you drop it?
if these values should be checked, it would be better to audit 'ds' use
across spapr.c and file separate patch separately from this series.
> + pc_dimm_memory_unplug(dev, MACHINE(hotplug_dev));
> object_unparent(OBJECT(dev));
> spapr_pending_dimm_unplugs_remove(spapr, ds);
> }
> @@ -3608,7 +3621,9 @@ static void spapr_machine_device_unplug(HotplugHandler *hotplug_dev,
> Error *local_err = NULL;
>
> /* final stage hotplug handler */
> - if (dev->parent_bus && dev->parent_bus->hotplug_handler) {
> + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> + spapr_memory_unplug(hotplug_dev, dev, &local_err);
> + } else if (dev->parent_bus && dev->parent_bus->hotplug_handler) {
> hotplug_handler_unplug(dev->parent_bus->hotplug_handler, dev,
> &local_err);
> }
otherwise, ignoring dev->parent_bus parts, patch looks reasonable
next prev parent reply other threads:[~2018-06-01 10:53 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-17 8:15 [Qemu-devel] [PATCH v4 00/14] MemoryDevice: use multi stage hotplug handlers David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 01/14] memory-device: drop assert related to align and start of address space David Hildenbrand
2018-05-29 13:27 ` Igor Mammedov
2018-05-29 16:02 ` David Hildenbrand
2018-05-30 12:57 ` Igor Mammedov
2018-05-30 14:06 ` David Hildenbrand
2018-05-31 13:54 ` Igor Mammedov
2018-06-04 10:53 ` David Hildenbrand
2018-06-07 13:26 ` Igor Mammedov
2018-06-07 14:12 ` David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 02/14] memory-device: introduce separate config option David Hildenbrand
2018-05-30 12:58 ` Igor Mammedov
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 03/14] qdev: let machine hotplug handler to override bus hotplug handler David Hildenbrand
2018-06-05 1:02 ` David Gibson
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 04/14] pc: prepare for multi stage hotplug handlers David Hildenbrand
2018-05-30 13:08 ` Igor Mammedov
2018-05-30 14:13 ` David Hildenbrand
2018-05-31 14:13 ` Igor Mammedov
2018-06-04 11:27 ` David Hildenbrand
2018-06-07 13:44 ` Igor Mammedov
2018-06-07 14:00 ` David Hildenbrand
2018-06-08 12:24 ` Igor Mammedov
2018-06-08 12:32 ` David Hildenbrand
2018-06-08 12:55 ` Michael S. Tsirkin
2018-06-08 13:07 ` David Hildenbrand
2018-06-08 15:12 ` Michael S. Tsirkin
2018-06-13 10:58 ` David Hildenbrand
2018-06-13 15:48 ` Igor Mammedov
2018-06-13 15:51 ` David Hildenbrand
2018-06-13 18:32 ` Michael S. Tsirkin
2018-06-13 19:37 ` David Hildenbrand
2018-06-13 22:05 ` Michael S. Tsirkin
2018-06-14 6:14 ` David Hildenbrand
2018-06-14 9:16 ` Igor Mammedov
2018-06-14 9:20 ` Igor Mammedov
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 05/14] pc: route all memory devices through the machine hotplug handler David Hildenbrand
2018-05-30 13:12 ` Igor Mammedov
2018-05-30 14:08 ` David Hildenbrand
2018-05-30 14:27 ` Paolo Bonzini
2018-05-30 14:31 ` David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 06/14] spapr: prepare for multi stage hotplug handlers David Hildenbrand
2018-05-17 12:43 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2018-06-01 10:33 ` [Qemu-devel] " Igor Mammedov
2018-06-05 1:08 ` David Gibson
2018-06-05 7:51 ` David Hildenbrand
2018-06-07 14:26 ` Igor Mammedov
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 07/14] spapr: route all memory devices through the machine hotplug handler David Hildenbrand
2018-06-05 1:09 ` David Gibson
2018-06-05 7:51 ` David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 08/14] spapr: handle pc-dimm unplug via hotplug handler chain David Hildenbrand
2018-06-01 10:53 ` Igor Mammedov [this message]
2018-06-05 1:12 ` David Gibson
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 09/14] spapr: handle cpu core " David Hildenbrand
2018-06-01 10:57 ` Igor Mammedov
2018-06-05 1:13 ` David Gibson
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 10/14] memory-device: new functions to handle plug/unplug David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 11/14] pc-dimm: implement new memory device functions David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 12/14] memory-device: factor out pre-plug into hotplug handler David Hildenbrand
2018-06-01 11:17 ` Igor Mammedov
2018-06-04 11:45 ` David Hildenbrand
2018-06-07 15:00 ` Igor Mammedov
2018-06-07 15:10 ` David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 13/14] memory-device: factor out unplug " David Hildenbrand
2018-06-01 11:31 ` Igor Mammedov
2018-06-04 15:54 ` David Hildenbrand
2018-05-17 8:15 ` [Qemu-devel] [PATCH v4 14/14] memory-device: factor out plug " David Hildenbrand
2018-06-01 11:39 ` Igor Mammedov
2018-06-04 11:47 ` David Hildenbrand
2018-06-07 10:44 ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
2018-05-25 12:43 ` [Qemu-devel] [qemu-s390x] [PATCH v4 00/14] MemoryDevice: use multi stage hotplug handlers David Hildenbrand
2018-05-30 14:03 ` Paolo Bonzini
2018-05-31 11:47 ` Igor Mammedov
2018-05-31 11:50 ` Paolo Bonzini
2018-06-01 12:13 ` Igor Mammedov
2018-06-04 10:03 ` David Hildenbrand
2018-06-08 9:57 ` David Hildenbrand
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=20180601125332.0bcd6b8b@redhat.com \
--to=imammedo@redhat.com \
--cc=agraf@suse.de \
--cc=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=david@redhat.com \
--cc=ehabkost@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=pagupta@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
/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.