drm/i915/guc: Cache the client mapping
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 2 Nov 2016 17:50:47 +0000 (17:50 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 3 Nov 2016 19:57:43 +0000 (19:57 +0000)
commit72aa0d899a3ea7e14436ac0b869cf3333277b92e
tree944cb3590227e8ac658ae754b950cff3fe855735
parenta933568eb61d6c0b12af4264ae1ba316447a2189
drm/i915/guc: Cache the client mapping

Use i915_gem_object_pin_map() for the guc client's lifetime to replace
the peristent kmap + frequent kmap_atomic with a permanent vmapping.
This avoids taking the obj->mm.lock mutex whilst inside irq context
later.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98571
Fixes: 96d776345277 ("drm/i915: Use a radixtree for random access...");
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20161102175051.29163-9-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
drivers/gpu/drm/i915/i915_guc_submission.c
drivers/gpu/drm/i915/intel_guc.h