From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Valdis.Kletnieks@vt.edu,
Andrew Morton <akpm@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Patrick McHardy <kaber@trash.net>,
"David S. Miller" <davem@davemloft.net>,
linux-kernel@vger.kernel.org, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org
Subject: Re: mmotm 2010-04-28 - RCU whinges
Date: Mon, 3 May 2010 11:16:29 -0700 [thread overview]
Message-ID: <20100503181629.GJ2597@linux.vnet.ibm.com> (raw)
In-Reply-To: <1272903293.2226.50.camel@edumazet-laptop>
On Mon, May 03, 2010 at 06:14:53PM +0200, Eric Dumazet wrote:
> Le lundi 03 mai 2010 à 08:43 -0700, Paul E. McKenney a écrit :
>
> > Highly recommended. ;-)
> >
> > And thanks to you for your testing efforts and to Eric for the fixes!!!
> >
>
> For this last one, I think you should push following patch Paul
I would be happy to if I could find the commit creating
hlist_for_each_entry_continue_rcu()...
I do see a ca. 2008 patch from Stephen Hemminger:
http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg264661.html
According to http://patchwork.ozlabs.org/patch/47997/, this is
going up the networking tree as of March 18, 2010.
So I would be happy to push the patch below, but to do so, I will need
to adopt the portion of Stephen's patch that created this primitive.
Please let me know how you would like to proceed!
Thanx, Paul
> Followup of commit 3120438ad6
> (rcu: Disable lockdep checking in RCU list-traversal primitives)
>
> Or we might introduce a hlist_for_each_entry_continue_rcu_bh() macro...
>
>
>
> diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> index 004908b..b0c7e24 100644
> --- a/include/linux/rculist.h
> +++ b/include/linux/rculist.h
> @@ -435,10 +435,10 @@ static inline void hlist_add_after_rcu(struct hlist_node *prev,
> * @member: the name of the hlist_node within the struct.
> */
> #define hlist_for_each_entry_continue_rcu(tpos, pos, member) \
> - for (pos = rcu_dereference((pos)->next); \
> + for (pos = rcu_dereference_raw((pos)->next); \
> pos && ({ prefetch(pos->next); 1; }) && \
> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); \
> - pos = rcu_dereference(pos->next))
> + pos = rcu_dereference_raw(pos->next))
>
>
> #endif /* __KERNEL__ */
>
>
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Valdis.Kletnieks@vt.edu,
Andrew Morton <akpm@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Patrick McHardy <kaber@trash.net>,
"David S. Miller" <davem@davemloft.net>,
linux-kernel@vger.kernel.org, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org
Subject: Re: mmotm 2010-04-28 - RCU whinges
Date: Mon, 3 May 2010 11:16:29 -0700 [thread overview]
Message-ID: <20100503181629.GJ2597@linux.vnet.ibm.com> (raw)
In-Reply-To: <1272903293.2226.50.camel@edumazet-laptop>
On Mon, May 03, 2010 at 06:14:53PM +0200, Eric Dumazet wrote:
> Le lundi 03 mai 2010 à 08:43 -0700, Paul E. McKenney a écrit :
>
> > Highly recommended. ;-)
> >
> > And thanks to you for your testing efforts and to Eric for the fixes!!!
> >
>
> For this last one, I think you should push following patch Paul
I would be happy to if I could find the commit creating
hlist_for_each_entry_continue_rcu()...
I do see a ca. 2008 patch from Stephen Hemminger:
http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg264661.html
According to http://patchwork.ozlabs.org/patch/47997/, this is
going up the networking tree as of March 18, 2010.
So I would be happy to push the patch below, but to do so, I will need
to adopt the portion of Stephen's patch that created this primitive.
Please let me know how you would like to proceed!
Thanx, Paul
> Followup of commit 3120438ad6
> (rcu: Disable lockdep checking in RCU list-traversal primitives)
>
> Or we might introduce a hlist_for_each_entry_continue_rcu_bh() macro...
>
>
>
> diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> index 004908b..b0c7e24 100644
> --- a/include/linux/rculist.h
> +++ b/include/linux/rculist.h
> @@ -435,10 +435,10 @@ static inline void hlist_add_after_rcu(struct hlist_node *prev,
> * @member: the name of the hlist_node within the struct.
> */
> #define hlist_for_each_entry_continue_rcu(tpos, pos, member) \
> - for (pos = rcu_dereference((pos)->next); \
> + for (pos = rcu_dereference_raw((pos)->next); \
> pos && ({ prefetch(pos->next); 1; }) && \
> ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); \
> - pos = rcu_dereference(pos->next))
> + pos = rcu_dereference_raw(pos->next))
>
>
> #endif /* __KERNEL__ */
>
>
next prev parent reply other threads:[~2010-05-03 18:16 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-28 23:53 mmotm 2010-04-28-16-53 uploaded akpm
2010-04-29 21:32 ` Valdis.Kletnieks
2010-04-29 21:53 ` Andrew Morton
2010-04-29 22:00 ` Andrew Morton
2010-04-30 12:11 ` Lee Schermerhorn
2010-04-30 18:02 ` Lee Schermerhorn
2010-04-30 18:47 ` Valdis.Kletnieks
2010-04-30 19:05 ` Lee Schermerhorn
2010-05-02 17:38 ` mmotm 2010-04-28 - nouveau driver issues Valdis.Kletnieks
2010-05-02 17:38 ` Valdis.Kletnieks
2010-05-02 17:46 ` mmotm 2010-04-28 - RCU whinges Valdis.Kletnieks
2010-05-03 5:38 ` Eric Dumazet
2010-05-03 5:41 ` Eric Dumazet
2010-05-03 5:41 ` Eric Dumazet
2010-05-03 5:43 ` Eric Dumazet
2010-05-03 5:43 ` Eric Dumazet
2010-05-03 5:55 ` David Miller
2010-05-10 15:40 ` Patrick McHardy
2010-05-10 15:56 ` Eric Dumazet
2010-05-10 15:57 ` Eric Dumazet
2010-05-10 16:03 ` Patrick McHardy
2010-05-10 16:03 ` Patrick McHardy
2010-05-10 16:04 ` Patrick McHardy
2010-05-10 16:04 ` Patrick McHardy
2010-05-10 15:57 ` Paul E. McKenney
2010-05-10 16:12 ` David Miller
2010-05-10 16:27 ` Patrick McHardy
2010-05-03 14:30 ` Valdis.Kletnieks
2010-05-03 14:48 ` Eric Dumazet
2010-05-03 14:48 ` Eric Dumazet
2010-05-03 14:58 ` Eric Dumazet
2010-05-03 15:29 ` Valdis.Kletnieks
2010-05-03 15:43 ` Paul E. McKenney
2010-05-03 15:43 ` Paul E. McKenney
2010-05-03 16:14 ` Eric Dumazet
2010-05-03 18:16 ` Paul E. McKenney [this message]
2010-05-03 18:16 ` Paul E. McKenney
2010-05-03 19:46 ` [PATCH net-next-2.6] net: if6_get_next() fix Eric Dumazet
2010-05-03 20:09 ` David Miller
2010-05-03 20:13 ` Eric Dumazet
2010-05-03 20:13 ` Eric Dumazet
2010-05-03 20:24 ` David Miller
2010-05-03 20:50 ` Eric Dumazet
2010-05-03 22:17 ` David Miller
2010-05-03 22:48 ` Paul E. McKenney
2010-05-03 22:52 ` Paul E. McKenney
2010-05-03 22:54 ` David Miller
2010-05-10 16:53 ` mmotm 2010-04-28 - RCU whinges Patrick McHardy
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=20100503181629.GJ2597@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=Valdis.Kletnieks@vt.edu \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=kaber@trash.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=peterz@infradead.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.