Message ID | 20211201142918.921493-16-Liam.Howlett@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Introducing the Maple Tree | expand |
Re: subject. It already uses the Maple Tree via find_vma(). So more accurate would be e.g. "to use mtree_load()"? Note there's also the side-effect of not using vmacache anymore (which is still used in find_vma()), thus again potentially biasing results of later vmacache removal. But seems like vma_lookup() is not used from hotpaths, so it should be fine. On 12/1/21 15:29, Liam Howlett wrote: > From: "Matthew Wilcox (Oracle)" <willy@infradead.org> > > Unlike the rbtree, the Maple Tree will return a NULL if there's > nothing at a particular address. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> > Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > include/linux/mm.h | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 4d5ab70b1f6d..c28bd97a4ecd 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -2845,12 +2845,7 @@ struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, > static inline > struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) > { > - struct vm_area_struct *vma = find_vma(mm, addr); > - > - if (vma && addr < vma->vm_start) > - vma = NULL; > - > - return vma; > + return mtree_load(&mm->mm_mt, addr); > } > > static inline unsigned long vm_start_gap(struct vm_area_struct *vma)
* Vlastimil Babka <vbabka@suse.cz> [211227 11:58]: > Re: subject. It already uses the Maple Tree via find_vma(). So more accurate > would be e.g. "to use mtree_load()"? Agreed, I will change the subject to better reflect this change. > > Note there's also the side-effect of not using vmacache anymore (which is > still used in find_vma()), thus again potentially biasing results of later > vmacache removal. But seems like vma_lookup() is not used from hotpaths, so > it should be fine. yes, this will affect the testing of the single patch removing the VMA if left this way. I'd like to point out that the testing of the VMA cache removal was done with the entire patch set, so the results are still valid. > > On 12/1/21 15:29, Liam Howlett wrote: > > From: "Matthew Wilcox (Oracle)" <willy@infradead.org> > > > > Unlike the rbtree, the Maple Tree will return a NULL if there's > > nothing at a particular address. > > > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> > > Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> > > Acked-by: Vlastimil Babka <vbabka@suse.cz> > > > --- > > include/linux/mm.h | 7 +------ > > 1 file changed, 1 insertion(+), 6 deletions(-) > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index 4d5ab70b1f6d..c28bd97a4ecd 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -2845,12 +2845,7 @@ struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, > > static inline > > struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) > > { > > - struct vm_area_struct *vma = find_vma(mm, addr); > > - > > - if (vma && addr < vma->vm_start) > > - vma = NULL; > > - > > - return vma; > > + return mtree_load(&mm->mm_mt, addr); > > } > > > > static inline unsigned long vm_start_gap(struct vm_area_struct *vma) > > > -- > maple-tree mailing list > maple-tree@lists.infradead.org > https://lists.infradead.org/mailman/listinfo/maple-tree
diff --git a/include/linux/mm.h b/include/linux/mm.h index 4d5ab70b1f6d..c28bd97a4ecd 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2845,12 +2845,7 @@ struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, static inline struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma = find_vma(mm, addr); - - if (vma && addr < vma->vm_start) - vma = NULL; - - return vma; + return mtree_load(&mm->mm_mt, addr); } static inline unsigned long vm_start_gap(struct vm_area_struct *vma)