| To: | Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections |
| From: | "Paul E. McKenney" <paulmck@xxxxxxxxxx> |
| Date: | Thu, 29 Sep 2005 18:16:03 -0700 |
| Cc: | Suzanne Wood <suzannew@xxxxxxxxxx>, Robert.Olsson@xxxxxxxxxxx, davem@xxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, walpole@xxxxxxxxxx |
| In-reply-to: | <20050930010404.GA21429@xxxxxxxxxxxxxxxxxxx> |
| References: | <200509292330.j8TNUSmH019572@xxxxxxxxxxxxxxxxxxx> <20050930002346.GP8177@xxxxxxxxxx> <20050930002719.GC21062@xxxxxxxxxxxxxxxxxxx> <20050930003642.GQ8177@xxxxxxxxxx> <20050930010404.GA21429@xxxxxxxxxxxxxxxxxxx> |
| Reply-to: | paulmck@xxxxxxxxxx |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mutt/1.4.1i |
On Fri, Sep 30, 2005 at 11:04:04AM +1000, Herbert Xu wrote:
> On Thu, Sep 29, 2005 at 05:36:42PM -0700, Paul E. McKenney wrote:
> >
> > > rcu_read_lock();
> > > in_dev = dev->ip_ptr;
> > > if (in_dev) {
> > > in_dev = rcu_dereference(in_dev);
> > > atomic_inc(&in_dev->refcnt);
> > > }
> > > rcu_read_unlock();
> > > return in_dev;
> >
> > How about:
> >
> > rcu_read_lock();
> > in_dev = dev->ip_ptr;
> > if (rcu_dereference(in_dev)) {
> > atomic_inc(&in_dev->refcnt);
> > }
> > rcu_read_unlock();
> > return in_dev;
>
> With this the barrier will taken even when in_dev is NULL.
>
> I agree this isn't such a big deal since it only impacts Alpha and then
> only when in_dev is NULL. But as we already do the branch anyway to
> increment the reference count, we might as well make things a little
> better for Alpha.
OK, how about this instead?
rcu_read_lock();
in_dev = dev->ip_ptr;
if (in_dev) {
atomic_inc(&rcu_dereference(in_dev)->refcnt);
}
rcu_read_unlock();
return in_dev;
Thanx, Paul
|
| Previous by Date: | Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections, Suzanne Wood |
|---|---|
| Next by Date: | Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections, Herbert Xu |
| Previous by Thread: | Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections, Herbert Xu |
| Next by Thread: | Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections, Herbert Xu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |