[PATCH 2/2] drm/etnaviv: User FOLL_LONGTERM in userptr

John Hubbard jhubbard at nvidia.com
Mon Mar 1 10:26:01 UTC 2021


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 at nvidia.com>


thanks,
-- 
John Hubbard
NVIDIA

> 
> Cc: John Hubbard <jhubbard at nvidia.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> Cc: Lucas Stach <l.stach at pengutronix.de>
> Cc: Russell King <linux+etnaviv at armlinux.org.uk>
> Cc: Christian Gmeiner <christian.gmeiner at gmail.com>
> Cc: etnaviv at 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,
> +					  pages);
>   		if (ret < 0) {
>   			unpin_user_pages(pvec, pinned);
>   			kvfree(pvec);
> 


More information about the etnaviv mailing list