It looks like we may need to backport this fix from upstream. I'll look into the backport when I get time.
commit af6261031317f646d22f994c0b467521e47aa49f
Author: Chris Wilson <email address hidden>
Date: Mon Sep 20 10:31:40 2010 +0100
drm/i915: Hold a reference to the object whilst unbinding the eviction list
During heavy aperture thrashing we may be forced to wait upon several active
objects during eviction. The active list may be the last reference to
these objects and so the action of waiting upon one of them may cause
another to be freed (and itself unbound). To prevent the object
disappearing underneath us, we need to acquire and hold a reference
whilst unbinding.
It looks like we may need to backport this fix from upstream. I'll look into the backport when I get time.
commit af6261031317f64 6d22f994c0b4675 21e47aa49f
Author: Chris Wilson <email address hidden>
Date: Mon Sep 20 10:31:40 2010 +0100
drm/i915: Hold a reference to the object whilst unbinding the eviction list
During heavy aperture thrashing we may be forced to wait upon several active
objects during eviction. The active list may be the last reference to
these objects and so the action of waiting upon one of them may cause
another to be freed (and itself unbound). To prevent the object
disappearing underneath us, we need to acquire and hold a reference
whilst unbinding.
This should fix the reported page refcount OOPS:
kernel BUG at drivers/ gpu/drm/ i915/i915_ gem.c:1444! ffffffffa009302 6>] [<ffffffffa0093 026>] i915_gem_ object_ put_pages+ 0x25/0 ffffffffa009481 d>] i915_gem_ object_ unbind+ 0xc5/0x1a7 [i915] ffffffffa0098ab 2>] i915_gem_ evict_something +0x3bd/ 0x409 [i915] ffffffffa002792 3>] ? drm_gem_ object_ lookup+ 0x27/0x57 [drm] ffffffffa0093bc 3>] i915_gem_ object_ bind_to_ gtt+0x1d3/ 0x279 [i915] ffffffffa0095b3 0>] i915_gem_ object_ pin+0xa3/ 0x146 [i915] ffffffffa002794 8>] ? drm_gem_ object_ lookup+ 0x4c/0x57 [drm] ffffffffa00961b c>] i915_gem_ do_execbuffer+ 0x50d/0xe32 [i915]
...
RIP: 0010:[<
Call Trace:
[<
[<
[<
[<
[<
[<
[<
Reported-by: Shawn Starr <email address hidden> /bugzilla. kernel. org/show_ bug.cgi? id=18902
Bugzilla: https:/
Signed-off-by: Chris Wilson <email address hidden>