[PATCH v4 64/66] nommu: Remove uses of VMA linked list

Vlastimil Babka vbabka at suse.cz
Thu Jan 20 07:06:21 PST 2022


On 12/1/21 15:30, Liam Howlett wrote:
> From: "Matthew Wilcox (Oracle)" <willy at infradead.org>
> 
> Use the maple tree or VMA iterator instead.  This is faster and will
> allow us to shrink the VMA.
> 
> Signed-off-by: Matthew Wilcox (Oracle) <willy at infradead.org>
> Signed-off-by: Liam R. Howlett <Liam.Howlett at Oracle.com>

Acked-by: Vlastimil Babka <vbabka at suse.cz>

But I think some fixup needed:

> @@ -1456,12 +1458,14 @@ void exit_mmap(struct mm_struct *mm)
>  
>  	mm->total_vm = 0;
>  
> -	while ((vma = mm->mmap)) {
> -		mm->mmap = vma->vm_next;
> +	mmap_write_lock(mm);

If locking was missing, should have been added sooner than now?

> +	for_each_vma(vmi, vma) {
>  		delete_vma_from_mm(vma);
>  		delete_vma(mm, vma);
>  		cond_resched();
>  	}
> +	__mt_destroy(&mm->mm_mt);

And this at the point mm_mt was added?

> +	mmap_write_unlock(mm);
>  }
>  
>  int vm_brk(unsigned long addr, unsigned long len)




More information about the maple-tree mailing list