On Wed, Jan 28, 2015 at 04:33:02PM +0800, Zhu Guihua wrote:
> On Wed, 2015-01-28 at 10:02 +0200, Michael S. Tsirkin wrote:
> > On Wed, Jan 28, 2015 at 03:45:37PM +0800, Zhu Guihua wrote:
> > > From: Tang Chen <[email protected]>
> > >
> > > Memory and CPU hot unplug are both asynchronous procedures.
> > > They both need unplug request callback to initiate unplug operation.
> > >
> > > Add unplug handler to pc machine that will be used by following
> > > CPU and memory unplug patches.
> > >
> > > Reviewed-by: Igor Mammedov <[email protected]>
> > > Signed-off-by: Tang Chen <[email protected]>
> > > Signed-off-by: Zhu Guihua <[email protected]>
> > > ---
> > > hw/i386/pc.c | 8 ++++++++
> > > 1 file changed, 8 insertions(+)
> > >
> > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> > > index c7af6aa..15ee10a 100644
> > > --- a/hw/i386/pc.c
> > > +++ b/hw/i386/pc.c
> > > @@ -1680,6 +1680,13 @@ static void
> > > pc_machine_device_plug_cb(HotplugHandler *hotplug_dev,
> > > }
> > > }
> > >
> > > +static void pc_machine_device_unplug_request_cb(HotplugHandler
> > > *hotplug_dev,
> > > + DeviceState *dev, Error
> > > **errp)
> > > +{
> > > + error_setg(errp, "acpi: device unplug request for not supported
> > > device"
> > > + " type: %s", object_get_typename(OBJECT(dev)));
> > > +}
> > > +
> > > static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
> > > DeviceState *dev)
> > > {
> >
> >
> > So this is just a stub, your follow-up patches replace it with
> > something more useful?
> >
> > Why do we need the stub stage though?
> > Why not just add whatever's going to be there eventually?
> >
>
> This function will be used in memory hot-unplug
> [RESEND PATCH v1 07/13] pc-dimm: Add memory hot unplug request support
> for pc-dimm.
> https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg00592.html
>
> and cpu hot-unplug
> [PATCH v2 05/11] pc: add cpu hot unplug request callback support
> https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01562.html
>
> Regards,
> Zhu
OK, so the point is to make it easier to resolve conflicts between the two
series?
> >
> > > @@ -1809,6 +1816,7 @@ static void pc_machine_class_init(ObjectClass *oc,
> > > void *data)
> > > pcmc->get_hotplug_handler = mc->get_hotplug_handler;
> > > mc->get_hotplug_handler = pc_get_hotpug_handler;
> > > hc->plug = pc_machine_device_plug_cb;
> > > + hc->unplug_request = pc_machine_device_unplug_request_cb;
> > > }
> > >
> > > static const TypeInfo pc_machine_info = {
> > > --
> > > 1.9.3
>