From: Jarek Poplawski <jarkao2@o2.pl>
To: Stephen Hemminger <shemminger@osdl.org>
Cc: David Miller <davem@davemloft.net>,
greearb@candelatech.com, herbert@gondor.apana.org.au,
dlstevens@us.ibm.com, netdev@vger.kernel.org
Subject: Re: RCU info
Date: Fri, 12 Jan 2007 13:19:48 +0100 [thread overview]
Message-ID: <20070112121948.GA1707@ff.dom.local> (raw)
In-Reply-To: <20070111094213.08907e1f@localhost>
On Thu, Jan 11, 2007 at 09:42:13AM -0800, Stephen Hemminger wrote:
> Paul McKenney has given lots of talks on RCU see:
> http://www.rdrop.com/users/paulmck/RCU/
>
> and look in Documentation/RCU
I've read a lot of this but it's sometimes confusing e.g.:
>From Documentation/RCU/checklist.txt:
>9. All RCU list-traversal primitives, which include
> list_for_each_rcu(), list_for_each_entry_rcu(),
> list_for_each_continue_rcu(), and list_for_each_safe_rcu(),
> must be within an RCU read-side critical section. RCU
> read-side critical sections are delimited by rcu_read_lock()
> and rcu_read_unlock(), or by similar primitives such as
> rcu_read_lock_bh() and rcu_read_unlock_bh().
So "All" and "must be"!
> Use of the _rcu() list-traversal primitives outside of an
> RCU read-side critical section causes no harm other than
> a slight performance degradation on Alpha CPUs. It can
> also be quite helpful in reducing code bloat when common
> code is shared between readers and updaters.
... or not all and not must be?
I think, probably because of examples in those docs - mostly with
spin_locks (or without preemption), I've got wrong conviction that
writers (or more often readers and writers) in their reading part
aren't allowed to be preempted or block also. But after rethinking
yesterday explanation of David Miller I undestood the writers have
more possibilities and individual analyzis is required each time.
Many thanks once more to everyone,
Jarek P.
prev parent reply other threads:[~2007-01-12 12:17 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-20 2:13 BUG: soft lockup detected on CPU#0! (2.6.18.2 plus hacks) Ben Greear
2006-12-22 7:13 ` [PATCH] igmp: spin_lock_bh in timer (Re: BUG: soft lockup detected on CPU#0!) Jarek Poplawski
2006-12-22 7:42 ` Jarek Poplawski
2006-12-22 13:47 ` Ben Greear
2006-12-22 14:05 ` Ben Greear
2006-12-27 8:24 ` Jarek Poplawski
2006-12-27 16:16 ` Ben Greear
2006-12-28 12:56 ` Jarek Poplawski
2006-12-29 11:16 ` Jarek Poplawski
2006-12-22 9:48 ` Jarek Poplawski
2006-12-22 11:16 ` Herbert Xu
2006-12-22 12:53 ` Jarek Poplawski
2007-01-02 5:00 ` BUG: soft lockup detected on CPU#0! (2.6.18.2 plus hacks) Ben Greear
2007-01-02 7:39 ` Jarek Poplawski
2007-01-02 8:23 ` Jarek Poplawski
2007-01-02 9:23 ` Jarek Poplawski
2007-01-02 23:35 ` David Stevens
2007-01-02 23:43 ` Ben Greear
2007-01-03 8:07 ` Jarek Poplawski
2007-01-03 8:28 ` Jarek Poplawski
2007-01-03 16:53 ` Ben Greear
2007-01-03 22:14 ` David Stevens
2007-01-03 23:13 ` David Stevens
2007-01-03 23:35 ` Ben Greear
2007-01-03 23:56 ` David Stevens
2007-01-04 0:30 ` Herbert Xu
2007-01-04 1:02 ` Ben Greear
2007-01-04 1:14 ` Herbert Xu
2007-01-04 5:41 ` David Stevens
2007-01-04 5:34 ` David Stevens
2007-01-04 6:26 ` Herbert Xu
2007-01-04 8:03 ` Jarek Poplawski
2007-01-04 8:29 ` Herbert Xu
2007-01-04 8:50 ` Jarek Poplawski
2007-01-04 10:27 ` Herbert Xu
2007-01-04 11:04 ` Jarek Poplawski
2007-01-04 17:04 ` Ben Greear
2007-01-05 13:55 ` Jarek Poplawski
2007-01-04 20:33 ` David Miller
2007-01-05 6:38 ` Jarek Poplawski
2007-01-05 9:38 ` Herbert Xu
2007-01-05 11:19 ` [PATCH] devinet: inetdev_init out label moved after RCU assignment Jarek Poplawski
2007-01-05 11:23 ` Herbert Xu
2007-01-05 11:37 ` Jarek Poplawski
2007-01-09 22:38 ` David Miller
2007-01-05 19:52 ` David Stevens
2007-01-05 20:33 ` BUG: soft lockup detected on CPU#0! (2.6.18.2 plus hacks) Ben Greear
2007-01-05 20:34 ` David Miller
2007-01-08 6:53 ` Jarek Poplawski
2007-01-08 16:57 ` Ben Greear
2007-01-08 18:03 ` Stephen Hemminger
2007-01-09 8:10 ` Jarek Poplawski
2007-01-10 9:04 ` Jarek Poplawski
2007-01-10 12:50 ` Jarek Poplawski
2007-01-10 20:01 ` Stephen Hemminger
2007-01-11 7:24 ` Jarek Poplawski
2007-01-11 7:40 ` David Miller
2007-01-11 8:29 ` Jarek Poplawski
2007-01-11 8:35 ` Jarek Poplawski
2007-01-11 8:39 ` Jarek Poplawski
2007-01-11 9:27 ` David Miller
2007-01-11 11:09 ` Jarek Poplawski
2007-01-11 17:42 ` RCU info Stephen Hemminger
2007-01-12 12:19 ` Jarek Poplawski [this message]
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=20070112121948.GA1707@ff.dom.local \
--to=jarkao2@o2.pl \
--cc=davem@davemloft.net \
--cc=dlstevens@us.ibm.com \
--cc=greearb@candelatech.com \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@vger.kernel.org \
--cc=shemminger@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).