All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-devel@nongnu.org, Cornelia Huck <cohuck@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Alexander Graf <agraf@suse.de>, Greg Kurz <groug@kaod.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v1 6/8] spapr: handle pc-dimm unplug via hotplug handler chain
Date: Fri, 8 Jun 2018 11:35:22 +0200	[thread overview]
Message-ID: <20180608113522.5d69661a@redhat.com> (raw)
In-Reply-To: <73659780-557a-1439-f389-831c1c0ad852@redhat.com>

On Fri, 8 Jun 2018 11:02:23 +0200
David Hildenbrand <david@redhat.com> wrote:

> On 08.06.2018 10:56, Igor Mammedov wrote:
> > On Thu,  7 Jun 2018 18:52:16 +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.  
> > Perhaps something like following would be better:
> > 
> > Factor out memory unplug into separate function from spapr_lmb_release().
> > Then use generic hotplug_handler_unplug() to trigger memory unplug,
> > which would call spapr_machine_device_unplug() -> spapr_memory_unplug()
> > in the end .
> > This way unplug operation is not buried in lmb internals and located
> > in the same place like in other targets, following similar
> > logic/call chain across targets.  
> 
> Can this be an addon patch? Sounds like factoring out more and moving more.
I've suggested ^^^ it as this patch description instead of the current one
that doesn't really makes the sense on it's own.

> >> Signed-off-by: David Hildenbrand <david@redhat.com>
> >> ---
> >>  hw/ppc/spapr.c | 18 +++++++++++++++---
> >>  1 file changed, 15 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> >> index bcb72d9fa7..0a8a3455d6 100644
> >> --- a/hw/ppc/spapr.c
> >> +++ b/hw/ppc/spapr.c
> >> @@ -3298,7 +3298,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
> >> @@ -3316,9 +3317,17 @@ 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_handler_unplug(hotplug_ctrl, dev, &error_abort);
> >> +}
> >> +
> >> +static void spapr_memory_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
> >> +{
> >> +    sPAPRMachineState *spapr = SPAPR_MACHINE(hotplug_dev);
> >> +    sPAPRDIMMState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev));
> >> +
> >> +    pc_dimm_memory_unplug(dev, MACHINE(hotplug_dev));
> >>      object_unparent(OBJECT(dev));
> >>      spapr_pending_dimm_unplugs_remove(spapr, ds);
> >>  }
> >> @@ -3589,6 +3598,9 @@ static void spapr_machine_device_plug(HotplugHandler *hotplug_dev,
> >>  static void spapr_machine_device_unplug(HotplugHandler *hotplug_dev,
> >>                                          DeviceState *dev, Error **errp)
> >>  {
> >> +    if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> >> +        spapr_memory_unplug(hotplug_dev, dev);
> >> +    }
> >>  }
> >>  
> >>  static void spapr_machine_device_unplug_request(HotplugHandler *hotplug_dev,  
> >   
> 
> 

  reply	other threads:[~2018-06-08  9:35 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-07 16:52 [Qemu-devel] [PATCH v1 0/8] pc/spapr/s390x: machine hotplug handler cleanups David Hildenbrand
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 1/8] pc: local error handling in hotplug handler functions David Hildenbrand
2018-06-08  8:04   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-06-08  8:05     ` David Hildenbrand
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 2/8] spapr: no need to verify the node David Hildenbrand
2018-06-08  3:28   ` David Gibson
2018-06-08  7:34   ` Greg Kurz
2018-06-08  7:42     ` David Hildenbrand
2018-06-08  7:46       ` Greg Kurz
2018-06-08  7:48         ` David Hildenbrand
2018-06-08  8:07           ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-06-08  8:39             ` Igor Mammedov
2018-06-08  8:41               ` David Hildenbrand
2018-06-08  9:06                 ` Igor Mammedov
2018-06-08  9:24                   ` David Hildenbrand
2018-06-08 10:52                     ` Greg Kurz
2018-06-08 11:28                       ` David Hildenbrand
2018-06-08 11:31                         ` Cornelia Huck
2018-06-08 11:53                         ` Greg Kurz
2018-06-08  8:20         ` [Qemu-devel] " David Gibson
2018-06-08  8:24           ` David Hildenbrand
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 3/8] spapr: move all DIMM checks into spapr_memory_plug David Hildenbrand
2018-06-08  3:28   ` David Gibson
2018-06-08  8:05   ` Greg Kurz
2018-06-08  8:07     ` David Hildenbrand
2018-06-08  8:41       ` Igor Mammedov
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 4/8] spapr: local error handling in hotplug handler functions David Hildenbrand
2018-06-08  3:29   ` David Gibson
2018-06-08  8:40   ` Greg Kurz
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 5/8] spapr: introduce machine unplug handler David Hildenbrand
2018-06-08  3:29   ` David Gibson
2018-06-08  8:44   ` Igor Mammedov
2018-06-08  8:56   ` Greg Kurz
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 6/8] spapr: handle pc-dimm unplug via hotplug handler chain David Hildenbrand
2018-06-08  3:30   ` David Gibson
2018-06-08  8:56   ` Igor Mammedov
2018-06-08  9:02     ` David Hildenbrand
2018-06-08  9:35       ` Igor Mammedov [this message]
2018-06-08  9:36         ` David Hildenbrand
2018-06-08  8:59   ` Greg Kurz
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 7/8] spapr: handle cpu core " David Hildenbrand
2018-06-08  3:31   ` David Gibson
2018-06-08  8:57   ` Igor Mammedov
2018-06-08  9:00   ` Greg Kurz
2018-06-07 16:52 ` [Qemu-devel] [PATCH v1 8/8] s390x: local error handling in hotplug handler functions David Hildenbrand
2018-06-08  7:25   ` Cornelia Huck
2018-06-08  7:27     ` Christian Borntraeger
2018-06-08  7:40       ` David Hildenbrand
2018-06-08  7:50         ` Christian Borntraeger
2018-06-08  9:03         ` Igor Mammedov
2018-06-08  9:19           ` David Hildenbrand
2018-06-08  7:58 ` [Qemu-devel] [PATCH v1 0/8] pc/spapr/s390x: machine hotplug handler cleanups 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=20180608113522.5d69661a@redhat.com \
    --to=imammedo@redhat.com \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=groug@kaod.org \
    --cc=mst@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.