Messages in this thread | | | Date | Wed, 1 Feb 2012 18:23:07 +1100 | From | Herbert Xu <> | Subject | Re: [PATCH 6/6] cls_cgroup: remove redundant rcu_read_lock/unlock |
| |
On Wed, Feb 01, 2012 at 03:20:00PM +0800, Li Zefan wrote: > Cc: Herbert Xu <herbert@gondor.apana.org.au> > > >> diff --git a/net/core/sock.c b/net/core/sock.c > >> index 213c856..c0bab23 100644 > >> --- a/net/core/sock.c > >> +++ b/net/core/sock.c > >> @@ -1160,9 +1160,7 @@ void sock_update_classid(struct sock *sk) > >> { > >> u32 classid; > >> > >> - rcu_read_lock(); /* doing current task, which cannot vanish. */ > >> classid = task_cls_classid(current); > >> - rcu_read_unlock(); > >> if (classid && classid != sk->sk_classid) > >> sk->sk_classid = classid; > > > > Yes, this seems fine. > > > > Then, I wonder why we do the "if (classid && classid != sk->sk_classid)" > > > > before the : > > > > sk->sk_classid = classid; > > > > This seems unnecessary checks. > > > > I was wondering about this too. He who added this may provide us with an > answer.
Well writing a cache-line unnecessarily is bad.
Cheers, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |