All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Cun Li <cun.jia.li@gmail.com>
Cc: seanjc@google.com, wanpengli@tencent.com, jmattson@google.com,
	joro@8bytes.org, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de, x86@kernel.org, hpa@zytor.com, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org, Cun Li <cun.jia.li@gmail.com>,
	pbonzini@redhat.com
Subject: Re: [PATCH] KVM: update depracated jump label API
Date: Mon, 11 Jan 2021 18:15:43 +0100	[thread overview]
Message-ID: <87h7nn8ke8.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <20210111152435.50275-1-cun.jia.li@gmail.com>

Cun Li <cun.jia.li@gmail.com> writes:

> The use of 'struct static_key' and 'static_key_false' is
> deprecated. Use the new API.
>
> Signed-off-by: Cun Li <cun.jia.li@gmail.com>
> ---
>  arch/x86/kvm/lapic.h         | 6 +++---
>  arch/x86/kvm/mmu/mmu_audit.c | 4 ++--
>  arch/x86/kvm/x86.c           | 2 +-
>  3 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
> index 4fb86e3a9dd3..b7aa76e2678e 100644
> --- a/arch/x86/kvm/lapic.h
> +++ b/arch/x86/kvm/lapic.h
> @@ -176,7 +176,7 @@ extern struct static_key kvm_no_apic_vcpu;
>  
>  static inline bool lapic_in_kernel(struct kvm_vcpu *vcpu)
>  {
> -	if (static_key_false(&kvm_no_apic_vcpu))
> +	if (static_branch_unlikely(&kvm_no_apic_vcpu))
>  		return vcpu->arch.apic;
>  	return true;
>  }
> @@ -185,7 +185,7 @@ extern struct static_key_deferred apic_hw_disabled;
>  
>  static inline int kvm_apic_hw_enabled(struct kvm_lapic *apic)
>  {
> -	if (static_key_false(&apic_hw_disabled.key))
> +	if (static_branch_unlikely(&apic_hw_disabled.key))
>  		return apic->vcpu->arch.apic_base & MSR_IA32_APICBASE_ENABLE;
>  	return MSR_IA32_APICBASE_ENABLE;
>  }
> @@ -194,7 +194,7 @@ extern struct static_key_deferred apic_sw_disabled;
>  
>  static inline bool kvm_apic_sw_enabled(struct kvm_lapic *apic)
>  {
> -	if (static_key_false(&apic_sw_disabled.key))
> +	if (static_branch_unlikely(&apic_sw_disabled.key))
>  		return apic->sw_enabled;
>  	return true;
>  }
> diff --git a/arch/x86/kvm/mmu/mmu_audit.c b/arch/x86/kvm/mmu/mmu_audit.c
> index c8d51a37e2ce..8a4b3510151a 100644
> --- a/arch/x86/kvm/mmu/mmu_audit.c
> +++ b/arch/x86/kvm/mmu/mmu_audit.c
> @@ -234,7 +234,7 @@ static void audit_vcpu_spte(struct kvm_vcpu *vcpu)
>  }
>  
>  static bool mmu_audit;
> -static struct static_key mmu_audit_key;
> +static DEFINE_STATIC_KEY_FALSE(mmu_audit_key);
>  
>  static void __kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
>  {
> @@ -250,7 +250,7 @@ static void __kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
>  
>  static inline void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
>  {
> -	if (static_key_false((&mmu_audit_key)))
> +	if (static_branch_unlikely((&mmu_audit_key)))
>  		__kvm_mmu_audit(vcpu, point);
>  }
>  
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 9a8969a6dd06..b8c05ef26942 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -10339,7 +10339,7 @@ bool kvm_vcpu_is_bsp(struct kvm_vcpu *vcpu)
>  	return (vcpu->arch.apic_base & MSR_IA32_APICBASE_BSP) != 0;
>  }
>  
> -struct static_key kvm_no_apic_vcpu __read_mostly;
> +__read_mostly DEFINE_STATIC_KEY_FALSE(kvm_no_apic_vcpu);
>  EXPORT_SYMBOL_GPL(kvm_no_apic_vcpu);
>  
>  void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)

mmu_audit_key can only be true or false so it would also be nice to use 
static_branch_enable()/static_branch_disable() for it and not
static_key_slow_inc()/static_key_slow_dec() we currently use (as it
sounds weird to increment 'false').

kvm_no_apic_vcpu is different, we actually need to increase it with
every vCPU which doesn't have LAPIC but maybe we can at least switch to
static_branch_inc()/static_branch_dec(). It is still weird we initialize
it to 'false' but it seems to be a documented behavior. From
include/linux/jump_label.h:

"... Thus, static_branch_inc() can be thought of as a 'make more true'
 and static_branch_dec() as a 'make more false'"

so .. oh well.

-- 
Vitaly


  reply	other threads:[~2021-01-11 17:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-11 15:24 [PATCH] KVM: update depracated jump label API Cun Li
2021-01-11 17:15 ` Vitaly Kuznetsov [this message]
2021-01-16  5:41   ` Cun Li
2021-01-16  5:50   ` [PATCH] KVM: update depracated and inappropriate " Cun Li
2021-01-19 20:46     ` Sean Christopherson
2021-01-26 17:57   ` [PATCH] KVM: update depracated " Paolo Bonzini
2021-01-26 18:51     ` Sean Christopherson
2021-01-13  8:43 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h7nn8ke8.fsf@vitty.brq.redhat.com \
    --to=vkuznets@redhat.com \
    --cc=bp@alien8.de \
    --cc=cun.jia.li@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=wanpengli@tencent.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.