From: Igor Mammedov <imammedo@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: dmitry@daynix.com, mst@redhat.com, agraf@suse.de,
qemu-devel@nongnu.org, cornelia.huck@de.ibm.com,
kraxel@redhat.com, amit.shah@redhat.com, borntraeger@de.ibm.com,
rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH 14/30] target-i386: ICC bus: replace BusState.allow_hotplug with hotplug_handler
Date: Wed, 24 Sep 2014 16:37:48 +0200 [thread overview]
Message-ID: <20140924163748.18dbc40c@nial.usersys.redhat.com> (raw)
In-Reply-To: <5422B775.90205@redhat.com>
On Wed, 24 Sep 2014 14:22:13 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 24/09/2014 13:48, Igor Mammedov ha scritto:
> > it will allow to drop BusState.allow_hotplug field
> > and still keep ICC bus hotluggable for CPU/APIC devices.
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > hw/cpu/icc_bus.c | 20 ++++++++++++--------
> > 1 file changed, 12 insertions(+), 8 deletions(-)
> >
> > diff --git a/hw/cpu/icc_bus.c b/hw/cpu/icc_bus.c
> > index 7f44c59..cb5ed5c 100644
> > --- a/hw/cpu/icc_bus.c
> > +++ b/hw/cpu/icc_bus.c
> > @@ -24,18 +24,10 @@
> >
> > /* icc-bridge implementation */
> >
> > -static void icc_bus_init(Object *obj)
> > -{
> > - BusState *b = BUS(obj);
> > -
> > - b->allow_hotplug = true;
> > -}
> > -
> > static const TypeInfo icc_bus_info = {
> > .name = TYPE_ICC_BUS,
> > .parent = TYPE_BUS,
> > .instance_size = sizeof(ICCBus),
> > - .instance_init = icc_bus_init,
> > };
> >
> >
> > @@ -100,11 +92,19 @@ static void icc_bridge_init(Object *obj)
> > s->icc_bus.apic_address_space = &s->apic_container;
> > }
> >
> > +static void icc_bridge_realize(DeviceState *dev, Error **errp)
> > +{
> > + ICCBridgeState *s = ICC_BRIGDE(dev);
> > +
> > + qbus_set_hotplug_handler(BUS(&s->icc_bus), dev, errp);
> > +}
> > +
> > static void icc_bridge_class_init(ObjectClass *oc, void *data)
> > {
> > DeviceClass *dc = DEVICE_CLASS(oc);
> >
> > set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
> > + dc->realize = icc_bridge_realize;
> > }
> >
> > static const TypeInfo icc_bridge_info = {
> > @@ -113,6 +113,10 @@ static const TypeInfo icc_bridge_info = {
> > .instance_init = icc_bridge_init,
> > .instance_size = sizeof(ICCBridgeState),
> > .class_init = icc_bridge_class_init,
> > + .interfaces = (InterfaceInfo[]) {
> > + { TYPE_HOTPLUG_HANDLER },
> > + { }
> > + }
> > };
> >
> >
> >
>
> If you do this, aren't you enabling CPU hot-unplug? Should
> hotplug_handler_plug and/or hotplug_handler_unplug return an error if
> there is no callback?
hotplug/unplug of x86 CPU is not usable with device_add/del yet, so
it's not used for CPUs yet.
x86 CPU nor APIC don't have DeviceClass.unplug callback so for old
behavior any attempt to call device_del would cause abort.
With this path attempt would become NOP.
I've thought it would be better to add hotplug_handler_plug and/or hotplug_handler_unplug
error handling to amended CPU unplug patches that were on list.
Leaving this series purpose clean (drop legacy unplug and provide
infrastructure for async unplug that will be used for CPU and pc-dimm devices)
>
> Paolo
next prev parent reply other threads:[~2014-09-24 14:38 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-24 11:47 [Qemu-devel] [PATCH 00/30] complete conversion to hotplug-handler API Igor Mammedov
2014-09-24 11:47 ` [Qemu-devel] [PATCH 01/30] test: virtio-scsi: check if hot-plug/unplug works Igor Mammedov
2014-09-24 12:32 ` Paolo Bonzini
2014-09-24 11:47 ` [Qemu-devel] [PATCH 02/30] test: virtio-serial: " Igor Mammedov
2014-09-24 12:33 ` Paolo Bonzini
2014-09-24 11:47 ` [Qemu-devel] [PATCH 03/30] test: virtio-rng: " Igor Mammedov
2014-09-24 12:35 ` Paolo Bonzini
2014-09-24 11:47 ` [Qemu-devel] [PATCH 04/30] test: virtio-net: " Igor Mammedov
2014-09-24 12:35 ` Paolo Bonzini
2014-09-24 11:47 ` [Qemu-devel] [PATCH 05/30] test: virtio-blk: " Igor Mammedov
2014-09-24 12:35 ` Paolo Bonzini
2014-09-24 11:47 ` [Qemu-devel] [PATCH 06/30] test: usb: add port test to uhci unit test Igor Mammedov
2014-09-24 12:30 ` Gerd Hoffmann
2014-09-24 14:06 ` Igor Mammedov
2014-09-24 11:47 ` [Qemu-devel] [PATCH 07/30] test: usb: generic usb device hotplug Igor Mammedov
2014-09-24 11:47 ` [Qemu-devel] [PATCH 08/30] test: usb: usb-storage hotplug test Igor Mammedov
2014-09-24 11:47 ` [Qemu-devel] [PATCH 09/30] access BusState.allow_hotplug using wraper qbus_is_hotpluggable() Igor Mammedov
2014-09-24 12:32 ` Paolo Bonzini
2014-09-25 2:00 ` Tang Chen
2014-09-25 8:05 ` Igor Mammedov
2014-09-24 11:47 ` [Qemu-devel] [PATCH 10/30] qdev: HotplugHandler: rename unplug callback to unplug_request Igor Mammedov
2014-09-24 12:16 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 11/30] qdev: HotplugHandler: provide unplug callback Igor Mammedov
2014-09-24 12:17 ` Paolo Bonzini
2014-09-25 1:53 ` Tang Chen
2014-09-25 8:07 ` Igor Mammedov
2014-09-24 11:48 ` [Qemu-devel] [PATCH 12/30] qdev: add simple/generic unplug callback for HotplugHandler Igor Mammedov
2014-09-24 12:17 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 13/30] qdev: hotplug: set handler only if HOTPLUG_HANDLER interface is supported Igor Mammedov
2014-09-24 12:19 ` Paolo Bonzini
2014-09-24 14:01 ` Igor Mammedov
2014-09-25 2:06 ` Tang Chen
2014-09-24 11:48 ` [Qemu-devel] [PATCH 14/30] target-i386: ICC bus: replace BusState.allow_hotplug with hotplug_handler Igor Mammedov
2014-09-24 12:22 ` Paolo Bonzini
2014-09-24 14:37 ` Igor Mammedov [this message]
2014-09-24 14:50 ` Paolo Bonzini
2014-09-24 15:30 ` Igor Mammedov
2014-09-24 15:34 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 15/30] virtio-pci: " Igor Mammedov
2014-09-24 12:23 ` Paolo Bonzini
2014-09-24 14:51 ` Igor Mammedov
2014-09-24 14:53 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 16/30] virtio-serial: convert to hotplug-handler API Igor Mammedov
2014-09-24 12:24 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 17/30] virtio-mmio: drop useless bus->allow_hotplug = 0 Igor Mammedov
2014-09-24 12:24 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 18/30] s390x: drop not used allow_hotplug in event-facility Igor Mammedov
2014-09-24 12:24 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 19/30] s390x: convert s390-virtio to hotplug handler API Igor Mammedov
2014-09-24 11:48 ` [Qemu-devel] [PATCH 20/30] s390x: convert virtio-ccw " Igor Mammedov
2014-09-25 11:08 ` Cornelia Huck
2014-09-25 13:11 ` Igor Mammedov
2014-09-25 14:32 ` Cornelia Huck
2014-09-25 15:26 ` Igor Mammedov
2014-09-24 11:48 ` [Qemu-devel] [PATCH 21/30] scsi: make scsi_bus_new() assign hotplug controller Igor Mammedov
2014-09-24 12:11 ` Paolo Bonzini
2014-09-24 12:14 ` Paolo Bonzini
2014-09-24 15:00 ` Igor Mammedov
2014-09-24 11:48 ` [Qemu-devel] [PATCH 22/30] scsi: convert pvscsi HBA to hotplug hander API Igor Mammedov
2014-09-24 12:13 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 23/30] scsi: convert virtio-scsi HBA to hotplug handler API Igor Mammedov
2014-09-24 12:15 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 24/30] scsi: cleanup not used anymore SCSIBusInfo{hotplug, hot_unplug} fields Igor Mammedov
2014-09-24 12:12 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0" Igor Mammedov
2014-09-24 12:27 ` Paolo Bonzini
2014-09-24 15:15 ` Igor Mammedov
2014-09-24 15:21 ` Paolo Bonzini
2014-09-25 8:01 ` Gerd Hoffmann
2014-09-25 8:12 ` Igor Mammedov
2014-09-25 14:10 ` Gerd Hoffmann
2014-09-25 7:59 ` Gerd Hoffmann
2014-09-24 11:48 ` [Qemu-devel] [PATCH 26/30] usb-storage: make its storage SCSI bus hotpluggable explicitly Igor Mammedov
2014-09-24 12:30 ` Paolo Bonzini
2014-09-24 12:56 ` Gerd Hoffmann
2014-09-24 12:50 ` Gerd Hoffmann
2014-09-24 15:22 ` Igor Mammedov
2014-09-25 7:52 ` Gerd Hoffmann
2014-09-24 11:48 ` [Qemu-devel] [PATCH 27/30] usb-storage: drop not needed "allow_hotplug = 0" Igor Mammedov
2014-09-24 12:31 ` Paolo Bonzini
2014-09-24 11:48 ` [Qemu-devel] [PATCH 28/30] usb: convert to hotplug handler API Igor Mammedov
2014-09-24 13:00 ` Gerd Hoffmann
2014-09-24 13:04 ` Paolo Bonzini
2014-09-24 13:23 ` Gerd Hoffmann
2014-09-24 15:39 ` Igor Mammedov
2014-09-25 7:50 ` Gerd Hoffmann
2014-09-25 10:55 ` Igor Mammedov
2014-09-25 12:47 ` Paolo Bonzini
2014-09-25 13:22 ` Igor Mammedov
2014-09-24 15:40 ` Igor Mammedov
2014-09-24 11:48 ` [Qemu-devel] [PATCH 29/30] qdev: drop legacy hotplug fields/methods Igor Mammedov
2014-09-24 12:04 ` Paolo Bonzini
2014-09-24 15:37 ` Igor Mammedov
2014-09-24 11:48 ` [Qemu-devel] [PATCH 30/30] qdev: HotplugHandler: add support for unplugging BUS-less devices Igor Mammedov
2014-09-24 12:00 ` Paolo Bonzini
2014-09-24 13:01 ` [Qemu-devel] [PATCH 00/30] complete conversion to hotplug-handler API Cornelia Huck
2014-09-24 14:20 ` Igor Mammedov
2014-09-24 15:01 ` Cornelia Huck
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=20140924163748.18dbc40c@nial.usersys.redhat.com \
--to=imammedo@redhat.com \
--cc=agraf@suse.de \
--cc=amit.shah@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=dmitry@daynix.com \
--cc=kraxel@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).