Re: [PATCH] mm: pagemap: restrict pagewalk to the requested range

From: David Rientjes
Date: Sun May 21 2023 - 19:55:21 EST


On Tue, 16 May 2023, Yuanchu Xie wrote:

> The pagewalk in pagemap_read reads one PTE past the end of the requested
> range, and stops when the buffer runs out of space. While it produces
> the right result, the extra read is unnecessary and less performant.
>
> I timed the following command before and after this patch:
> dd count=100000 if=/proc/self/pagemap of=/dev/null
> The results are consistently within 0.001s across 5 runs.
>
> Before:
> 100000+0 records in
> 100000+0 records out
> 51200000 bytes (51 MB) copied, 0.0763159 s, 671 MB/s
>
> real 0m0.078s
> user 0m0.012s
> sys 0m0.065s
>
> After:
> 100000+0 records in
> 100000+0 records out
> 51200000 bytes (51 MB) copied, 0.0487928 s, 1.0 GB/s
>
> real 0m0.050s
> user 0m0.011s
> sys 0m0.039s
>
> Signed-off-by: Yuanchu Xie <yuanchu@xxxxxxxxxx>

Acked-by: David Rientjes <rientjes@xxxxxxxxxx>