mbox series

[V6,0/9] Add architecture agnostic code to support vCPU Hotplug

Message ID 20231013105129.25648-1-salil.mehta@huawei.com (mailing list archive)
Headers show
Series Add architecture agnostic code to support vCPU Hotplug | expand

Message

Salil Mehta Oct. 13, 2023, 10:51 a.m. UTC
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 4,6,7]
3. ACPI CPUs AML code change [Patch 5]
4. Helper functions to support unrealization of CPU objects [Patch 8,9]
5. Misc [Patch 2,3]


Repository:

[*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v2.common.v6


Revision History:

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 (9):
  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: Add ACPI CPU hotplug init stub
  hw/acpi: Init GED framework with CPU hotplug events
  hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
  hw/acpi: Update GED _EVT method AML with CPU scan
  hw/acpi: Update ACPI GED framework to support vCPU Hotplug
  physmem: Add helper function to destroy CPU AddressSpace
  gdbstub: Add helper function to unregister GDB register space

 accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
 accel/kvm/trace-events                 |  4 ++
 gdbstub/gdbstub.c                      | 12 +++++
 hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
 hw/acpi/cpu.c                          | 27 +++++++----
 hw/acpi/generic_event_device.c         | 22 +++++++++
 hw/i386/acpi-build.c                   |  3 +-
 include/exec/cpu-common.h              |  8 ++++
 include/exec/gdbstub.h                 |  5 ++
 include/hw/acpi/cpu.h                  |  5 +-
 include/hw/acpi/cpu_hotplug.h          |  4 ++
 include/hw/acpi/generic_event_device.h |  5 ++
 include/hw/core/cpu.h                  |  1 +
 include/sysemu/kvm.h                   | 16 +++++++
 system/physmem.c                       | 29 ++++++++++++
 15 files changed, 184 insertions(+), 27 deletions(-)

Comments

Miguel Luis Oct. 13, 2023, 4:33 p.m. UTC | #1
Hi Salil,

> On 13 Oct 2023, at 10:51, Salil Mehta <salil.mehta@huawei.com> wrote:
> 
> 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 4,6,7]
> 3. ACPI CPUs AML code change [Patch 5]
> 4. Helper functions to support unrealization of CPU objects [Patch 8,9]
> 5. Misc [Patch 2,3]
> 
> 
> Repository:
> 
> [*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v2.common.v6
> 
> 
> Revision History:
> 
> 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 (9):
>  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: Add ACPI CPU hotplug init stub
>  hw/acpi: Init GED framework with CPU hotplug events
>  hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
>  hw/acpi: Update GED _EVT method AML with CPU scan
>  hw/acpi: Update ACPI GED framework to support vCPU Hotplug
>  physmem: Add helper function to destroy CPU AddressSpace
>  gdbstub: Add helper function to unregister GDB register space
> 
> accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
> accel/kvm/trace-events                 |  4 ++
> gdbstub/gdbstub.c                      | 12 +++++
> hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
> hw/acpi/cpu.c                          | 27 +++++++----
> hw/acpi/generic_event_device.c         | 22 +++++++++
> hw/i386/acpi-build.c                   |  3 +-
> include/exec/cpu-common.h              |  8 ++++
> include/exec/gdbstub.h                 |  5 ++
> include/hw/acpi/cpu.h                  |  5 +-
> include/hw/acpi/cpu_hotplug.h          |  4 ++
> include/hw/acpi/generic_event_device.h |  5 ++
> include/hw/core/cpu.h                  |  1 +
> include/sysemu/kvm.h                   | 16 +++++++
> system/physmem.c                       | 29 ++++++++++++
> 15 files changed, 184 insertions(+), 27 deletions(-)
> 

I tested it for Arm64, make check, boot/reboot, live migration and found no issues,
so for this, please feel free to add:

Tested-by: Miguel Luis <miguel.luis@oracle.com>

Thank you,
Miguel

> -- 
> 2.34.1
>
Salil Mehta Oct. 16, 2023, 9:52 a.m. UTC | #2
Hi Miguel,

> From: Miguel Luis <miguel.luis@oracle.com>
> Sent: Friday, October 13, 2023 5:34 PM
> To: Salil Mehta <salil.mehta@huawei.com>
> Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; Marc Zyngier
> <maz@kernel.org>; jean-philippe@linaro.org; Jonathan Cameron
> <jonathan.cameron@huawei.com>; lpieralisi@kernel.org; Peter Maydell
> <peter.maydell@linaro.org>; Richard Henderson
> <richard.henderson@linaro.org>; imammedo@redhat.com;
> andrew.jones@linux.dev; david@redhat.com; philmd@linaro.org;
> eric.auger@redhat.com; oliver.upton@linux.dev; pbonzini@redhat.com;
> mst@redhat.com; will@kernel.org; gshan@redhat.com; rafael@kernel.org;
> alex.bennee@linaro.org; linux@armlinux.org.uk;
> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
> vishnu@os.amperecomputing.com; Karl Heubaum <karl.heubaum@oracle.com>;
> salil.mehta@opnsrc.net; zhukeqian <zhukeqian1@huawei.com>; wangxiongfeng
> (C) <wangxiongfeng2@huawei.com>; wangyanan (Y) <wangyanan55@huawei.com>;
> jiakernel2@gmail.com; maobibo@loongson.cn; lixianglai@loongson.cn; Linuxarm
> <linuxarm@huawei.com>
> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
> Hotplug
> 
> Hi Salil,
> 
> > On 13 Oct 2023, at 10:51, Salil Mehta <salil.mehta@huawei.com> wrote:
> >
> > Virtual CPU hotplug support is being added across various
> architectures[1][3].
> > This series adds various code bits common across all architectures:


[...]


> I tested it for Arm64, make check, boot/reboot, live migration and found no
> issues,
> so for this, please feel free to add:
> 
> Tested-by: Miguel Luis <miguel.luis@oracle.com>

Great. Many thanks for the confirmation. 

I guess you are repeating the same for x86 as well?

Salil.
Miguel Luis Oct. 16, 2023, 10:01 a.m. UTC | #3
Hi Salil,

> On 16 Oct 2023, at 09:52, Salil Mehta <salil.mehta@huawei.com> wrote:
> 
> Hi Miguel,
> 
>> From: Miguel Luis <miguel.luis@oracle.com>
>> Sent: Friday, October 13, 2023 5:34 PM
>> To: Salil Mehta <salil.mehta@huawei.com>
>> Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; Marc Zyngier
>> <maz@kernel.org>; jean-philippe@linaro.org; Jonathan Cameron
>> <jonathan.cameron@huawei.com>; lpieralisi@kernel.org; Peter Maydell
>> <peter.maydell@linaro.org>; Richard Henderson
>> <richard.henderson@linaro.org>; imammedo@redhat.com;
>> andrew.jones@linux.dev; david@redhat.com; philmd@linaro.org;
>> eric.auger@redhat.com; oliver.upton@linux.dev; pbonzini@redhat.com;
>> mst@redhat.com; will@kernel.org; gshan@redhat.com; rafael@kernel.org;
>> alex.bennee@linaro.org; linux@armlinux.org.uk;
>> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
>> vishnu@os.amperecomputing.com; Karl Heubaum <karl.heubaum@oracle.com>;
>> salil.mehta@opnsrc.net; zhukeqian <zhukeqian1@huawei.com>; wangxiongfeng
>> (C) <wangxiongfeng2@huawei.com>; wangyanan (Y) <wangyanan55@huawei.com>;
>> jiakernel2@gmail.com; maobibo@loongson.cn; lixianglai@loongson.cn; Linuxarm
>> <linuxarm@huawei.com>
>> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
>> Hotplug
>> 
>> Hi Salil,
>> 
>>> On 13 Oct 2023, at 10:51, Salil Mehta <salil.mehta@huawei.com> wrote:
>>> 
>>> Virtual CPU hotplug support is being added across various
>> architectures[1][3].
>>> This series adds various code bits common across all architectures:
> 
> 
> [...]
> 
> 
>> I tested it for Arm64, make check, boot/reboot, live migration and found no
>> issues,
>> so for this, please feel free to add:
>> 
>> Tested-by: Miguel Luis <miguel.luis@oracle.com>
> 
> Great. Many thanks for the confirmation. 
> 
> I guess you are repeating the same for x86 as well?
> 

You are welcome!

Absolutely, I’m repeating those same tests for x86.

Thanks
Miguel

> Salil.
Salil Mehta Oct. 16, 2023, 10:09 a.m. UTC | #4
> From: Miguel Luis <miguel.luis@oracle.com>
> Sent: Monday, October 16, 2023 11:02 AM
> To: Salil Mehta <salil.mehta@huawei.com>
> 
> Hi Salil,
> 
> > On 16 Oct 2023, at 09:52, Salil Mehta <salil.mehta@huawei.com> wrote:
> >
> > Hi Miguel,
> >
> >> From: Miguel Luis <miguel.luis@oracle.com>
> >> Sent: Friday, October 13, 2023 5:34 PM
> >> To: Salil Mehta <salil.mehta@huawei.com>

[...]

> >> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
> >> Hotplug
> >>
> >> Hi Salil,
> >>
> >>> On 13 Oct 2023, at 10:51, Salil Mehta <salil.mehta@huawei.com> wrote:
> >>>
> >>> Virtual CPU hotplug support is being added across various
> >> architectures[1][3].
> >>> This series adds various code bits common across all architectures:
> >
> > [...]
> >
> >> I tested it for Arm64, make check, boot/reboot, live migration and found no
> >> issues,
> >> so for this, please feel free to add:
> >>
> >> Tested-by: Miguel Luis <miguel.luis@oracle.com>
> >
> > Great. Many thanks for the confirmation.
> >
> > I guess you are repeating the same for x86 as well?
> >
> 
> You are welcome!
> 
> Absolutely, I’m repeating those same tests for x86.

Brilliant. Thanks for proactively taking this up.

Salil.
Shaoqin Huang Oct. 19, 2023, 9:04 a.m. UTC | #5
On 10/13/23 18:51, Salil Mehta via wrote:
> 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 4,6,7]
> 3. ACPI CPUs AML code change [Patch 5]
> 4. Helper functions to support unrealization of CPU objects [Patch 8,9]
> 5. Misc [Patch 2,3]
> 
> 
> Repository:
> 
> [*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v2.common.v6
> 
> 
> Revision History:
> 
> 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 (9):
>    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: Add ACPI CPU hotplug init stub
>    hw/acpi: Init GED framework with CPU hotplug events
>    hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
>    hw/acpi: Update GED _EVT method AML with CPU scan
>    hw/acpi: Update ACPI GED framework to support vCPU Hotplug
>    physmem: Add helper function to destroy CPU AddressSpace
>    gdbstub: Add helper function to unregister GDB register space
> 
>   accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
>   accel/kvm/trace-events                 |  4 ++
>   gdbstub/gdbstub.c                      | 12 +++++
>   hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
>   hw/acpi/cpu.c                          | 27 +++++++----
>   hw/acpi/generic_event_device.c         | 22 +++++++++
>   hw/i386/acpi-build.c                   |  3 +-
>   include/exec/cpu-common.h              |  8 ++++
>   include/exec/gdbstub.h                 |  5 ++
>   include/hw/acpi/cpu.h                  |  5 +-
>   include/hw/acpi/cpu_hotplug.h          |  4 ++
>   include/hw/acpi/generic_event_device.h |  5 ++
>   include/hw/core/cpu.h                  |  1 +
>   include/sysemu/kvm.h                   | 16 +++++++
>   system/physmem.c                       | 29 ++++++++++++
>   15 files changed, 184 insertions(+), 27 deletions(-)
> 

Hi salil,

All patches looks good to me. Thanks for you effort to update it so 
actively. No issues being found by simply testing and several daily use.

Reviewed-by: Shaoqin Huang <shahuang@redhat.com>

Thanks,
Shaoqin
Salil Mehta Oct. 19, 2023, 9:34 a.m. UTC | #6
Hi Shaoqin,

> From: Shaoqin Huang <shahuang@redhat.com>
> Sent: Thursday, October 19, 2023 10:05 AM
> To: Salil Mehta <salil.mehta@huawei.com>; qemu-devel@nongnu.org; qemu-
> arm@nongnu.org
> Cc: maz@kernel.org; jean-philippe@linaro.org; Jonathan Cameron
> <jonathan.cameron@huawei.com>; lpieralisi@kernel.org;
> peter.maydell@linaro.org; richard.henderson@linaro.org;
> imammedo@redhat.com; andrew.jones@linux.dev; david@redhat.com;
> philmd@linaro.org; eric.auger@redhat.com; oliver.upton@linux.dev;
> pbonzini@redhat.com; mst@redhat.com; will@kernel.org; gshan@redhat.com;
> rafael@kernel.org; alex.bennee@linaro.org; linux@armlinux.org.uk;
> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
> vishnu@os.amperecomputing.com; karl.heubaum@oracle.com;
> miguel.luis@oracle.com; salil.mehta@opnsrc.net; zhukeqian
> <zhukeqian1@huawei.com>; wangxiongfeng (C) <wangxiongfeng2@huawei.com>;
> wangyanan (Y) <wangyanan55@huawei.com>; jiakernel2@gmail.com;
> maobibo@loongson.cn; lixianglai@loongson.cn; Linuxarm <linuxarm@huawei.com>
> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
> Hotplug
> 
> 
> 
> On 10/13/23 18:51, Salil Mehta via wrote:
> > 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 4,6,7]
> > 3. ACPI CPUs AML code change [Patch 5]
> > 4. Helper functions to support unrealization of CPU objects [Patch 8,9]
> > 5. Misc [Patch 2,3]
> >
> >
> > Repository:
> >
> > [*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-
> v2.common.v6
> >
> >
> > Revision History:
> >
> > 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 (9):
> >    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: Add ACPI CPU hotplug init stub
> >    hw/acpi: Init GED framework with CPU hotplug events
> >    hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
> >    hw/acpi: Update GED _EVT method AML with CPU scan
> >    hw/acpi: Update ACPI GED framework to support vCPU Hotplug
> >    physmem: Add helper function to destroy CPU AddressSpace
> >    gdbstub: Add helper function to unregister GDB register space
> >
> >   accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
> >   accel/kvm/trace-events                 |  4 ++
> >   gdbstub/gdbstub.c                      | 12 +++++
> >   hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
> >   hw/acpi/cpu.c                          | 27 +++++++----
> >   hw/acpi/generic_event_device.c         | 22 +++++++++
> >   hw/i386/acpi-build.c                   |  3 +-
> >   include/exec/cpu-common.h              |  8 ++++
> >   include/exec/gdbstub.h                 |  5 ++
> >   include/hw/acpi/cpu.h                  |  5 +-
> >   include/hw/acpi/cpu_hotplug.h          |  4 ++
> >   include/hw/acpi/generic_event_device.h |  5 ++
> >   include/hw/core/cpu.h                  |  1 +
> >   include/sysemu/kvm.h                   | 16 +++++++
> >   system/physmem.c                       | 29 ++++++++++++
> >   15 files changed, 184 insertions(+), 27 deletions(-)
> >
> 
> Hi salil,
> 
> All patches looks good to me. Thanks for you effort to update it so
> actively. No issues being found by simply testing and several daily use.
> 
> Reviewed-by: Shaoqin Huang <shahuang@redhat.com>

Many thanks! Just wanted to confirm if you have tested this patch over
x86 platform as well?


Cheers
Salil.
Miguel Luis Oct. 19, 2023, 9:50 a.m. UTC | #7
> On 16 Oct 2023, at 10:01, Miguel Luis <miguel.luis@oracle.com> wrote:
> 
> Hi Salil,
> 
>> On 16 Oct 2023, at 09:52, Salil Mehta <salil.mehta@huawei.com> wrote:
>> 
>> Hi Miguel,
>> 
>>> From: Miguel Luis <miguel.luis@oracle.com>
>>> Sent: Friday, October 13, 2023 5:34 PM
>>> To: Salil Mehta <salil.mehta@huawei.com>
>>> Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; Marc Zyngier
>>> <maz@kernel.org>; jean-philippe@linaro.org; Jonathan Cameron
>>> <jonathan.cameron@huawei.com>; lpieralisi@kernel.org; Peter Maydell
>>> <peter.maydell@linaro.org>; Richard Henderson
>>> <richard.henderson@linaro.org>; imammedo@redhat.com;
>>> andrew.jones@linux.dev; david@redhat.com; philmd@linaro.org;
>>> eric.auger@redhat.com; oliver.upton@linux.dev; pbonzini@redhat.com;
>>> mst@redhat.com; will@kernel.org; gshan@redhat.com; rafael@kernel.org;
>>> alex.bennee@linaro.org; linux@armlinux.org.uk;
>>> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
>>> vishnu@os.amperecomputing.com; Karl Heubaum <karl.heubaum@oracle.com>;
>>> salil.mehta@opnsrc.net; zhukeqian <zhukeqian1@huawei.com>; wangxiongfeng
>>> (C) <wangxiongfeng2@huawei.com>; wangyanan (Y) <wangyanan55@huawei.com>;
>>> jiakernel2@gmail.com; maobibo@loongson.cn; lixianglai@loongson.cn; Linuxarm
>>> <linuxarm@huawei.com>
>>> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
>>> Hotplug
>>> 
>>> Hi Salil,
>>> 
>>>> On 13 Oct 2023, at 10:51, Salil Mehta <salil.mehta@huawei.com> wrote:
>>>> 
>>>> Virtual CPU hotplug support is being added across various
>>> architectures[1][3].
>>>> This series adds various code bits common across all architectures:
>> 
>> 
>> [...]
>> 
>> 
>>> I tested it for Arm64, make check, boot/reboot, live migration and found no
>>> issues,
>>> so for this, please feel free to add:
>>> 
>>> Tested-by: Miguel Luis <miguel.luis@oracle.com>
>> 
>> Great. Many thanks for the confirmation. 
>> 
>> I guess you are repeating the same for x86 as well?
>> 
> 
> You are welcome!
> 
> Absolutely, I’m repeating those same tests for x86.
> 

Unfortunately, there's a qtest failing for x86.

The failing test is device-introspect-test in which the assert for mc->possible_cpu_arch_ids fails.

There’s also a suggestion to fix it here: https://lore.kernel.org/qemu-devel/15e70616-6abb-63a4-17d0-820f4a254607@opnsrc.net/T/#m108f102b2fe92b7dd7218f2f942f7b233a9d6af3

Thanks,
Miguel


> Thanks
> Miguel
> 
>> Salil.
Shaoqin Huang Oct. 20, 2023, 3:30 a.m. UTC | #8
On 10/19/23 17:34, Salil Mehta wrote:
> Hi Shaoqin,
> 
>> From: Shaoqin Huang <shahuang@redhat.com>
>> Sent: Thursday, October 19, 2023 10:05 AM
>> To: Salil Mehta <salil.mehta@huawei.com>; qemu-devel@nongnu.org; qemu-
>> arm@nongnu.org
>> Cc: maz@kernel.org; jean-philippe@linaro.org; Jonathan Cameron
>> <jonathan.cameron@huawei.com>; lpieralisi@kernel.org;
>> peter.maydell@linaro.org; richard.henderson@linaro.org;
>> imammedo@redhat.com; andrew.jones@linux.dev; david@redhat.com;
>> philmd@linaro.org; eric.auger@redhat.com; oliver.upton@linux.dev;
>> pbonzini@redhat.com; mst@redhat.com; will@kernel.org; gshan@redhat.com;
>> rafael@kernel.org; alex.bennee@linaro.org; linux@armlinux.org.uk;
>> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
>> vishnu@os.amperecomputing.com; karl.heubaum@oracle.com;
>> miguel.luis@oracle.com; salil.mehta@opnsrc.net; zhukeqian
>> <zhukeqian1@huawei.com>; wangxiongfeng (C) <wangxiongfeng2@huawei.com>;
>> wangyanan (Y) <wangyanan55@huawei.com>; jiakernel2@gmail.com;
>> maobibo@loongson.cn; lixianglai@loongson.cn; Linuxarm <linuxarm@huawei.com>
>> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
>> Hotplug
>>
>>
>>
>> On 10/13/23 18:51, Salil Mehta via wrote:
>>> 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 4,6,7]
>>> 3. ACPI CPUs AML code change [Patch 5]
>>> 4. Helper functions to support unrealization of CPU objects [Patch 8,9]
>>> 5. Misc [Patch 2,3]
>>>
>>>
>>> Repository:
>>>
>>> [*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-
>> v2.common.v6
>>>
>>>
>>> Revision History:
>>>
>>> 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 (9):
>>>     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: Add ACPI CPU hotplug init stub
>>>     hw/acpi: Init GED framework with CPU hotplug events
>>>     hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
>>>     hw/acpi: Update GED _EVT method AML with CPU scan
>>>     hw/acpi: Update ACPI GED framework to support vCPU Hotplug
>>>     physmem: Add helper function to destroy CPU AddressSpace
>>>     gdbstub: Add helper function to unregister GDB register space
>>>
>>>    accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
>>>    accel/kvm/trace-events                 |  4 ++
>>>    gdbstub/gdbstub.c                      | 12 +++++
>>>    hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
>>>    hw/acpi/cpu.c                          | 27 +++++++----
>>>    hw/acpi/generic_event_device.c         | 22 +++++++++
>>>    hw/i386/acpi-build.c                   |  3 +-
>>>    include/exec/cpu-common.h              |  8 ++++
>>>    include/exec/gdbstub.h                 |  5 ++
>>>    include/hw/acpi/cpu.h                  |  5 +-
>>>    include/hw/acpi/cpu_hotplug.h          |  4 ++
>>>    include/hw/acpi/generic_event_device.h |  5 ++
>>>    include/hw/core/cpu.h                  |  1 +
>>>    include/sysemu/kvm.h                   | 16 +++++++
>>>    system/physmem.c                       | 29 ++++++++++++
>>>    15 files changed, 184 insertions(+), 27 deletions(-)
>>>
>>
>> Hi salil,
>>
>> All patches looks good to me. Thanks for you effort to update it so
>> actively. No issues being found by simply testing and several daily use.
>>
>> Reviewed-by: Shaoqin Huang <shahuang@redhat.com>
> 
> Many thanks! Just wanted to confirm if you have tested this patch over
> x86 platform as well?

Hi Salil,

I used it on Ampere One Machine, so didn't test it on x86 platform.

Thanks,
Shaoqin

> 
> 
> Cheers
> Salil.
Igor Mammedov Oct. 26, 2023, 12:41 p.m. UTC | #9
On Fri, 13 Oct 2023 11:51:20 +0100
Salil Mehta <salil.mehta@huawei.com> wrote:

> 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 4,6,7]
> 3. ACPI CPUs AML code change [Patch 5]
> 4. Helper functions to support unrealization of CPU objects [Patch 8,9]
> 5. Misc [Patch 2,3]

