Re: [PATCH v7 02/12] introduce khugepaged_collapse_single_pmd to unify khugepaged and madvise_collapse
From: Nico Pache <npache@redhat.com>
Date: 2025-05-16 11:59:53
Also in:
linux-doc, linux-mm, lkml
On Wed, May 14, 2025 at 11:50 PM Baolin Wang [off-list ref] wrote:
On 2025/5/15 11:22, Nico Pache wrote:quoted
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.wang@linux.alibaba.com> Signed-off-by: Nico Pache <npache@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.wang@linux.alibaba.com/ (local)