[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/4] accel/kvm: Introduce kvm_create_and_park_vcpu() helper
From: |
Harsh Prateek Bora |
Subject: |
[PATCH v2 2/4] accel/kvm: Introduce kvm_create_and_park_vcpu() helper |
Date: |
Thu, 16 May 2024 11:02:09 +0530 |
There are distinct helpers for creating and parking a KVM vCPU.
However, there can be cases where a platform needs to create and
immediately park the vCPU during early stages of vcpu init which
can later be reused when vcpu thread gets initialized. This would
help detect failures with kvm_create_vcpu at an early stage.
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.mehta@huawei.com/
Suggested-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
include/sysemu/kvm.h | 8 ++++++++
accel/kvm/kvm-all.c | 12 ++++++++++++
2 files changed, 20 insertions(+)
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index fa3ec74442..221e6bd55b 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -450,6 +450,14 @@ int kvm_create_vcpu(CPUState *cpu);
*/
void kvm_park_vcpu(CPUState *cpu);
+/**
+ * kvm_create_and_park_vcpu - Create and park a KVM vCPU
+ * @cpu: QOM CPUState object for which KVM vCPU has to be created and parked.
+ *
+ * @returns: 0 when success, errno (<0) when failed.
+ */
+int kvm_create_and_park_vcpu(CPUState *cpu);
+
#endif /* COMPILING_PER_TARGET */
void kvm_cpu_synchronize_state(CPUState *cpu);
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 30d42847de..3d7e5eaf0b 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -381,6 +381,18 @@ int kvm_create_vcpu(CPUState *cpu)
return 0;
}
+int kvm_create_and_park_vcpu(CPUState *cpu)
+{
+ int ret = 0;
+
+ ret = kvm_create_vcpu(cpu);
+ if (!ret) {
+ kvm_park_vcpu(cpu);
+ }
+
+ return ret;
+}
+
static int do_kvm_destroy_vcpu(CPUState *cpu)
{
KVMState *s = kvm_state;
--
2.39.3
- [PATCH v2 0/4] target/ppc: vcpu hotplug failure handling fixes, Harsh Prateek Bora, 2024/05/16
- [PATCH v2 2/4] accel/kvm: Introduce kvm_create_and_park_vcpu() helper,
Harsh Prateek Bora <=
- [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Harsh Prateek Bora, 2024/05/16
- RE: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Salil Mehta, 2024/05/16
- Re: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Harsh Prateek Bora, 2024/05/16
- RE: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Salil Mehta, 2024/05/16
- Re: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Harsh Prateek Bora, 2024/05/16
- RE: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Salil Mehta, 2024/05/16
- Message not available
- [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Salil Mehta, 2024/05/16
- Re: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Harsh Prateek Bora, 2024/05/16
- Re: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Nicholas Piggin, 2024/05/16
- RE: [PATCH v2 1/4] accel/kvm: Extract common KVM vCPU {creation, parking} code, Salil Mehta, 2024/05/17