This series is an attempt to provide CPU hotplug support on ARM virt platform. This is based on ACPI GED device. We should enable ACPI support, and use vGICv3 and 64bit CPU to support CPU hotplug. Under KVM accel, the KVM vCPUs is pre-created. Besides, vGIC IRIs is pre-created too. However, QEMU vCPU objects are defer-created. Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
46 lines
1.4 KiB
Diff
46 lines
1.4 KiB
Diff
From f45964c7e0df4ef17457a9ea92bfd255064139e1 Mon Sep 17 00:00:00 2001
|
|
From: Keqian Zhu <zhukeqian1@huawei.com>
|
|
Date: Fri, 10 Apr 2020 12:49:12 +0800
|
|
Subject: [PATCH] intc/kvm_gicv3: Factor out kvm_arm_gicv3_cpu_realize
|
|
|
|
The CPU object of hotplugged CPU will be defer-created (during
|
|
hotplug session), so we must factor out realization code to let
|
|
it can be applied to individual CPU.
|
|
|
|
Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
|
|
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
|
|
---
|
|
hw/intc/arm_gicv3_kvm.c | 10 +++++++---
|
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
|
|
index b1e74147ba..b2936938cb 100644
|
|
--- a/hw/intc/arm_gicv3_kvm.c
|
|
+++ b/hw/intc/arm_gicv3_kvm.c
|
|
@@ -761,6 +761,12 @@ static void vm_change_state_handler(void *opaque, int running,
|
|
}
|
|
}
|
|
|
|
+static void kvm_arm_gicv3_cpu_realize(GICv3State *s, int ncpu)
|
|
+{
|
|
+ ARMCPU *cpu = ARM_CPU(qemu_get_cpu(ncpu));
|
|
+
|
|
+ define_arm_cp_regs(cpu, gicv3_cpuif_reginfo);
|
|
+}
|
|
|
|
static void kvm_arm_gicv3_realize(DeviceState *dev, Error **errp)
|
|
{
|
|
@@ -791,9 +797,7 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, Error **errp)
|
|
}
|
|
|
|
for (i = 0; i < s->num_cpu; i++) {
|
|
- ARMCPU *cpu = ARM_CPU(qemu_get_cpu(i));
|
|
-
|
|
- define_arm_cp_regs(cpu, gicv3_cpuif_reginfo);
|
|
+ kvm_arm_gicv3_cpu_realize(s, i);
|
|
}
|
|
|
|
/* Try to create the device via the device control API */
|
|
--
|
|
2.19.1
|