Re: [PATCH 6/7] get rid of tc_u_common ->rcu
On Thu, Sep 06, 2018 at 09:18:47PM -0700, Cong Wang wrote: > On Wed, Sep 5, 2018 at 12:04 PM Al Viro wrote: > > > > From: Al Viro > > > > unused > > > > Signed-off-by: Al Viro > > --- > > net/sched/cls_u32.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c > > index 8a1a573487bd..be9240ae1417 100644 > > --- a/net/sched/cls_u32.c > > +++ b/net/sched/cls_u32.c > > @@ -98,7 +98,6 @@ struct tc_u_common { > > int refcnt; > > struct idr handle_idr; > > struct hlist_node hnode; > > - struct rcu_head rcu; > > }; > > Just FYI: > > This was added when RCU was introduced to u32 fast path, > it looks like on fast path we never touch tc_u_common, we > only use tp->root, all the rest are slow paths with RTNL lock, > so it is probably fine to just remove it rather than converting > that kfree() to kfree_rcu(). *nod* In any case, if u32_classify() grows that dereference, we can always re-add ->rcu at the same time.
Re: [PATCH 6/7] get rid of tc_u_common ->rcu
On Wed, Sep 5, 2018 at 12:04 PM Al Viro wrote: > > From: Al Viro > > unused > > Signed-off-by: Al Viro > --- > net/sched/cls_u32.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c > index 8a1a573487bd..be9240ae1417 100644 > --- a/net/sched/cls_u32.c > +++ b/net/sched/cls_u32.c > @@ -98,7 +98,6 @@ struct tc_u_common { > int refcnt; > struct idr handle_idr; > struct hlist_node hnode; > - struct rcu_head rcu; > }; Just FYI: This was added when RCU was introduced to u32 fast path, it looks like on fast path we never touch tc_u_common, we only use tp->root, all the rest are slow paths with RTNL lock, so it is probably fine to just remove it rather than converting that kfree() to kfree_rcu().
Re: [PATCH 6/7] get rid of tc_u_common ->rcu
On 2018-09-05 3:04 p.m., Al Viro wrote: From: Al Viro unused Signed-off-by: Al Viro Acked-by: Jamal Hadi Salim cheers, jamal
[PATCH 6/7] get rid of tc_u_common ->rcu
From: Al Viro unused Signed-off-by: Al Viro --- net/sched/cls_u32.c | 1 - 1 file changed, 1 deletion(-) diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 8a1a573487bd..be9240ae1417 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -98,7 +98,6 @@ struct tc_u_common { int refcnt; struct idr handle_idr; struct hlist_node hnode; - struct rcu_head rcu; }; static inline unsigned int u32_hash_fold(__be32 key, -- 2.11.0