Generated using FlameGraph and SystemTap:
stap -s 32 -D MAXBACKTRACE=100 -D MAXSTRINGLEN=4096 -D MAXMAPENTRIES=10240 -D MAXACTION=10000 -D STP_OVERLOAD_THRESHOLD=5000000000 \ -ve 'probe kernel.function ("do_wp_page") { if (target () == pid ()) { print_usyms (ubacktrace ()); printf ("\t%d\n", mem_page_size ()); } }' \ --ldd -d /usr/sbin/NetworkManager $(ls /usr/lib*/NetworkManager/*.so |sed 's/^/-d /') -c 'NetworkManager --debug' >NetworkManager-flame.raw FlameGraph/stackcollapse-stap.pl NetworkManager-flame.raw >NetworkManager-flame.folded FlameGraph/flamegraph.pl <NetworkManager-flame.raw >NetworkManager-flame.svg
The y-axis is the call nesting depth, the scale on x-graph represents the amount of memory allocated. The segments are in no particular order. The sample size is one byte, at x86_64 page size granularity (as it measured page faults). Colors are not significant.