[PATCH] drm: Replace kref with a simple atomic reference count

Chris Wilson chris at chris-wilson.co.uk
Thu Nov 25 14:44:04 PST 2010


On Fri, 26 Nov 2010 08:38:29 +1000, Dave Airlie <airlied at redhat.com> wrote:
> On Thu, 2010-11-25 at 21:40 +0000, Chris Wilson wrote:
> > For a deferred-free cache of unreferenced bound objects, a simple
> > reference count is required without the baggage of kref.
> 
> eh?

The issue with kref is that it does:

void kref_get(struct kref *kref)
{
        WARN_ON(!atomic_read(&kref->refcount));
        atomic_inc(&kref->refcount);
        smp_mb__after_atomic_inc();
}

which causes havoc when you are trying to keep a list of unreferenced
objects. That's all I'm trying to avoid.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the dri-devel mailing list