On ppc64, the PowerVM hypervisor runs with limited memory and a VCPU creation during hotplug may fail during kvm_ioctl for KVM_CREATE_VCPU, leading to termination of guest since errp is set to &error_fatal while calling kvm_init_vcpu. This unexpected behaviour can be avoided by pre-creating and parking vcpu on success or return error otherwise. This enables graceful error delivery for any vcpu hotplug failures while the guest can keep running.
This series adds another helper to create and park vcpu (based on below patch by Salil), exports cpu_get_free_index to be reused later and adds ppc arch specfic handling for vcpu hotplug failure. Based on api refactoring to create/park vcpus introduced in 1/8 of patch series: https://lore.kernel.org/qemu-devel/20240312020000.12992-2-salil.me...@huawei.com/ PS: I have just included patch 1 of above series after fixing a rebase failure along with this series for better review purpose only. Changelog: v2: Addressed review comments from Nick v1: Initial patch Harsh Prateek Bora (3): accel/kvm: Introduce kvm_create_and_park_vcpu() helper cpu-common.c: export cpu_get_free_index to be reused later target/ppc: handle vcpu hotplug failure gracefully Salil Mehta (1): accel/kvm: Extract common KVM vCPU {creation, parking} code include/exec/cpu-common.h | 2 ++ include/sysemu/kvm.h | 23 ++++++++++++ accel/kvm/kvm-all.c | 76 +++++++++++++++++++++++++++++++-------- cpu-common.c | 7 ++-- target/ppc/kvm.c | 24 +++++++++++++ accel/kvm/trace-events | 5 ++- 6 files changed, 118 insertions(+), 19 deletions(-) -- 2.39.3