Re: [PATCH ] kvm: x86: Reduce unnecessary function call

From: Sean Christopherson
Date: Fri Oct 07 2022 - 13:04:40 EST


On Fri, Oct 07, 2022, Hao Peng wrote:
> From: Peng Hao <flyingpeng@xxxxxxxxxxx>
>
> kvm->lock is held very close to mutex_is_locked(kvm->lock).
> Do not need to call mutex_is_locked.
>
> Signed-off-by: Peng Hao <flyingpeng@xxxxxxxxxxx>
> ---
> arch/x86/kvm/pmu.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
> index 02f9e4f245bd..8a7dbe2c469a 100644
> --- a/arch/x86/kvm/pmu.c
> +++ b/arch/x86/kvm/pmu.c
> @@ -601,8 +601,7 @@ int kvm_vm_ioctl_set_pmu_event_filter(struct kvm
> *kvm, void __user *argp)
> sort(&filter->events, filter->nevents, sizeof(__u64), cmp_u64, NULL);
>
> mutex_lock(&kvm->lock);
> - filter = rcu_replace_pointer(kvm->arch.pmu_event_filter, filter,
> - mutex_is_locked(&kvm->lock));
> + filter = rcu_replace_pointer(kvm->arch.pmu_event_filter, filter, 1);

I'd prefer to keep the mutex_is_locked() call, even though it's quite silly, as
it self-documents what is being used to protect writes to pmu_event_filter.
The third paramter is evaluated iff CONFIG_PROVE_RCU=y, which is the complete
oppositive of performance sensitive, so in practice there's no real downside to
the somewhat superfluous call.

> mutex_unlock(&kvm->lock);
>
> synchronize_srcu_expedited(&kvm->srcu);
> --
> 2.27.0