From 6b6435efbb3089138c10c05961e28416a804e82d Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Wed, 20 Jul 2022 02:17:50 +0000 Subject: [PATCH] mm: optimize find_exact_vma() to use vma_lookup() Use vma_lookup() to walk the tree to the start value requested. If the vma at the start does not match, then the answer is NULL and there is no need to look at the next vma the way that find_vma() would. Link: https://lkml.kernel.org/r/20220504011345.662299-5-Liam.Howlett@oracle.com Link: https://lkml.kernel.org/r/20220621204632.3370049-21-Liam.Howlett@oracle.com Link: https://lkml.kernel.org/r/20220720021727.17018-21-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett Reviewed-by: Vlastimil Babka Cc: Catalin Marinas Cc: David Howells Cc: "Matthew Wilcox (Oracle)" Cc: SeongJae Park Cc: Will Deacon Cc: Davidlohr Bueso Cc: David Hildenbrand Cc: Hulk Robot Cc: Lukas Bulwahn Cc: Sven Schnelle Cc: Yang Yingliang Signed-off-by: Andrew Morton --- include/linux/mm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 2f6be6f16d9a..0df9a8a96b3c 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2814,7 +2814,7 @@ static inline unsigned long vma_pages(struct vm_area_struct *vma) static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, unsigned long vm_start, unsigned long vm_end) { - struct vm_area_struct *vma = find_vma(mm, vm_start); + struct vm_area_struct *vma = vma_lookup(mm, vm_start); if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end)) vma = NULL; -- 2.50.1