qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] hw/loongarch/virt: Add cpu hotplug support
@ 2024-11-04  6:34 Bibo Mao
  2024-11-04  6:34 ` [PATCH v3 1/5] hw/loongarch/virt: Add CPU topology support Bibo Mao
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Bibo Mao @ 2024-11-04  6:34 UTC (permalink / raw)
  To: Song Gao, Paolo Bonzini, Zhao Liu
  Cc: Jiaxun Yang, Igor Mammedov, Xianglai Li, qemu-devel

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

---
v2 ... v3:
  1. Use qdev_realize_and_unref() with qdev_realize() and object_unref().
  2. Set vcpus_count with 1 since vcpu object is created for every thread.
  3. Remove property hw-id, use internal variable hw_id to differentiate
     cold-plug cpus and hot-plug cpus.
  4. Add generic function virt_init_cpu_irq() to init interrupt pin
     of CPU object, used by both cold-plug and hot-plug CPUs

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 (5):
  hw/loongarch/virt: Add CPU topology support
  hw/loongarch/virt: Implement cpu plug interface
  hw/loongarch/virt: Add generic function to init interrupt pin of CPU
  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            | 349 +++++++++++++++++++++++++++++----
 include/hw/loongarch/virt.h    |   3 +
 target/loongarch/cpu.c         |  25 +++
 target/loongarch/cpu.h         |  17 ++
 7 files changed, 416 insertions(+), 45 deletions(-)


base-commit: 92ec7805190313c9e628f8fc4eb4f932c15247bd
-- 
2.39.3



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-11-06  2:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-04  6:34 [PATCH v3 0/5] hw/loongarch/virt: Add cpu hotplug support Bibo Mao
2024-11-04  6:34 ` [PATCH v3 1/5] hw/loongarch/virt: Add CPU topology support Bibo Mao
2024-11-04  6:34 ` [PATCH v3 2/5] hw/loongarch/virt: Implement cpu plug interface Bibo Mao
2024-11-04  6:34 ` [PATCH v3 3/5] hw/loongarch/virt: Add generic function to init interrupt pin of CPU Bibo Mao
2024-11-04  6:34 ` [PATCH v3 4/5] hw/loongarch/virt: Update the ACPI table for hotplug cpu Bibo Mao
2024-11-04  6:34 ` [PATCH v3 5/5] hw/loongarch/virt: Enable cpu hotplug feature on virt machine Bibo Mao
2024-11-05 13:58   ` Igor Mammedov
2024-11-06  2:03     ` maobibo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).