> On Dec 15, 2015, at 19:53, Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote: > > On Tue, Dec 15, 2015 at 02:41:21PM +0800, yalin wang wrote: >>> On Dec 15, 2015, at 05:11, Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> wrote: >>> Anyway, I don't think it's possible to gain anything measurable from this >>> optimization. >>> >> the advantage is that if addr don’t belong to any vma, we don’t need loop all vma, >> we can break earlier if we found the most closest vma which vma->end_add > addr, > > Do you have any workload which can demonstrate the advantage? > > — i add the log in find_vma() to see the call stack , it is very efficient in mmap() / munmap / do_execve() / get_unmaped_area() / mem_cgroup_move_task()->walk_page_range()->find_vma() call , in most time the loop will break after search about 7 vm, i don’t consider the cache pollution problem in this patch, yeah, this patch will check the vm_prev->vm_end for every loop, but this only happened when tmp->vm_end > addr , if you don’t not check this , you will continue to loop to check next rb , this will also pollute the cache , so the question is which one is better ? i don’t have a better method to test this . Any good ideas about this ? how to test it ? Thanks -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href