From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37774) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIgVW-0004xi-VQ for qemu-devel@nongnu.org; Thu, 21 Mar 2013 10:30:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UIgV6-0004LP-Td for qemu-devel@nongnu.org; Thu, 21 Mar 2013 10:30:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:31663) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIgV6-0004Hl-EV for qemu-devel@nongnu.org; Thu, 21 Mar 2013 10:29:52 -0400 From: Igor Mammedov Date: Thu, 21 Mar 2013 15:28:41 +0100 Message-Id: <1363876125-8264-9-git-send-email-imammedo@redhat.com> In-Reply-To: <1363876125-8264-1-git-send-email-imammedo@redhat.com> References: <1363876125-8264-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH 08/12] introduce CPU hot-plug notifier List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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, armbru@redhat.com, quintela@redhat.com, lcapitulino@redhat.com, blauwirbel@gmail.com, yang.z.zhang@intel.com, alex.williamson@redhat.com, aderumier@odiso.com, kraxel@redhat.com, anthony.perard@citrix.com, pbonzini@redhat.com, afaerber@suse.de, rth@twiddle.net 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 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 { -- 1.7.1