On 12/1/21 15:30, Liam Howlett wrote: > From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxx> > Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> 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)