From: Ingo Molnar <mingo@kernel.org>
To: Christoph Lameter <cl@linux.com>
Cc: Tejun Heo <tj@kernel.org>,
akpm@linuxfoundation.org, Steven Rostedt <srostedt@redhat.com>,
linux-kernel@vger.kernel.org,
Peter Zijlstra <peterz@infradead.org>,
netdev@vger.kernel.org
Subject: Re: [pchecks v1 2/4] Use raw cpu ops for calls that would trigger with checks
Date: Tue, 24 Sep 2013 09:32:50 +0200 [thread overview]
Message-ID: <20130924073250.GD28538@gmail.com> (raw)
In-Reply-To: <000001414c3d064a-ebe0610b-6951-4a74-bd33-8480e3e1e364-000000@email.amazonses.com>
(netdev Cc:-ed)
* Christoph Lameter <cl@linux.com> wrote:
> These location triggered during testing with KVM.
>
> These are fetches without preemption off where we judged that
> to be more performance efficient or where other means of
> providing synchronization (BH handling) are available.
> Index: linux/include/net/snmp.h
> ===================================================================
> --- linux.orig/include/net/snmp.h 2013-09-12 13:26:29.216103951 -0500
> +++ linux/include/net/snmp.h 2013-09-12 13:26:29.208104037 -0500
> @@ -126,7 +126,7 @@ struct linux_xfrm_mib {
> extern __typeof__(type) __percpu *name[SNMP_ARRAY_SZ]
>
> #define SNMP_INC_STATS_BH(mib, field) \
> - __this_cpu_inc(mib[0]->mibs[field])
> + raw_cpu_inc(mib[0]->mibs[field])
>
> #define SNMP_INC_STATS_USER(mib, field) \
> this_cpu_inc(mib[0]->mibs[field])
> @@ -141,7 +141,7 @@ struct linux_xfrm_mib {
> this_cpu_dec(mib[0]->mibs[field])
>
> #define SNMP_ADD_STATS_BH(mib, field, addend) \
> - __this_cpu_add(mib[0]->mibs[field], addend)
> + raw_cpu_add(mib[0]->mibs[field], addend)
Are the networking folks fine with allowing unafe operations of SNMP stats
in preemptible sections, or should the kernel produce an optional warning
message if CONFIG_PREEMPT_DEBUG=y and these ops are used in preemptible
(non-bh, non-irq-handler, non-irqs-off, etc.) sections?
RAW_SNMP_*_STATS() ops could be used to annotate those places where that
kind of usage is safe.
Thanks,
Ingo
next prev parent reply other threads:[~2013-09-24 7:32 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20130923191256.584672290@linux.com>
2013-09-23 19:12 ` [pchecks v1 2/4] Use raw cpu ops for calls that would trigger with checks Christoph Lameter
2013-09-24 7:28 ` Ingo Molnar
2013-09-24 7:32 ` Ingo Molnar [this message]
2013-09-24 12:45 ` Eric Dumazet
2013-09-24 7:34 ` Ingo Molnar
2013-09-23 19:12 ` [pchecks v1 1/4] Subject; percpu: Add raw_cpu_ops Christoph Lameter
2013-09-23 19:24 ` [pchecks v1 4/4] percpu: Add preemption checks to __this_cpu ops Christoph Lameter
2013-09-24 8:03 ` Ingo Molnar
2013-09-24 14:24 ` Christoph Lameter
2013-09-24 15:18 ` Ingo Molnar
2013-09-24 15:35 ` Christoph Lameter
2013-09-24 17:26 ` Ingo Molnar
2013-09-25 16:46 ` Christoph Lameter
2013-09-25 18:26 ` Ingo Molnar
2013-09-27 14:36 ` Christoph Lameter
2013-09-28 8:52 ` Ingo Molnar
2013-09-23 19:24 ` [pchecks v1 3/4] Use raw_cpu_ops for refresh_cpu_vm_stats() Christoph Lameter
2013-09-24 7:43 ` Ingo Molnar
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=20130924073250.GD28538@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linuxfoundation.org \
--cc=cl@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=srostedt@redhat.com \
--cc=tj@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.