Messages in this thread | | | Date | Wed, 26 Apr 2006 15:20:30 +0800 | From | Akinobu Mita <> | Subject | Re: [patch 3/3] use kref for bio |
| |
On Tue, Apr 25, 2006 at 10:18:13PM -0700, Greg KH wrote: > > > Let's _not_. It's extra overhead for no good reason. > > > > Completely agree. That goes for the other block layer kref patches as > > well. > > I also agree, there's a reason I never tried to convert them in the past > :)
kref has faster function for decrement refcount.
kref_put() { ...
/* * if current count is one, we are the last user and can release object * right now, avoiding an atomic operation on 'refcount' */ if ((atomic_read(&kref->refcount) == 1) || (atomic_dec_and_test(&kref->refcount))) { release(kref); return 1; }
If this is good one and the places where Al Viro pointed out really affect performance, should we propagate this faster one by introducing helper function like:
static inline int refcount_test(atomic_t *refcount) { return (atomic_read(refcount) == 1) || (atomic_dec_and_test(refcount)); }
and replace atomic_dec_and_test with it?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |