All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Boqun Feng <boqun.feng@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	Josh Triplett <josh@joshtriplett.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Lai Jiangshan <jiangshanlai@gmail.com>
Subject: Re: [RFC 0/5] rcu: Introduce leaf_node_for_each_mask_possible_cpu() and its friend
Date: Fri, 9 Dec 2016 15:49:45 -0800	[thread overview]
Message-ID: <20161209234945.GM3924@linux.vnet.ibm.com> (raw)
In-Reply-To: <20161209084828.11827-1-boqun.feng@gmail.com>

On Fri, Dec 09, 2016 at 04:48:22PM +0800, Boqun Feng wrote:
> Hi Paul,
> 
> While reading the discussion at:
> 
> https://marc.info/?l=linux-kernel&m=148044253400769

This discussion was for stalls specifically, rather than for routine
scans of the bitmasks.

But it does look to save some code, so worth looking into.

> I figured we might use this fact to save some extra checks in RCU core code,
> currently we iterate over all the possible CPUs on a leaf node, check whether
> they were masked in a certain mask and do something. However, given the fact
> that the masks on a leaf node should always be sparse than the corresponding
> part of cpu_possible_mask, we'd better iterate over all bits in a mask and
> check whether the corresponding CPU is possible or not.
> 
> So I made this RFC, I did a simple build/boot/rcutorture test on my box with
> SMP=4, nothing bad happens. Currently I'm waiting for the 0day and trying to
> test this one a bigger system, in the meanwhile, looking forwards to any
> comment and suggestion.
> 
> So thoughts?

By analogy with for_each_cpu() and for_each_possible_cpu(), the name
should instead be for_each_leaf_node_cpu(), the tradition of excessively
long names in RCU notwithstanding.  ;-)

							Thanx, Paul

  parent reply	other threads:[~2016-12-09 23:49 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-09  8:48 [RFC 0/5] rcu: Introduce leaf_node_for_each_mask_possible_cpu() and its friend Boqun Feng
2016-12-09  8:48 ` [RFC 1/5] rcu: Introduce primitives to iterate mask bits in an RCU leaf node Boqun Feng
2016-12-09  8:48 ` [RFC 2/5] rcu: Use leaf_node_for_each_mask_possible_cpu() in RCU stall checking Boqun Feng
2016-12-09  8:48 ` [RFC 3/5] rcu: Use leaf_node_for_each_mask_possible_cpu() for ->expmask iteration Boqun Feng
2016-12-09  8:48 ` [RFC 4/5] rcu: Use leaf_node_for_each_mask_possible_cpu() in force_qs_rnp() Boqun Feng
2016-12-09  8:48 ` [RFC 5/5] rcu: Use leaf_node_for_each_mask_*() for leaf node online CPU iteration Boqun Feng
2016-12-09 23:49 ` Paul E. McKenney [this message]
2016-12-10  0:45   ` [RFC 0/5] rcu: Introduce leaf_node_for_each_mask_possible_cpu() and its friend Boqun Feng
2016-12-10  4:28     ` Paul E. McKenney
2016-12-10 13:36       ` Boqun Feng
2016-12-10 17:38         ` Paul E. McKenney
2016-12-11  0:06           ` Boqun Feng

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=20161209234945.GM3924@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=boqun.feng@gmail.com \
    --cc=jiangshanlai@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=rostedt@goodmis.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.