On Mon, Mar 01, 2021 at 02:26:01AM -0800, John Hubbard wrote:
On 3/1/21 01:52, Daniel Vetter wrote:
There's no mmu notifier or anything like that, releasing this pin is entirely up to userspace. Hence FOLL_LONGTERM.
No cc: stable for this patch since a lot of the infrastructure around FOLL_LONGETRM (like not allowing it for pages currently sitting in
^FOLL_LONGTERM
ZONE_MOVEABLE before they're migrated) is still being worked on. So not big benefits yet.
Yes. Great write-up, that's very clear, and it's exactly where we're at.
Reviewed-by: John Hubbard jhubbard@nvidia.com
Both patches pushed to drm-misc-fixes. 2nd one maybe not required there, but easier due to conflicts.
Thanks for the review. -Daniel
thanks,
John Hubbard NVIDIA
Cc: John Hubbard jhubbard@nvidia.com Signed-off-by: Daniel Vetter daniel.vetter@intel.com Cc: Lucas Stach l.stach@pengutronix.de Cc: Russell King linux+etnaviv@armlinux.org.uk Cc: Christian Gmeiner christian.gmeiner@gmail.com Cc: etnaviv@lists.freedesktop.org
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index a9e696d05b33..db69f19ab5bc 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -689,7 +689,8 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj) struct page **pages = pvec + pinned; ret = pin_user_pages_fast(ptr, num_pages,
FOLL_WRITE | FOLL_FORCE, pages);
FOLL_WRITE | FOLL_FORCE | FOLL_LONGTERM,
if (ret < 0) { unpin_user_pages(pvec, pinned); kvfree(pvec);pages);