Re: [PATCH] mm/smaps: Use vma->vm_pgoff directly when counting partial swap

From: Vlastimil Babka
Date: Thu Sep 16 2021 - 18:18:20 EST


On 9/16/21 11:58 PM, Peter Xu wrote:
> linear_page_index(vma, vma->vm_start) of a shmem vma is exactly vm_pgoff.

Could you use "vma->vm_pgoff + vma_pages(vma)" instead of the other
linear_page_index() then?

But now I wonder, is smaps_pte_hole() broken? it calls
shmem_partial_swap_usage with addresses, not pgoffs?

> Cc: Vlastimil Babka <vbabka@xxxxxxx>
> Cc: Hugh Dickins <hughd@xxxxxxxxxx>
> Signed-off-by: Peter Xu <peterx@xxxxxxxxxx>
> ---
> mm/shmem.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 96ccf6e941aa..2aef5b8e17c9 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -856,8 +856,7 @@ unsigned long shmem_swap_usage(struct vm_area_struct *vma)
> return swapped << PAGE_SHIFT;
>
> /* Here comes the more involved part */
> - return shmem_partial_swap_usage(mapping,
> - linear_page_index(vma, vma->vm_start),
> + return shmem_partial_swap_usage(mapping, vma->vm_pgoff,
> linear_page_index(vma, vma->vm_end));
> }
>
>