Re: [PATCH v2] mm/gup_test: report actual pinned bytes
From: David Hildenbrand (Arm)
Date: Mon Sep 07 2026 - 09:47:08 EST
On 8/31/26 12:13, Sarthak Sharma wrote:
> __gup_test_ioctl() advances addr to the end of the current batch before
> checking if GUP pinned the entire requested batch. If GUP pins more than
> 0 pages but less than the requested batch size, addr still advances by
> the requested batch size.
>
> The next iteration detects the partial pinning and breaks out of the loop.
> Again gup->size is calculated using addr - gup->addr, so it also includes
> the unpinned pages of the requested batch.
>
> Calculate gup->size using the actual number of pages pinned multiplied
> by PAGE_SIZE.
>
> Fixes: 64c349f4ae78 ("mm: add infrastructure for get_user_pages_fast() benchmarking")
> Reviewed-by: Kiryl Shutsemau (Meta) <kas@xxxxxxxxxx>
> Signed-off-by: Sarthak Sharma <sarthak.sharma@xxxxxxx>
> ---
> Changes in v2:
> - Fix typo in the commit message
>
> v1: lore.kernel.org/all/20260831064808.77768-1-sarthak.sharma@xxxxxxx/
>
> mm/gup_test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/gup_test.c b/mm/gup_test.c
> index 44c1cdfb9c37..185ba3bb8ed1 100644
> --- a/mm/gup_test.c
> +++ b/mm/gup_test.c
> @@ -188,7 +188,7 @@ static int __gup_test_ioctl(unsigned int cmd,
> nr_pages = i;
>
> gup->get_delta_usec = ktime_us_delta(end_time, start_time);
> - gup->size = addr - gup->addr;
> + gup->size = nr_pages * PAGE_SIZE;
>
> /*
> * Take an un-benchmark-timed moment to verify DMA pinned
Acked-by: David Hildenbrand (Arm) <david@xxxxxxxxxx>
I assume that loop handling could get cleaned up a bit.
--
Cheers,
David