From: Paolo Bonzini <pbonzini@redhat.com>
To: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: linux-kernel@vger.kernel.org, Gleb Natapov <gleb@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, Peter Zijlstra <a.p.zijlstra@chello.nl>,
Paul Mackerras <paulus@samba.org>,
Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
kvm@vger.kernel.org
Subject: Re: [PATCH 4/7] static_key: use static_key_slow_inc_deferred()
Date: Thu, 17 Oct 2013 12:39:07 +0200 [thread overview]
Message-ID: <525FBE4B.9060206@redhat.com> (raw)
In-Reply-To: <1382004631-25895-5-git-send-email-rkrcmar@redhat.com>
Il 17/10/2013 12:10, Radim Krčmář ha scritto:
> Simple replacement where possible.
> Saves us problematic access to the structure and allows optimalizations
> and bug fixes to take place.
I think you should introduce this first as a simple wrapper around
static_key_slow_inc, and then add the bells and whistles you have in
patches 2 and 3.
Paolo
> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
> ---
> arch/x86/kvm/lapic.c | 7 ++++---
> kernel/events/core.c | 6 +++---
> 2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> index 5439117..eff85f6 100644
> --- a/arch/x86/kvm/lapic.c
> +++ b/arch/x86/kvm/lapic.c
> @@ -121,7 +121,7 @@ static inline void apic_set_spiv(struct kvm_lapic *apic, u32 val)
> if (val & APIC_SPIV_APIC_ENABLED)
> static_key_slow_dec_deferred(&apic_sw_disabled);
> else
> - static_key_slow_inc(&apic_sw_disabled.key);
> + static_key_slow_inc_deferred(&apic_sw_disabled);
> }
> apic_set_reg(apic, APIC_SPIV, val);
> }
> @@ -1351,7 +1351,7 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value)
> if (value & MSR_IA32_APICBASE_ENABLE)
> static_key_slow_dec_deferred(&apic_hw_disabled);
> else
> - static_key_slow_inc(&apic_hw_disabled.key);
> + static_key_slow_inc_deferred(&apic_hw_disabled);
> recalculate_apic_map(vcpu->kvm);
> }
>
> @@ -1546,7 +1546,8 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
> kvm_lapic_set_base(vcpu,
> APIC_DEFAULT_PHYS_BASE | MSR_IA32_APICBASE_ENABLE);
>
> - static_key_slow_inc(&apic_sw_disabled.key); /* sw disabled at reset */
> + /* sw disabled at reset */
> + static_key_slow_inc_deferred(&apic_sw_disabled);
> kvm_lapic_reset(vcpu);
> kvm_iodevice_init(&apic->dev, &apic_mmio_ops);
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index d49a9d2..ade89a1 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -6565,7 +6565,7 @@ static void account_event(struct perf_event *event)
> return;
>
> if (event->attach_state & PERF_ATTACH_TASK)
> - static_key_slow_inc(&perf_sched_events.key);
> + static_key_slow_inc_deferred(&perf_sched_events);
> if (event->attr.mmap || event->attr.mmap_data)
> atomic_inc(&nr_mmap_events);
> if (event->attr.comm)
> @@ -6577,9 +6577,9 @@ static void account_event(struct perf_event *event)
> tick_nohz_full_kick_all();
> }
> if (has_branch_stack(event))
> - static_key_slow_inc(&perf_sched_events.key);
> + static_key_slow_inc_deferred(&perf_sched_events);
> if (is_cgroup_event(event))
> - static_key_slow_inc(&perf_sched_events.key);
> + static_key_slow_inc_deferred(&perf_sched_events);
>
> account_event_cpu(event, event->cpu);
> }
>
next prev parent reply other threads:[~2013-10-17 10:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-17 10:10 [PATCH 0/7] static_key: fix timer bugs & change api (a bit) Radim Krčmář
2013-10-17 10:10 ` [PATCH 1/7] static_key: flush rate limit timer on rmmod Radim Krčmář
2013-10-17 10:35 ` Paolo Bonzini
2013-10-18 7:24 ` Radim Krčmář
2013-10-17 10:10 ` [PATCH 2/7] static_key: add static_key_slow_inc_deferred() Radim Krčmář
2013-10-17 10:10 ` [PATCH 3/7] static_key: keep deferred enabled counter debt Radim Krčmář
2013-10-17 10:10 ` [PATCH 4/7] static_key: use static_key_slow_inc_deferred() Radim Krčmář
2013-10-17 10:39 ` Paolo Bonzini [this message]
2013-10-18 7:29 ` Radim Krčmář
2013-10-17 10:10 ` [PATCH 5/7] jump_label: relax branch hinting restrictions Radim Krčmář
2013-10-17 10:10 ` Radim Krčmář
2013-10-17 10:10 ` Radim Krčmář
2013-10-17 10:10 ` Radim Krčmář
2013-10-17 17:35 ` Steven Rostedt
2013-10-17 17:35 ` Steven Rostedt
2013-10-17 17:35 ` Steven Rostedt
2013-10-17 17:35 ` Steven Rostedt
2013-10-18 7:30 ` Radim Krčmář
2013-10-18 7:30 ` Radim Krčmář
2013-10-18 7:30 ` Radim Krčmář
2013-10-18 7:30 ` Radim Krčmář
2013-10-17 10:10 ` [PATCH 7/7] init: execute jump_label_init() earlier Radim Krčmář
2013-10-17 10:43 ` [PATCH 0/7] static_key: fix timer bugs & change api (a bit) Paolo Bonzini
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=525FBE4B.9060206@redhat.com \
--to=pbonzini@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=gleb@redhat.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=rkrcmar@redhat.com \
--cc=tglx@linutronix.de \
--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.