From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52390) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKoBf-0007RW-DG for qemu-devel@nongnu.org; Wed, 27 Mar 2013 07:06:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UKoBa-0001NI-Kp for qemu-devel@nongnu.org; Wed, 27 Mar 2013 07:06:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47198) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKoBa-0001NA-DE for qemu-devel@nongnu.org; Wed, 27 Mar 2013 07:06:30 -0400 Message-ID: <5152D2A2.2030901@redhat.com> Date: Wed, 27 Mar 2013 12:06:10 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1363876125-8264-1-git-send-email-imammedo@redhat.com> <1363876125-8264-9-git-send-email-imammedo@redhat.com> In-Reply-To: <1363876125-8264-9-git-send-email-imammedo@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 08/12] introduce CPU hot-plug notifier List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: kwolf@redhat.com, peter.maydell@linaro.org, aliguori@us.ibm.com, ehabkost@redhat.com, mst@redhat.com, jan.kiszka@siemens.com, stefano.stabellini@eu.citrix.com, claudio.fontana@huawei.com, qemu-devel@nongnu.org, quintela@redhat.com, armbru@redhat.com, blauwirbel@gmail.com, yang.z.zhang@intel.com, alex.williamson@redhat.com, aderumier@odiso.com, kraxel@redhat.com, anthony.perard@citrix.com, lcapitulino@redhat.com, afaerber@suse.de, rth@twiddle.net Il 21/03/2013 15:28, Igor Mammedov ha scritto: > hot-added CPU id (APIC ID) will be distributed to acpi_piix4 and rtc_cmos > > Signed-off-by: Igor Mammedov > --- > include/sysemu/sysemu.h | 4 ++++ > stubs/Makefile.objs | 1 + > stubs/qemu_system_cpu_hotplug_request.c | 5 +++++ > vl.c | 14 ++++++++++++++ > 4 files changed, 24 insertions(+), 0 deletions(-) > create mode 100644 stubs/qemu_system_cpu_hotplug_request.c > > diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h > index 6578782..4b8f721 100644 > --- a/include/sysemu/sysemu.h > +++ b/include/sysemu/sysemu.h > @@ -152,6 +152,10 @@ void do_pci_device_hot_remove(Monitor *mon, const QDict *qdict); > /* generic hotplug */ > void drive_hot_add(Monitor *mon, const QDict *qdict); > > +/* CPU hotplug */ > +void qemu_register_cpu_add_notifier(Notifier *notifier); > +void qemu_system_cpu_hotplug_request(uint32_t id); > + > /* pcie aer error injection */ > void pcie_aer_inject_error_print(Monitor *mon, const QObject *data); > int do_pcie_aer_inject_error(Monitor *mon, > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs > index 9741e16..6a492f5 100644 > --- a/stubs/Makefile.objs > +++ b/stubs/Makefile.objs > @@ -25,3 +25,4 @@ stub-obj-y += vmstate.o > stub-obj-$(CONFIG_WIN32) += fd-register.o > stub-obj-y += resume_vcpu.o > stub-obj-y += get_icc_bus.o > +stub-obj-y += qemu_system_cpu_hotplug_request.o You're adding one stub per patch. I think this is a sign that something can be abstracted at a higher level (e.g. put something in cpus.c if it is softmmu-specific), or that it is added at the wrong place. For example, this notifier can go in qom/cpu.c. (Besides, I noticed now the get_icc_bus stub. I didn't understand why it's used, but anyway adding CPU-specific stuff to libqemustub is absolutely a no-no). Paolo > diff --git a/stubs/qemu_system_cpu_hotplug_request.c b/stubs/qemu_system_cpu_hotplug_request.c > new file mode 100644 > index 0000000..ad4f394 > --- /dev/null > +++ b/stubs/qemu_system_cpu_hotplug_request.c > @@ -0,0 +1,5 @@ > +#include > + > +void qemu_system_cpu_hotplug_request(uint32_t id) > +{ > +} > diff --git a/vl.c b/vl.c > index aeed7f4..fd95e43 100644 > --- a/vl.c > +++ b/vl.c > @@ -1723,6 +1723,20 @@ void vm_start(void) > } > } > > +/* CPU hot-plug notifiers */ > +static NotifierList cpu_add_notifiers = > + NOTIFIER_LIST_INITIALIZER(cpu_add_notifiers); > + > +void qemu_register_cpu_add_notifier(Notifier *notifier) > +{ > + notifier_list_add(&cpu_add_notifiers, notifier); > +} > + > +void qemu_system_cpu_hotplug_request(uint32_t id) > +{ > + notifier_list_notify(&cpu_add_notifiers, &id); > +} > + > /* reset/shutdown handler */ > > typedef struct QEMUResetEntry { >