On Wed, Oct 27, 2021 at 1:53 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, 27 Oct 2021 13:44:37 -0700 Yang Shi <shy828301@xxxxxxxxx> wrote: > > > > > --- a/mm/khugepaged.c > > > > +++ b/mm/khugepaged.c > > > > @@ -445,22 +445,25 @@ static bool hugepage_vma_check(struct vm_area_struct *vma, > > > > if (!transhuge_vma_enabled(vma, vm_flags)) > > > > return false; > > > > > > > > - /* Enabled via shmem mount options or sysfs settings. */ > > > > - if (shmem_file(vma->vm_file) && shmem_huge_enabled(vma)) { > > > > + if (vma->vm_file) > > > > return IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - vma->vm_pgoff, > > > > HPAGE_PMD_NR); > > > > > > Am I misreading this? If we return here for vma->vm_file, the following > > > logic (shmem_file(), etc.) would be skipped, no? > > > > Oh, yes, you are right. My mistake. > > > > Andrew, > > > > Could you please apply the below fix? > > um, how well tested are these changes? I has this fix on my test machine, but somehow forgot to fold it into the original patch. The whole fix was tested by opening /dev/nullb0 readonly and mapping with PROT_EXEC, the THP was not collapsed anymore.