drm/i915: Convert non-blocking waits for requests over to using RCU
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 5 Aug 2016 09:14:07 +0000 (10:14 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 5 Aug 2016 09:54:34 +0000 (10:54 +0100)
commitb8f9096d6a51e3ac31deb0f57a9a323059bb4281
tree87f367f7edfb4dc91ef6277fec2d94cbadd65595
parent2467658e2de3ca1dee6688b6b0b6f48263dfd532
drm/i915: Convert non-blocking waits for requests over to using RCU

We can completely avoid taking the struct_mutex around the non-blocking
waits by switching over to the RCU request management (trading the mutex
for a RCU read lock and some complex atomic operations). The improvement
is that we gain further contention reduction, and overall the code
become simpler due to the reduced mutex dancing.

v2: Move i915_gem_fault tracepoint back to the start of the function,
before the unlocked wait.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1470388464-28458-2-git-send-email-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c