kmemprof
========

license
-------

It is distributed under the GNU General Public License 


install
-------

download and apply the kernel patch

# cd /usr/src/linux
# patch -p1 < ~/kmemprof/patch/linux-2.4.20-kmemprof.diff
# make oldconfig

build modules

# cd kmemprof
# make

allocation call-graph profiling
-------------------------------

# cd kmemprof/
# . setrunenv
# kmemprof --load-cgprof
# kmemprof --start
# favorite_benchmark
# kmemprof --stop
# cgprof-analyzer /proc/kmemprof-cgprof/* | less

# cgprof-analyzer --dotty /proc/kmemprof-cgprof/* > cg.dot
# dotty cg.dot
# kmemprof --unload-cgprof

allocation tracing
------------------

# kmemprof --load-trace
# kmemprof --start
# favorite_benchmark
# kmemprof --stop
# trace-analyzer /proc/kmemprof-trace/{logbuf-0,strtab-0} | less
# kmemprof --unload-trace

filtering options
-----------------

# kmemprof --set-frequency 100
# kmemprof --set-filter "filter_pid=`cat /var/run/httpd.pid`"
# kmemprof --set-objfilter blkdev_requests,buffer_head

quit
----

# kmemprof --shutdown

