[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/21] introduce CPU hot-plug notifier
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH 05/21] introduce CPU hot-plug notifier |
Date: |
Tue, 23 Apr 2013 10:29:39 +0200 |
hot-add CPU event will be distributed to acpi_piix4 and rtc_cmos
Signed-off-by: Igor Mammedov <address@hidden>
---
v3:
* call notifier right before CPU becomes runable
v2:
* move notifier to qom/cpu.c and call it from CPUClass.realize() on hotplug
* remove get_firmware_id() since it belong to other patch
---
include/sysemu/sysemu.h | 3 +++
qom/cpu.c | 12 ++++++++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 6578782..a8c3de1 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -152,6 +152,9 @@ 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_added_notifier(Notifier *notifier);
+
/* 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/qom/cpu.c b/qom/cpu.c
index abb20d0..9f78114 100644
--- a/qom/cpu.c
+++ b/qom/cpu.c
@@ -21,6 +21,17 @@
#include "qom/cpu.h"
#include "qemu-common.h"
#include "sysemu/kvm.h"
+#include "qemu/notify.h"
+#include "sysemu/sysemu.h"
+
+/* CPU hot-plug notifiers */
+static NotifierList cpu_added_notifiers =
+ NOTIFIER_LIST_INITIALIZER(cpu_add_notifiers);
+
+void qemu_register_cpu_added_notifier(Notifier *notifier)
+{
+ notifier_list_add(&cpu_added_notifiers, notifier);
+}
void cpu_reset_interrupt(CPUState *cpu, int mask)
{
@@ -60,6 +71,7 @@ static void cpu_common_realizefn(DeviceState *dev, Error
**errp)
{
if (dev->hotplugged) {
cpu_synchronize_post_init(CPU(dev));
+ notifier_list_notify(&cpu_added_notifiers, dev);
cpu_resume(CPU(dev));
}
}
--
1.7.1
[Qemu-devel] [PATCH 15/19 v2] extend memory_region_find() and use it in kvm/ioapic, Igor Mammedov, 2013/04/24
[Qemu-devel] [PATCH 04/21] cpu: resume CPU from CPUClass.cpu_common_realizefn() when it is hot-plugged, Igor Mammedov, 2013/04/23
[Qemu-devel] [PATCH 06/21] target-i386: pc: update rtc_cmos on CPU hot-plug, Igor Mammedov, 2013/04/23
[Qemu-devel] [PATCH 05/21] introduce CPU hot-plug notifier,
Igor Mammedov <=