On Wed, May 14, 2025 at 11:50 PM Baolin Wang <baolin.w...@linux.alibaba.com> wrote: > > > > On 2025/5/15 11:22, Nico Pache wrote: > > The khugepaged daemon and madvise_collapse have two different > > implementations that do almost the same thing. > > > > Create khugepaged_collapse_single_pmd to increase code > > reuse and create an entry point for future khugepaged changes. > > > > Refactor madvise_collapse and khugepaged_scan_mm_slot to use > > the new khugepaged_collapse_single_pmd function. > > > > Reviewed-by: Baolin Wang <baolin.w...@linux.alibaba.com> > > Signed-off-by: Nico Pache <npa...@redhat.com> > > --- > > mm/khugepaged.c | 96 +++++++++++++++++++++++++------------------------ > > 1 file changed, 49 insertions(+), 47 deletions(-) > > > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > > index 806bcd8c5185..5457571d505a 100644 > > --- a/mm/khugepaged.c > > +++ b/mm/khugepaged.c > > @@ -2353,6 +2353,48 @@ static int khugepaged_scan_file(struct mm_struct > > *mm, unsigned long addr, > > return result; > > } > > > > +/* > > + * Try to collapse a single PMD starting at a PMD aligned addr, and return > > + * the results. > > + */ > > +static int khugepaged_collapse_single_pmd(unsigned long addr, > > + struct vm_area_struct *vma, bool > > *mmap_locked, > > + struct collapse_control *cc) > > +{ > > + int result = SCAN_FAIL; > > + struct mm_struct *mm = vma->vm_mm; > > + > > + if (IS_ENABLED(CONFIG_SHMEM) && !vma_is_anonymous(vma)) { > > I've removed the CONFIG_SHMEM dependency[1], please do not add it again.
Sorry I handled the conflict on the removal parts, forgot to handle the addition part... my bad. > > [1] > https://lore.kernel.org/all/ce5c2314e0368cf34bda26f9bacf01c982d4da17.1747119309.git.baolin.w...@linux.alibaba.com/ >