On Wed 18-11-15 10:29:34, Vlastimil Babka wrote: > Following the previous patch, further reduction of /proc/pid/smaps cost is > possible for private writable shmem mappings with unpopulated areas where > the page walk invokes the .pte_hole function. We can use radix tree iterator > for each such area instead of calling find_get_entry() in a loop. This is > possible at the extra maintenance cost of introducing another shmem function > shmem_partial_swap_usage(). > > To demonstrate the diference, I have measured this on a process that creates a > private writable 2GB mapping of a partially swapped out /dev/shm/file (which > cannot employ the optimizations from the prvious patch) and doesn't populate it > at all. I time how long does it take to cat /proc/pid/smaps of this process 100 > times. > > Before this patch: > > real 0m3.831s > user 0m0.180s > sys 0m3.212s > > After this patch: > > real 0m1.176s > user 0m0.180s > sys 0m0.684s > > The time is similar to case where radix tree iterator is employed on the whole > mapping. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> Looks good as well. Acked-by: Michal Hocko <mhocko@xxxxxxxx> [...] -- Michal Hocko SUSE Labs -- 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>