From: Liam R. Howlett Date: Tue, 12 Jan 2021 16:40:17 +0000 (-0500) Subject: mm/memory: Optimize free_pgtables() ma_state use X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=86875541e5fd28a83fe08efdf15ea25b4bddcb4b;p=users%2Fjedix%2Flinux-maple.git mm/memory: Optimize free_pgtables() ma_state use increment a single maple tree iterator and copy the result instead of incrementing two iterators Signed-off-by: Liam R. Howlett --- diff --git a/mm/memory.c b/mm/memory.c index f0e0adf8f491..e16041d87283 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -415,8 +415,9 @@ void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, */ while (next && next->vm_start <= vma->vm_end + PMD_SIZE && !is_vm_hugetlb_page(next)) { + *mas = ma_next; + vma = next; next = mas_find(&ma_next, ceiling - 1); - vma = mas_find(mas, ceiling - 1); BUG_ON(vma->vm_start < floor); BUG_ON(vma->vm_end -1 > ceiling - 1); unlink_anon_vmas(vma); @@ -425,7 +426,9 @@ void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, free_pgd_range(tlb, addr, vma->vm_end, floor, next ? next->vm_start : ceiling); } - } while ((vma = mas_find(mas, (ceiling - 1))) != NULL); + *mas = ma_next; + vma = next; + } while (vma); } int __pte_alloc(struct mm_struct *mm, pmd_t *pmd)