[Intel-gfx] [FIXES 2/3] drm/i915/userptr: Handle unlocked gup retries

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Mon Nov 11 15:44:50 UTC 2019


On 11/11/2019 14:32, Chris Wilson wrote:
> Quoting Chris Wilson (2019-11-11 14:27:16)
>> Quoting Tvrtko Ursulin (2019-11-11 14:19:31)
>>>
>>> On 11/11/2019 13:32, Chris Wilson wrote:
>>>> 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.
>>>>
>>>> Testcase: igt/gem_userptr/userfault
>>>
>>> There are no references or explanation on what does this fix?
>>
>> gup simply fails if it is not allowed to drop the lock for some faults,
>>
>> __get_user_pages_locked:
>>                  ret = __get_user_pages(tsk, mm, start, nr_pages, flags, pages,
>>                                         vmas, locked);
>>                  if (!locked)
>>                          /* VM_FAULT_RETRY couldn't trigger, bypass */
>>                          return ret;
>>
>> userfault being the first time I discovered this even existed. Since we
>> are only holding the mmap_sem for the gup (and not protecting anything
>> else) we can simply allow gup to drop the lock if it needs to.
> 
> Fixes: 5b56d49fc31d ("mm: add locked parameter to get_user_pages_remote()")

s/Fixes/Reference/ I guess.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko



More information about the Intel-gfx mailing list