[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/3] accel/kvm: Introduce kvm_create_and_park_vcpu() helpe
From: |
Nicholas Piggin |
Subject: |
Re: [PATCH v3 1/3] accel/kvm: Introduce kvm_create_and_park_vcpu() helper |
Date: |
Thu, 30 May 2024 18:31:40 +1000 |
On Thu May 23, 2024 at 5:26 PM AEST, Harsh Prateek Bora wrote:
> 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/20240522211111.232114-1-salil.mehta@huawei.com/
>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
> Suggested-by: Nicholas Piggin <npiggin@gmail.com>
> Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
> ---
> accel/kvm/kvm-cpus.h | 8 ++++++++
> accel/kvm/kvm-all.c | 12 ++++++++++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/accel/kvm/kvm-cpus.h b/accel/kvm/kvm-cpus.h
> index 2e6bb38b5d..00e534b3b9 100644
> --- a/accel/kvm/kvm-cpus.h
> +++ b/accel/kvm/kvm-cpus.h
> @@ -46,4 +46,12 @@ void kvm_park_vcpu(CPUState *cpu);
> * @returns: KVM fd
> */
> int kvm_unpark_vcpu(KVMState *s, unsigned long vcpu_id);
> +
> +/**
> + * * 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.
> + * */
Something went wrong with re-flowing the comment?
Don't worry about resending for that just now, at least until we work
out the dependency with Salil's series and ready to merge.
Thanks,
Nick
> +int kvm_create_and_park_vcpu(CPUState *cpu);
> #endif /* KVM_CPUS_H */
> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
> index fc30e5d5b8..d70ca62ff5 100644
> --- a/accel/kvm/kvm-all.c
> +++ b/accel/kvm/kvm-all.c
> @@ -398,6 +398,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;