On Fri, 2019-06-14 at 11:22 -0700, Song Liu wrote: > > +#ifdef CONFIG_READ_ONLY_THP_FOR_FS > + if (shmem_file(vma->vm_file) || > + (vma->vm_file && (vm_flags & VM_DENYWRITE))) { > +#else > if (shmem_file(vma->vm_file)) { > +#endif > if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGE_PAGECACHE)) > return false; Future cleanup idea: could it be nice to hide the above behind a "vma_can_have_file_thp" function or similar? That inline function could also have a comment explaining why the check is the way it is. OTOH, I guess this series is just the first step towards more complete functionality, and things are likely to change again soon(ish). > @@ -1628,14 +1692,14 @@ static void khugepaged_scan_shmem(struct > mm_struct *mm, > result = SCAN_EXCEED_NONE_PTE; > } else { > node = khugepaged_find_target_node(); > - collapse_shmem(mm, mapping, start, hpage, > node); > + collapse_file(vma, mapping, start, hpage, > node); > } > } If for some reason you end up posting a v3 of this series, the s/_shmem/_file/ renaming could be broken out into its own patch. All the code looks good though. Acked-by: Rik van Riel <riel@xxxxxxxxxxx>