LoongArch cpu hotplug is based on ACPI GED device, there is a little
change about ipi and extioi device, the value of num-cpu property is
maximum cpu number rather than present cpu number.
It can be verified with qemu command:
qemu-system-loongarch64 -smp 2,maxcpus=16,sockets=4,cores=4,threads=1
and vcpu can be added or remove with hmp command:
device_add la464-loongarch-cpu,socket-id=0,core-id=2,thread-id=0,id=cpu-2
device_del cpu-2
---
v1 ... v2:
1. Add new property hw-id, property hw-id is set for cold-added CPUs,
and property socket-id/core-id/thread-id is set for hot-added CPUs.
The two properties can be generated from each other.
2. Use general hotplug api such as hotplug_handler_pre_plug etc
3. Reorganize the patch order, split the patch set into 4 small
patches.
---
Bibo Mao (4):
hw/loongarch/virt: Add CPU topology support
hw/loongarch/virt: Implement cpu plug interface
hw/loongarch/virt: Update the ACPI table for hotplug cpu
hw/loongarch/virt: Enable cpu hotplug feature on virt machine
docs/system/loongarch/virt.rst | 31 ++++
hw/loongarch/Kconfig | 1 +
hw/loongarch/acpi-build.c | 35 +++-
hw/loongarch/virt.c | 293 +++++++++++++++++++++++++++++++--
include/hw/loongarch/virt.h | 3 +
target/loongarch/cpu.c | 25 +++
target/loongarch/cpu.h | 17 ++
7 files changed, 385 insertions(+), 20 deletions(-)
base-commit: e67b7aef7c7f67ecd0282e903e0daff806d5d680
--
2.39.3