Thanks Salil!

Overall series looks good to me (modulo some points, I'd like to be addressed)
I'll do some testing and follow with per patch review tomorrow. 

> Repository:
> 
> [*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v2.common.v6
> 
> 
> Revision History:
> 
> 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 (9):
>   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: Add ACPI CPU hotplug init stub
>   hw/acpi: Init GED framework with CPU hotplug events
>   hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
>   hw/acpi: Update GED _EVT method AML with CPU scan
>   hw/acpi: Update ACPI GED framework to support vCPU Hotplug
>   physmem: Add helper function to destroy CPU AddressSpace
>   gdbstub: Add helper function to unregister GDB register space
> 
>  accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
>  accel/kvm/trace-events                 |  4 ++
>  gdbstub/gdbstub.c                      | 12 +++++
>  hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
>  hw/acpi/cpu.c                          | 27 +++++++----
>  hw/acpi/generic_event_device.c         | 22 +++++++++
>  hw/i386/acpi-build.c                   |  3 +-
>  include/exec/cpu-common.h              |  8 ++++
>  include/exec/gdbstub.h                 |  5 ++
>  include/hw/acpi/cpu.h                  |  5 +-
>  include/hw/acpi/cpu_hotplug.h          |  4 ++
>  include/hw/acpi/generic_event_device.h |  5 ++
>  include/hw/core/cpu.h                  |  1 +
>  include/sysemu/kvm.h                   | 16 +++++++
>  system/physmem.c                       | 29 ++++++++++++
>  15 files changed, 184 insertions(+), 27 deletions(-)
>
Salil Mehta Oct. 27, 2023, 10:23 a.m. UTC | #10
Hi Igor,

> From: Igor Mammedov <imammedo@redhat.com>
> Sent: Thursday, October 26, 2023 1:41 PM
> To: Salil Mehta <salil.mehta@huawei.com>
> Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; maz@kernel.org; jean-
> philippe@linaro.org; Jonathan Cameron <jonathan.cameron@huawei.com>;
> lpieralisi@kernel.org; peter.maydell@linaro.org;
> richard.henderson@linaro.org; andrew.jones@linux.dev; david@redhat.com;
> philmd@linaro.org; eric.auger@redhat.com; oliver.upton@linux.dev;
> pbonzini@redhat.com; mst@redhat.com; will@kernel.org; gshan@redhat.com;
> rafael@kernel.org; alex.bennee@linaro.org; linux@armlinux.org.uk;
> darren@os.amperecomputing.com; ilkka@os.amperecomputing.com;
> vishnu@os.amperecomputing.com; karl.heubaum@oracle.com;
> miguel.luis@oracle.com; salil.mehta@opnsrc.net; zhukeqian
> <zhukeqian1@huawei.com>; wangxiongfeng (C) <wangxiongfeng2@huawei.com>;
> wangyanan (Y) <wangyanan55@huawei.com>; jiakernel2@gmail.com;
> maobibo@loongson.cn; lixianglai@loongson.cn; Linuxarm <linuxarm@huawei.com>
> Subject: Re: [PATCH V6 0/9] Add architecture agnostic code to support vCPU
> Hotplug
> 
> On Fri, 13 Oct 2023 11:51:20 +0100
> Salil Mehta <salil.mehta@huawei.com> wrote:
> 
> > 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 4,6,7]
> > 3. ACPI CPUs AML code change [Patch 5]
> > 4. Helper functions to support unrealization of CPU objects [Patch 8,9]
> > 5. Misc [Patch 2,3]
> 
> Thanks Salil!
> 
> Overall series looks good to me (modulo some points, I'd like to be addressed)
> I'll do some testing and follow with per patch review tomorrow.

Many thanks! that would be helpful.

Meanwhile, I am preparing the V7 version of this to address the x86/microvm
qtest break reported by Miguel.

https://lore.kernel.org/qemu-devel/51B6C120-3707-4730-AE14-0F5CD32DC984@oracle.com/


Solution suggested here:
https://lore.kernel.org/qemu-devel/15e70616-6abb-63a4-17d0-820f4a254607@opnsrc.net/T/#m108f102b2fe92b7dd7218f2f942f7b233a9d6af3


cheers
Salil.


> > Repository:
> >
> > [*] https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v2.common.v6
> >
> >
> > Revision History:
> >
> > 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 (9):
> >   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: Add ACPI CPU hotplug init stub
> >   hw/acpi: Init GED framework with CPU hotplug events
> >   hw/acpi: Update CPUs AML with cpu-(ctrl)dev change
> >   hw/acpi: Update GED _EVT method AML with CPU scan
> >   hw/acpi: Update ACPI GED framework to support vCPU Hotplug
> >   physmem: Add helper function to destroy CPU AddressSpace
> >   gdbstub: Add helper function to unregister GDB register space
> >
> >  accel/kvm/kvm-all.c                    | 64 ++++++++++++++++++++------
> >  accel/kvm/trace-events                 |  4 ++
> >  gdbstub/gdbstub.c                      | 12 +++++
> >  hw/acpi/acpi-cpu-hotplug-stub.c        |  6 +++
> >  hw/acpi/cpu.c                          | 27 +++++++----
> >  hw/acpi/generic_event_device.c         | 22 +++++++++
> >  hw/i386/acpi-build.c                   |  3 +-
> >  include/exec/cpu-common.h              |  8 ++++
> >  include/exec/gdbstub.h                 |  5 ++
> >  include/hw/acpi/cpu.h                  |  5 +-
> >  include/hw/acpi/cpu_hotplug.h          |  4 ++
> >  include/hw/acpi/generic_event_device.h |  5 ++
> >  include/hw/core/cpu.h                  |  1 +
> >  include/sysemu/kvm.h                   | 16 +++++++
> >  system/physmem.c                       | 29 ++++++++++++
> >  15 files changed, 184 insertions(+), 27 deletions(-)
> >