Re: [PATCH 04/21] Generic percpu refcounting
From: Oleg Nesterov
Date: Tue May 14 2013 - 11:32:55 EST
On 05/14, Tejun Heo wrote:
>
> > +int percpu_ref_tryget(struct percpu_ref *ref)
> > +{
> > + int ret = 1;
> > +
> > + preempt_disable();
> > +
> > + if (!percpu_ref_dead(ref))
> > + percpu_ref_get(ref);
> > + else
> > + ret = 0;
> > +
> > + preempt_enable();
> > +
> > + return ret;
> > +}
...
> BTW, why is this
> function necessary? What's the use case?
Yes, I was wondering too.
And please note that this code _looks_ wrong, percpu_ref_get() still
can increment ref->count.
Hmm. Just noticed this comment above percpu_ref_kill()
* The caller must issue a synchronize_rcu()/call_rcu() before calling
* percpu_ref_put() to drop the initial ref.
Really?
Oleg.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/