mm-use-inline-helper-functions-instead-of-ugly-macros.patch removed from -mm tree
The quilt patch titled
Subject: mm: use inline helper functions instead of ugly macros
has been removed from the -mm tree. Its filename was
mm-use-inline-helper-functions-instead-of-ugly-macros.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Baolin Wang <[email protected]>
Subject: mm: use inline helper functions instead of ugly macros
Date: Fri, 6 Mar 2026 14:43:37 +0800
Patch series "support batched checking of the young flag for MGLRU", v3.
This is a follow-up to the previous work [1], to support batched checking of the young flag for MGLRU.
Similarly, batched checking of young flag for large folios can improve performance during large-folio reclamation when MGLRU is enabled. I observed noticeable performance improvements (see patch 5) on an Arm64 machine that supports contiguous PTEs. All mm-selftests are passed.
Patch 1 - 3: cleanup patches.
Patch 4: add a new generic batched PTE helper: test_and_clear_young_ptes(). Patch 5: support batched young flag checking for MGLRU.
Patch 6: implement the Arm64 arch-specific test_and_clear_young_ptes().
This patch (of 6):
People have already complained that these *_clear_young_notify() related macros are very ugly, so let's use inline helpers to make them more readable.
In addition, we cannot implement these inline helper functions in the mmu_notifier.h file, because some arch-specific files will include the mmu_notifier.h, which introduces header compilation dependencies and causes build errors (e.g., arch/arm64/include/asm/tlbflush.h). Moreover, since these functions are only used in the mm, implementing these inline helpers in the mm/internal.h header seems reasonable.
---
include/linux/mmu_notifier.h | 54 --------------------------------- mm/internal.h | 52 +++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 54 deletions(-)
include/linux/mmu_notifier.h renamed from include/linux/mmu_notifier.h~mm-use-inline-helper-functions-instead-of-ugly-macros +0 -54
@@ -516,55 +516,6 @@ static inline void mmu_notifier_range_in range->owner = owner; } -#define clear_flush_young_ptes_notify (__vma, __address, __ptep, __nr) \ -({ \ - int __young; \ - struct vm_area_struct *___vma = __vma; \ - unsigned long ___address = __address; \ - unsigned int ___nr = __nr; \ - __young = clear_flush_young_ptes(___vma, ___address, __ptep, ___nr); \ - __young |= mmu_notifier_clear_flush_young(___vma->vm_mm, \ - ___address, \ - ___address + \ - ___nr * PAGE_SIZE); \ - __young; \ -}) - -#define pmdp_clear_flush_young_notify (__vma, __address, __pmdp) \ -({ \ - int __young; \ - struct vm_area_struct *___vma = __vma; \ - unsigned long ___address = __address; \ - __young = pmdp_clear_flush_young(___vma, ___address, __pmdp); \ - __young |= mmu_notifier_clear_flush_young(___vma->vm_mm, \ - ___address, \ - ___address + \ - PMD_SIZE); \ - __young; \ -}) - -#define ptep_clear_young_notify (__vma, __address, __ptep) \ -({ \ - int __young; \ - struct vm_area_struct *___vma = __vma; \ - unsigned long ___address = __address; \ - __young = ptep_test_and_clear_young(___vma, ___address, __ptep);\ - __young |= mmu_notifier_clear_young(___vma->vm_mm, ___address, \ - ___address + PAGE_SIZE); \ - __young; \ -}) - -#define pmdp_clear_young_notify (__vma, __address, __pmdp) \ -({ \ - int __young; \ - struct vm_area_struct *___vma = __vma; \ - unsigned long ___address = __address; \ - __young = pmdp_test_and_clear_young(___vma, ___address, __pmdp);\ - __young |= mmu_notifier_clear_young(___vma->vm_mm, ___address, \ - ___address + PMD_SIZE); \ - __young; \ -}) -#else /* CONFIG_MMU_NOTIFIER */ struct mmu_notifier_range {
@@ -652,11 +603,6 @@ static inline void mmu_notifier_subscrip#define mmu_notifier_range_update_to_read_only (r) false -#define clear_flush_young_ptes_notify clear_flush_young_ptes -#define pmdp_clear_flush_young_notify pmdp_clear_flush_young -#define ptep_clear_young_notify ptep_test_and_clear_young -#define pmdp_clear_young_notify pmdp_test_and_clear_young -static inline void mmu_notifier_synchronize (void ) { }
mm/internal.h renamed from mm/internal.h~mm-use-inline-helper-functions-instead-of-ugly-macros +52 -0
62 lines not on this page · raw message
_
Patches currently in -mm which might be from [email protected] are
mm-filemap-fix-nr_pages-calculation-overflow-in-filemap_map_pages.patch mm-vmscan-fix-dirty-folios-throttling-on-cgroup-v1-for-mglru.patch