On 02/03/2014 08:58 PM, Minchan Kim wrote: > Of course, every thread could do madvise(MADV_FREE) in parallel because > VM in Linux doesn't need write-side semaphore but read-side semaphore. > Additionally, page faulting also needs read-side semaphore so > page faulting, madvise(MADV_FREE) in threads could be done in parallel > without any scalability issue if they don't overlap same virtual addresses > within 4M range because they need a page table lock but it's very > unlikely in allocator, IMO. In practice, things holding mmap_sem for read don't scale well, either, especially when their hold times are short. It's _better_ than if they took it for write, but still doesn't scale well. Check out the red (threads) line in "Anonymous memory page fault" for instance: > https://www.sr71.net/~dave/intel/willitscale/systems/bigbox/3.13.0-slub-08988-gd891ea2-dirty/foo.html -- 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=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>