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.

[1] https://lore.kernel.org/all/ce5c2314e0368cf34bda26f9bacf01c982d4da17.1747119309.git.baolin.w...@linux.alibaba.com/

Reply via email to