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 <redacted>
Looks good as well.
Acked-by: Michal Hocko <mhocko@suse.com>
[...]
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>