Thread (50 messages) 50 messages, 6 authors, 2025-07-02

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)
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help