Message ID | 1344336431.28967.14.camel@edumazet-glaptop |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Tue, Aug 07, 2012 at 12:47:11PM +0200, Eric Dumazet wrote: > From: Eric Dumazet <edumazet@google.com> > > After IP route cache removal, I believe rcu_bh() has very little use and > we should remove this RCU variant, since it adds some cycles in fast > path. Do you mean remove all uses of RCU-bh globally and also removing the implementation itself? That would actually be a good thing, from my perspective. Or were you meaning something more localized? Thanx, Paul > Anyway, the call_rcu_bh() use in fib_true is obviously wrong, since > some users only assert rcu_read_lock(). > > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> > --- > net/ipv4/fib_trie.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c > index f0cdb30..57bd978 100644 > --- a/net/ipv4/fib_trie.c > +++ b/net/ipv4/fib_trie.c > @@ -367,7 +367,7 @@ static void __leaf_free_rcu(struct rcu_head *head) > > static inline void free_leaf(struct leaf *l) > { > - call_rcu_bh(&l->rcu, __leaf_free_rcu); > + call_rcu(&l->rcu, __leaf_free_rcu); > } > > static inline void free_leaf_info(struct leaf_info *leaf) > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2012-08-07 at 09:34 -0700, Paul E. McKenney wrote: > On Tue, Aug 07, 2012 at 12:47:11PM +0200, Eric Dumazet wrote: > > From: Eric Dumazet <edumazet@google.com> > > > > After IP route cache removal, I believe rcu_bh() has very little use and > > we should remove this RCU variant, since it adds some cycles in fast > > path. > > Do you mean remove all uses of RCU-bh globally and also removing the > implementation itself? That would actually be a good thing, from my > perspective. > Yes I meant that there are now too few rcu_bh users, and that they probably could switch to regular rcu. We could then remove the implementation. rcu_bh was needed because we could sit forever in softirq mode in one cpu, and we needed to allocate/free dsts with RCU protection. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 07, 2012 at 06:48:14PM +0200, Eric Dumazet wrote: > On Tue, 2012-08-07 at 09:34 -0700, Paul E. McKenney wrote: > > On Tue, Aug 07, 2012 at 12:47:11PM +0200, Eric Dumazet wrote: > > > From: Eric Dumazet <edumazet@google.com> > > > > > > After IP route cache removal, I believe rcu_bh() has very little use and > > > we should remove this RCU variant, since it adds some cycles in fast > > > path. > > > > Do you mean remove all uses of RCU-bh globally and also removing the > > implementation itself? That would actually be a good thing, from my > > perspective. > > > > Yes I meant that there are now too few rcu_bh users, and that they > probably could switch to regular rcu. > > We could then remove the implementation. > > rcu_bh was needed because we could sit forever in softirq mode in one > cpu, and we needed to allocate/free dsts with RCU protection. Very cool!!! Anything I can do to help, aside of course from the final removal of RCU-bh support? Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Tue, 07 Aug 2012 12:47:11 +0200 > From: Eric Dumazet <edumazet@google.com> > > After IP route cache removal, I believe rcu_bh() has very little use and > we should remove this RCU variant, since it adds some cycles in fast > path. > > Anyway, the call_rcu_bh() use in fib_true is obviously wrong, since > some users only assert rcu_read_lock(). > > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index f0cdb30..57bd978 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c @@ -367,7 +367,7 @@ static void __leaf_free_rcu(struct rcu_head *head) static inline void free_leaf(struct leaf *l) { - call_rcu_bh(&l->rcu, __leaf_free_rcu); + call_rcu(&l->rcu, __leaf_free_rcu); } static inline void free_leaf_info(struct leaf_info *leaf)