Re: [PATCH] mm: khugepaged: fix call hpage_collapse_scan_file() for anonymous vma

From: Matthew Wilcox
Date: Thu Jan 09 2025 - 23:32:21 EST


On Thu, Jan 09, 2025 at 09:00:24AM -0800, Yang Shi wrote:
> Thanks for catching this. It sounds a little bit weird to have vm_file for
> an anonymous VMA. I'm not sure why we should keep such special case. It
> seems shared mapping is treated as shmem file mapping. So can we set vm_file
> to NULL when mmap'ing /dev/zero for private mapping? Something like:
>
> diff --git a/drivers/char/mem.c b/drivers/char/mem.c
> index 169eed162a7f..fc332efc5c11 100644
> --- a/drivers/char/mem.c
> +++ b/drivers/char/mem.c
> @@ -527,6 +527,7 @@ static int mmap_zero(struct file *file, struct
> vm_area_struct *vma)
>         if (vma->vm_flags & VM_SHARED)
>                 return shmem_zero_setup(vma);
>         vma_set_anonymous(vma);
> +       vma->vm_file = NULL;
>         return 0;
>  }

I'm wary this might cause other bugs somewhere. rc6 is a bit late to be
introducing such a subtle change.