All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V13 0/8] Add architecture agnostic code to support vCPU Hotplug
@ 2024-06-07 11:56 ` Salil Mehta via
  0 siblings, 0 replies; 53+ messages in thread
From: Salil Mehta @ 2024-06-07 11:56 UTC (permalink / raw)
  To: qemu-devel, qemu-arm
  Cc: salil.mehta, maz, jean-philippe, jonathan.cameron, lpieralisi,
	peter.maydell, richard.henderson, imammedo, andrew.jones, david,
	philmd, eric.auger, oliver.upton, pbonzini, mst, will, gshan,
	rafael, alex.bennee, linux, darren, ilkka, vishnu, karl.heubaum,
	miguel.luis, salil.mehta, zhukeqian1, wangxiongfeng2, wangyanan55,
	jiakernel2, maobibo, lixianglai, npiggin, harshpb, linuxarm

Virtual CPU hotplug support is being added across various architectures[1][3].
This series adds various code bits common across all architectures:

1. vCPU creation and Parking code refactor [Patch 1]
2. Update ACPI GED framework to support vCPU Hotplug [Patch 2,3]
3. ACPI CPUs AML code change [Patch 4,5]
4. Helper functions to support unrealization of CPU objects [Patch 6,7]
5. Docs [Patch 8]


Repository:

[*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v3.arch.agnostic.v13

NOTE: This series is meant to work in conjunction with Architecture specific patch-set.
For ARM, a combined patch-set (arch agnostic + specific) was earlier pushed as RFC V2[1].
A ARM architecture specific patch-set (subset of RFC V2) is being finalized and shall
be floated soon as RFC-V3. Please find a version of it compatible with this patch-set at
the below location. (TCG support is broken in below and is being fixed)

[*] https://github.com/salil-mehta/qemu/tree/virt-cpuhp-armv8/rfc-v3-rc2


Revision History:

Patch-set  V12 -> V13
1. Added Reviewed-by Tag of Harsh Prateek Bora's (IBM) [PATCH V12 1/8]
2. Moved the kvm_{create,park,unpark}_vcpu prototypes from accel/kvm/kvm-cpus.h
   to include/sysemu/kvm.h. These can later be exported through AccelOps.
Link: https://lore.kernel.org/qemu-devel/62f55169-1796-4d8e-a35d-7f003a172750@linux.ibm.com/

Patch-set  V11 -> V12
1. Addressed Harsh Prateek Bora's (IBM) comment
   - Changed @cpu to @vcpu_id in the kvm_unpark_vcpu protoype header/
2. Added Zhao Liu's (Intel) Tested-by for whole series
   - Qtest does not breaks on Intel platforms now.
3. Added Zhao Liu's (Intel) Reviewed-by for [PATCH V11 {1/8 - 3/8}]
Link: https://lore.kernel.org/qemu-devel/ZlRSPuJGBgyEUW6w@intel.com/
Link: https://lore.kernel.org/qemu-devel/a5f3d78e-cfed-441f-9c56-e3e78fa5edee@linux.ibm.com/

Patch-set  V10 -> V11
1. Addressed Nicholas Piggin's (IBM) comment
   - moved the traces in kvm_unpark_vcpu and kvm_create_vcpu at the end
   - Added the Reviewed-by Tag for [PATCH V10 1/8]
2.  Addressed Alex Bennée's (Linaro) comments
   - Added a note explaining dependency of the [PATCH V10 7/8] on Arch specific patch-set
Link: https://lore.kernel.org/qemu-devel/D1FS5GOOFWWK.2PNRIVL0V6DBL@gmail.com/ 
Link: https://lore.kernel.org/qemu-devel/87frubi402.fsf@draig.linaro.org/

Patch-set  V9 -> V10
1. Addressed Nicholas Piggin's (IBM) & Philippe Mathieu-Daudé (Linaro) comments
   - carved out kvm_unpark_vcpu and added its trace
   - Widened the scope of the kvm_unpark_vcpu so that it can be used by generic framework
     being thought out
Link: https://lore.kernel.org/qemu-devel/20240519210620.228342-1-salil.mehta@huawei.com/
Link: https://lore.kernel.org/qemu-devel/e94b0e14-efee-4050-9c9f-08382a36b63a@linaro.org/

Patch-set  V8 -> V9
1. Addressed Vishnu Pajjuri's (Ampere) comments
   - Added kvm_fd to trace in kvm_create_vcpu
   - Some clean ups: arch vcpu-id and sbd variable
   - Added the missed initialization of cpu->gdb_num_regs
2. Addressed the commnet from Zhao Liu (Intel)
   - Make initialization of CPU Hotplug state conditional (possible_cpu_arch_ids!=NULL)
Link: https://lore.kernel.org/qemu-devel/20240312020000.12992-1-salil.mehta@huawei.com/

Patch-set V7 -> V8
1. Rebased and Fixed the conflicts

Patch-set  V6 -> V7
1. Addressed Alex Bennée's comments
   - Updated the docs
2. Addressed Igor Mammedov's comments
   - Merged patches [Patch V6 3/9] & [Patch V6 7/9] with [Patch V6 4/9]
   - Updated commit-log of [Patch V6 1/9] and [Patch V6 5/9]     
3. Added Shaoqin Huang's Reviewed-by tags for whole series.
Link: https://lore.kernel.org/qemu-devel/20231013105129.25648-1-salil.mehta@huawei.com/

Patch-set  V5 -> V6
1. Addressed Gavin Shan's comments
   - Fixed the assert() ranges of address spaces
   - Rebased the patch-set to latest changes in the qemu.git
   - Added Reviewed-by tags for patches {8,9}
2. Addressed Jonathan Cameron's comments
   - Updated commit-log for [Patch V5 1/9] with mention of trace events
   - Added Reviewed-by tags for patches {1,5}
3. Added Tested-by tags from Xianglai Li
4. Fixed checkpatch.pl error "Qemu -> QEMU" in [Patch V5 1/9] 
Link: https://lore.kernel.org/qemu-devel/20231011194355.15628-1-salil.mehta@huawei.com/

Patch-set  V4 -> V5
1. Addressed Gavin Shan's comments
   - Fixed the trace events print string for kvm_{create,get,park,destroy}_vcpu
   - Added Reviewed-by tag for patch {1}
2. Added Shaoqin Huang's Reviewed-by tags for Patches {2,3}
3. Added Tested-by Tag from Vishnu Pajjuri to the patch-set
4. Dropped the ARM specific [Patch V4 10/10]
Link: https://lore.kernel.org/qemu-devel/20231009203601.17584-1-salil.mehta@huawei.com/

Patch-set  V3 -> V4
1. Addressed David Hilderbrand's comments
   - Fixed the wrong doc comment of kvm_park_vcpu API prototype
   - Added Reviewed-by tags for patches {2,4}
Link: https://lore.kernel.org/qemu-devel/20231009112812.10612-1-salil.mehta@huawei.com/

Patch-set  V2 -> V3
1. Addressed Jonathan Cameron's comments
   - Fixed 'vcpu-id' type wrongly changed from 'unsigned long' to 'integer'
   - Removed unnecessary use of variable 'vcpu_id' in kvm_park_vcpu
   - Updated [Patch V2 3/10] commit-log with details of ACPI_CPU_SCAN_METHOD macro
   - Updated [Patch V2 5/10] commit-log with details of conditional event handler method
   - Added Reviewed-by tags for patches {2,3,4,6,7}
2. Addressed Gavin Shan's comments
   - Remove unnecessary use of variable 'vcpu_id' in kvm_par_vcpu
   - Fixed return value in kvm_get_vcpu from -1 to -ENOENT
   - Reset the value of 'gdb_num_g_regs' in gdb_unregister_coprocessor_all
   - Fixed the kvm_{create,park}_vcpu prototypes docs
   - Added Reviewed-by tags for patches {2,3,4,5,6,7,9,10}
3. Addressed one earlier missed comment by Alex Bennée in RFC V1
   - Added traces instead of DPRINTF in the newly added and some existing functions
Link: https://lore.kernel.org/qemu-devel/20230930001933.2660-1-salil.mehta@huawei.com/

Patch-set V1 -> V2
1. Addressed Alex Bennée's comments
   - Refactored the kvm_create_vcpu logic to get rid of goto
   - Added the docs for kvm_{create,park}_vcpu prototypes
   - Splitted the gdbstub and AddressSpace destruction change into separate patches
   - Added Reviewed-by tags for patches {2,10}
Link: https://lore.kernel.org/qemu-devel/20230929124304.13672-1-salil.mehta@huawei.com/

References:

[1] https://lore.kernel.org/qemu-devel/20230926100436.28284-1-salil.mehta@huawei.com/
[2] https://lore.kernel.org/all/20230913163823.7880-1-james.morse@arm.com/
[3] https://lore.kernel.org/qemu-devel/cover.1695697701.git.lixianglai@loongson.cn/



Salil Mehta (8):
  accel/kvm: Extract common KVM vCPU {creation,parking} code
  hw/acpi: Move CPU ctrl-dev MMIO region len macro to common header file
  hw/acpi: Update ACPI GED framework to support vCPU Hotplug
  hw/acpi: Update GED _EVT method AML with CPU scan
  hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
  physmem: Add helper function to destroy CPU AddressSpace
  gdbstub: Add helper function to unregister GDB register space
  docs/specs/acpi_hw_reduced_hotplug: Add the CPU Hotplug Event Bit

 accel/kvm/kvm-all.c                    | 95 +++++++++++++++++---------
 accel/kvm/kvm-cpus.h                   |  1 -
 accel/kvm/trace-events                 |  5 +-
 docs/specs/acpi_hw_reduced_hotplug.rst |  3 +-
 gdbstub/gdbstub.c                      | 13 ++++
 hw/acpi/acpi-cpu-hotplug-stub.c        |  6 ++
 hw/acpi/cpu.c                          | 33 ++++++---
 hw/acpi/generic_event_device.c         | 21 ++++++
 hw/core/cpu-common.c                   |  1 -
 hw/i386/acpi-build.c                   |  3 +-
 include/exec/cpu-common.h              |  8 +++
 include/exec/gdbstub.h                 |  6 ++
 include/hw/acpi/cpu.h                  |  5 +-
 include/hw/acpi/cpu_hotplug.h          |  4 ++
 include/hw/acpi/generic_event_device.h |  4 ++
 include/hw/core/cpu.h                  |  1 +
 include/sysemu/kvm.h                   | 25 +++++++
 system/physmem.c                       | 29 ++++++++
 18 files changed, 214 insertions(+), 49 deletions(-)

-- 
2.34.1

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

end of thread, other threads:[~2024-07-11 10:49 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-07 11:56 [PATCH V13 0/8] Add architecture agnostic code to support vCPU Hotplug Salil Mehta
2024-06-07 11:56 ` Salil Mehta via
2024-06-07 11:56 ` [PATCH V13 1/8] accel/kvm: Extract common KVM vCPU {creation,parking} code Salil Mehta
2024-06-07 11:56   ` [PATCH V13 1/8] accel/kvm: Extract common KVM vCPU {creation, parking} code Salil Mehta via
     [not found]   ` <a9fe2b0f-baf2-4684-9e98-86f4df4e4ff5@linux.ibm.com>
     [not found]     ` <66be5cd4b44f4ccebb00fd90ad145e48@huawei.com>
     [not found]       ` <40196533-103c-42d8-9229-d394154affe6@linux.ibm.com>
2024-06-25  5:08         ` [PATCH V13 1/8] accel/kvm: Extract common KVM vCPU {creation,parking} code Harsh Prateek Bora
2024-07-04  7:35           ` Nicholas Piggin
2024-07-06 13:11   ` Igor Mammedov
2024-07-06 15:43     ` Salil Mehta
2024-07-08 13:32       ` Igor Mammedov
2024-07-08 23:30         ` Salil Mehta
2024-07-09  8:06           ` Igor Mammedov
2024-07-09 10:18             ` Salil Mehta
2024-07-09 10:18               ` Salil Mehta via
2024-06-07 11:56 ` [PATCH V13 2/8] hw/acpi: Move CPU ctrl-dev MMIO region len macro to common header file Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-06 13:20   ` Igor Mammedov
2024-07-08  5:00     ` Salil Mehta
2024-06-07 11:56 ` [PATCH V13 3/8] hw/acpi: Update ACPI GED framework to support vCPU Hotplug Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-04  3:03   ` Nicholas Piggin
2024-07-04 11:43     ` Salil Mehta
2024-07-04 11:43       ` Salil Mehta via
2024-07-06 13:46   ` Igor Mammedov
2024-07-08  5:12     ` Salil Mehta
2024-07-08 13:40       ` Igor Mammedov
2024-06-07 11:56 ` [PATCH V13 4/8] hw/acpi: Update GED _EVT method AML with CPU scan Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-06 14:28   ` Igor Mammedov
2024-07-08  5:21     ` Salil Mehta
2024-07-08 13:46       ` Igor Mammedov
2024-07-11  3:29     ` Salil Mehta
2024-07-11  8:34       ` Igor Mammedov
2024-07-11 10:49         ` Salil Mehta
2024-06-07 11:56 ` [PATCH V13 5/8] hw/acpi: Update CPUs AML with cpu-(ctrl)dev change Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-06 14:35   ` Igor Mammedov
2024-07-08  5:26     ` Salil Mehta
2024-07-08 13:49       ` Igor Mammedov
2024-06-07 11:56 ` [PATCH V13 6/8] physmem: Add helper function to destroy CPU AddressSpace Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-06 14:37   ` Igor Mammedov
2024-07-08  5:26     ` Salil Mehta
2024-06-07 11:56 ` [PATCH V13 7/8] gdbstub: Add helper function to unregister GDB register space Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-06 14:41   ` Igor Mammedov
2024-07-08  5:30     ` Salil Mehta
2024-06-07 11:56 ` [PATCH V13 8/8] docs/specs/acpi_hw_reduced_hotplug: Add the CPU Hotplug Event Bit Salil Mehta
2024-06-07 11:56   ` Salil Mehta via
2024-07-06 14:45   ` Igor Mammedov
2024-07-08  5:32     ` Salil Mehta
2024-07-08 13:55       ` Igor Mammedov
2024-07-08 23:52         ` Salil Mehta
2024-07-03 22:58 ` [PATCH V13 0/8] Add architecture agnostic code to support vCPU Hotplug Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.