drm/i915/userptr: Handle unlocked gup retries
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Nov 2019 13:32:04 +0000 (13:32 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Nov 2019 15:46:45 +0000 (15:46 +0000)
commitd323c9b88260bc2cf3e3ed4bc741ab69643e0233
treeffbb2dd4412b57556af3bd82d45ac9ec3b1a9d27
parent0d4bbe3d407f79438dc4f87943db21f7134cfc65
drm/i915/userptr: Handle unlocked gup retries

Enable gup to retry and fault the pages outside of the mmap_sem lock in
our worker. As we are inside our worker, outside of any critical path,
we can allow the mmap_sem lock to be dropped in order to service a page
fault; this in turn allows the mm to populate the page using a slow
fault handler.

References: 5b56d49fc31d ("mm: add locked parameter to get_user_pages_remote()")
Testcase: igt/gem_userptr/userfault
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191111133205.11590-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_userptr.c