hot-added CPU id (APIC ID) will be distributed to acpi_piix4 and rtc_cmos Signed-off-by: Igor Mammedov <imamm...@redhat.com> --- 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 <sysemu/sysemu.h> + +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