NetworkManager memory usage profile flame graph

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.