Hm it seems you missed some places: mm/khugepaged.c: In function ‘collapse_scan_mm_slot’: mm/khugepaged.c:2466:43: error: implicit declaration of function ‘hpage_collapse_scan_file’; did you mean ‘collapse_scan_file’? [-Wimplicit-function-declaration] 2466 | *result = hpage_collapse_scan_file(mm, | ^~~~~~~~~~~~~~~~~~~~~~~~ | collapse_scan_file mm/khugepaged.c:2471:45: error: implicit declaration of function ‘hpage_collapse_test_exit_or_disable’; did you mean ‘collapse_test_exit_or_disable’? [-Wimplicit-function-declaration] 2471 | if (hpage_collapse_test_exit_or_disable(mm)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | collapse_test_exit_or_disable mm/khugepaged.c:2480:43: error: implicit declaration of function ‘hpage_collapse_scan_pmd’; did you mean ‘collapse_scan_pmd’? [-Wimplicit-function-declaration] 2480 | *result = hpage_collapse_scan_pmd(mm, vma, | ^~~~~~~~~~~~~~~~~~~~~~~ | collapse_scan_pmd mm/khugepaged.c: At top level: mm/khugepaged.c:2278:12: error: ‘collapse_scan_file’ defined but not used [-Werror=unused-function] 2278 | static int collapse_scan_file(struct mm_struct *mm, unsigned long addr, | ^~~~~~~~~~~~~~~~~~ mm/khugepaged.c:1271:12: error: ‘collapse_scan_pmd’ defined but not used [-Werror=unused-function] 1271 | static int collapse_scan_pmd(struct mm_struct *mm, | ^~~~~~~~~~~~~~~~~
Other than this it LGTM, so once you fix this stuff up you can get a tag :) On Sun, Jul 13, 2025 at 06:31:54PM -0600, Nico Pache wrote: > The hpage_collapse functions describe functions used by madvise_collapse > and khugepaged. remove the unnecessary hpage prefix to shorten the > function name. > > Reviewed-by: Zi Yan <z...@nvidia.com> > Reviewed-by: Baolin Wang <baolin.w...@linux.alibaba.com> > Signed-off-by: Nico Pache <npa...@redhat.com> > --- > mm/khugepaged.c | 46 +++++++++++++++++++++++----------------------- > 1 file changed, 23 insertions(+), 23 deletions(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index a55fb1dcd224..eb0babb51868 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -402,14 +402,14 @@ void __init khugepaged_destroy(void) > kmem_cache_destroy(mm_slot_cache); > } > > -static inline int hpage_collapse_test_exit(struct mm_struct *mm) > +static inline int collapse_test_exit(struct mm_struct *mm) > { > return atomic_read(&mm->mm_users) == 0; > } > > -static inline int hpage_collapse_test_exit_or_disable(struct mm_struct *mm) > +static inline int collapse_test_exit_or_disable(struct mm_struct *mm) > { > - return hpage_collapse_test_exit(mm) || > + return collapse_test_exit(mm) || > test_bit(MMF_DISABLE_THP, &mm->flags); > } > > @@ -444,7 +444,7 @@ void __khugepaged_enter(struct mm_struct *mm) > int wakeup; > > /* __khugepaged_exit() must not run from under us */ > - VM_BUG_ON_MM(hpage_collapse_test_exit(mm), mm); > + VM_BUG_ON_MM(collapse_test_exit(mm), mm); > if (unlikely(test_and_set_bit(MMF_VM_HUGEPAGE, &mm->flags))) > return; > > @@ -503,7 +503,7 @@ void __khugepaged_exit(struct mm_struct *mm) > } else if (mm_slot) { > /* > * This is required to serialize against > - * hpage_collapse_test_exit() (which is guaranteed to run > + * collapse_test_exit() (which is guaranteed to run > * under mmap sem read mode). Stop here (after we return all > * pagetables will be destroyed) until khugepaged has finished > * working on the pagetables under the mmap_lock. > @@ -838,7 +838,7 @@ struct collapse_control khugepaged_collapse_control = { > .is_khugepaged = true, > }; > > -static bool hpage_collapse_scan_abort(int nid, struct collapse_control *cc) > +static bool collapse_scan_abort(int nid, struct collapse_control *cc) > { > int i; > > @@ -873,7 +873,7 @@ static inline gfp_t > alloc_hugepage_khugepaged_gfpmask(void) > } > > #ifdef CONFIG_NUMA > -static int hpage_collapse_find_target_node(struct collapse_control *cc) > +static int collapse_find_target_node(struct collapse_control *cc) > { > int nid, target_node = 0, max_value = 0; > > @@ -892,7 +892,7 @@ static int hpage_collapse_find_target_node(struct > collapse_control *cc) > return target_node; > } > #else > -static int hpage_collapse_find_target_node(struct collapse_control *cc) > +static int collapse_find_target_node(struct collapse_control *cc) > { > return 0; > } > @@ -912,7 +912,7 @@ static int hugepage_vma_revalidate(struct mm_struct *mm, > unsigned long address, > struct vm_area_struct *vma; > unsigned long tva_flags = cc->is_khugepaged ? TVA_ENFORCE_SYSFS : 0; > > - if (unlikely(hpage_collapse_test_exit_or_disable(mm))) > + if (unlikely(collapse_test_exit_or_disable(mm))) > return SCAN_ANY_PROCESS; > > *vmap = vma = find_vma(mm, address); > @@ -985,7 +985,7 @@ static int check_pmd_still_valid(struct mm_struct *mm, > > /* > * Bring missing pages in from swap, to complete THP collapse. > - * Only done if hpage_collapse_scan_pmd believes it is worthwhile. > + * Only done if khugepaged_scan_pmd believes it is worthwhile. > * > * Called and returns without pte mapped or spinlocks held. > * Returns result: if not SCAN_SUCCEED, mmap_lock has been released. > @@ -1071,7 +1071,7 @@ static int alloc_charge_folio(struct folio **foliop, > struct mm_struct *mm, > { > gfp_t gfp = (cc->is_khugepaged ? alloc_hugepage_khugepaged_gfpmask() : > GFP_TRANSHUGE); > - int node = hpage_collapse_find_target_node(cc); > + int node = collapse_find_target_node(cc); > struct folio *folio; > > folio = __folio_alloc(gfp, HPAGE_PMD_ORDER, node, &cc->alloc_nmask); > @@ -1257,7 +1257,7 @@ static int collapse_huge_page(struct mm_struct *mm, > unsigned long address, > return result; > } > > -static int hpage_collapse_scan_pmd(struct mm_struct *mm, > +static int collapse_scan_pmd(struct mm_struct *mm, > struct vm_area_struct *vma, > unsigned long address, bool *mmap_locked, > struct collapse_control *cc) > @@ -1371,7 +1371,7 @@ static int hpage_collapse_scan_pmd(struct mm_struct *mm, > * hit record. > */ > node = folio_nid(folio); > - if (hpage_collapse_scan_abort(node, cc)) { > + if (collapse_scan_abort(node, cc)) { > result = SCAN_SCAN_ABORT; > goto out_unmap; > } > @@ -1440,7 +1440,7 @@ static void collect_mm_slot(struct khugepaged_mm_slot > *mm_slot) > > lockdep_assert_held(&khugepaged_mm_lock); > > - if (hpage_collapse_test_exit(mm)) { > + if (collapse_test_exit(mm)) { > /* free mm_slot */ > hash_del(&slot->hash); > list_del(&slot->mm_node); > @@ -1733,7 +1733,7 @@ static void retract_page_tables(struct address_space > *mapping, pgoff_t pgoff) > if (find_pmd_or_thp_or_none(mm, addr, &pmd) != SCAN_SUCCEED) > continue; > > - if (hpage_collapse_test_exit(mm)) > + if (collapse_test_exit(mm)) > continue; > /* > * When a vma is registered with uffd-wp, we cannot recycle > @@ -2255,7 +2255,7 @@ static int collapse_file(struct mm_struct *mm, unsigned > long addr, > return result; > } > > -static int hpage_collapse_scan_file(struct mm_struct *mm, unsigned long addr, > +static int collapse_scan_file(struct mm_struct *mm, unsigned long addr, > struct file *file, pgoff_t start, > struct collapse_control *cc) > { > @@ -2312,7 +2312,7 @@ static int hpage_collapse_scan_file(struct mm_struct > *mm, unsigned long addr, > } > > node = folio_nid(folio); > - if (hpage_collapse_scan_abort(node, cc)) { > + if (collapse_scan_abort(node, cc)) { > result = SCAN_SCAN_ABORT; > folio_put(folio); > break; > @@ -2362,7 +2362,7 @@ static int hpage_collapse_scan_file(struct mm_struct > *mm, unsigned long addr, > return result; > } > > -static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result, > +static unsigned int collapse_scan_mm_slot(unsigned int pages, int *result, > struct collapse_control *cc) > __releases(&khugepaged_mm_lock) > __acquires(&khugepaged_mm_lock) > @@ -2400,7 +2400,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned > int pages, int *result, > goto breakouterloop_mmap_lock; > > progress++; > - if (unlikely(hpage_collapse_test_exit_or_disable(mm))) > + if (unlikely(collapse_test_exit_or_disable(mm))) > goto breakouterloop; > > vma_iter_init(&vmi, mm, khugepaged_scan.address); > @@ -2408,7 +2408,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned > int pages, int *result, > unsigned long hstart, hend; > > cond_resched(); > - if (unlikely(hpage_collapse_test_exit_or_disable(mm))) { > + if (unlikely(collapse_test_exit_or_disable(mm))) { > progress++; > break; > } > @@ -2430,7 +2430,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned > int pages, int *result, > bool mmap_locked = true; > > cond_resched(); > - if (unlikely(hpage_collapse_test_exit_or_disable(mm))) > + if (unlikely(collapse_test_exit_or_disable(mm))) > goto breakouterloop; > > VM_BUG_ON(khugepaged_scan.address < hstart || > @@ -2490,7 +2490,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned > int pages, int *result, > * Release the current mm_slot if this mm is about to die, or > * if we scanned all vmas of this mm. > */ > - if (hpage_collapse_test_exit(mm) || !vma) { > + if (collapse_test_exit(mm) || !vma) { > /* > * Make sure that if mm_users is reaching zero while > * khugepaged runs here, khugepaged_exit will find > @@ -2544,7 +2544,7 @@ static void khugepaged_do_scan(struct collapse_control > *cc) > pass_through_head++; > if (khugepaged_has_work() && > pass_through_head < 2) > - progress += khugepaged_scan_mm_slot(pages - progress, > + progress += collapse_scan_mm_slot(pages - progress, > &result, cc); > else > progress = pages; > -- > 2.50.0 >