mm-skip-over-all-consecutive-none-ptes-in-do_zap_pte_range.patch removed from -mm tree
The quilt patch titled
Subject: mm: skip over all consecutive none ptes in do_zap_pte_range()
has been removed from the -mm tree. Its filename was
mm-skip-over-all-consecutive-none-ptes-in-do_zap_pte_range.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: Qi Zheng <[email protected]>
Subject: mm: skip over all consecutive none ptes in do_zap_pte_range()
Date: Wed, 4 Dec 2024 19:09:45 +0800
Skip over all consecutive none ptes in do_zap_pte_range(), which helps optimize away need_resched() + force_break + incremental pte/addr increments etc.
---
mm/memory.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-)
mm/memory.c renamed from mm/memory.c~mm-skip-over-all-consecutive-none-ptes-in-do_zap_pte_range +20 -7
@@ -1665,17 +1665,30 @@ static inline int do_zap_pte_range(struc {pte_t ptent =ptep_get (pte);int max_nr = (end - addr) /PAGE_SIZE ; +int nr =0 ; -if (pte_none (ptent)) -return 1 ; +/* Skip all consecutive none ptes */ +if (pte_none (ptent)) { +for (nr =1 ; nr < max_nr; nr++) { + ptent =ptep_get (pte + nr); +if (!pte_none (ptent)) +break ; + } + max_nr -= nr; +if (!max_nr) +return nr; + pte += nr; + addr += nr *PAGE_SIZE ; + }if (pte_present (ptent)) -return zap_present_ptes (tlb, vma, pte, ptent, max_nr, - addr, details, rss, force_flush, - force_break); + nr +=zap_present_ptes (tlb, vma, pte, ptent, max_nr, addr, + details, rss, force_flush, force_break); +else + nr +=zap_nonpresent_ptes (tlb, vma, pte, ptent, max_nr, addr, + details, rss); -return zap_nonpresent_ptes (tlb, vma, pte, ptent, max_nr, addr, - details, rss); +return nr; } static unsigned long zap_pte_range(struct mmu_gather *tlb,
_
Patches currently in -mm which might be from [email protected] are