[PATCH] drm/i915/userptr: detect un-GUP-able pages early
Chris Wilson
chris at chris-wilson.co.uk
Fri Jan 15 16:56:42 UTC 2021
Quoting Jinoh Kang (2021-01-15 16:23:31)
> If GUP-ineligible pages are passed to a GEM userptr object, -EFAULT is
> returned only when the object is actually bound.
>
> The xf86-video-intel userspace driver cannot differentiate this
> condition, and marks the GPU as wedged.
The idea was to call gem_set_domain on the object to validate the pages
after creation. I only did that for read-only... I did however make mesa
use set-domain for validation.
As a question how are you getting to call userptr on something that
wasn't passed by SHM ipc?
> This not only disables graphics
> acceleration but may also cripple other functions such as VT switch.
That should be a non-sequitur; certainly VT switch works without ever
using the GPU.
> Solve this by "prefaulting" user pages on GEM object creation, testing
> whether all pages are eligible for get_user_pages() in the process.
> On failure, return -EFAULT so that userspace can fallback to software
> blitting.
See https://patchwork.freedesktop.org/series/33449/ for adding PROBE |
POPULATE flags.
But we can just use set-domain.
-Chris
More information about the dri-devel
mailing list