Ftrace Function Graph ARM

This page holds information from Tim Bird's talk at Linux Symposium Montreal (July, 2009). Tim talked about patches against the 2.6.31-rc1 kernel tree for adding function graph tracing to the ARM architecture, for the Ftrace system.

Presentation
Here is the presentation from the Japan Linux Symposium: Here is the presentation from the Canada Linux Symposium session:
 * [[Media:Measuring-function-duration-with-ftrace-oct-2009.pdf|Measuring Function Duration with Ftrace (october 2009 update) (PDF)]]
 * [[Media:Measuring-function-duration-with-ftrace.pdf|Measuring Function Duration with Ftrace (first version) (PDF)]]

Paper
Here is Tim's paper for this work:
 * [[Media:Bird-LS-2009-Measuring-function-duration-with-ftrace.pdf|Measuring Function Duration with Ftrace Paper (PDF)]]

2.6.32-rc5 patches

 * [[Media:Ftrace-patches-oct-2009.tgz]]

To apply, extract the patches and the series file. If you have 'quilt', extract the file directly into the top level of the kernel source tree (the top directory is called 'patches'). Then do "quilt push -a".

If you don't have quilt, apply the patches manually, in the order specified in the 'series' file, with a command like: "patch -p1 <patches/foo.patch"

2.6.31-rc1 patches
The following patches were submitted to the kernel mailing list in early July 2009. There are patches against kernel version 2.6.31-rc1.


 * [[Media:Arm-sched_clock-notrace.patch]]
 * [[Media:Add-function-graph-tracer-support-for-ARM.patch]]
 * [[Media:Func-graph-duration-filter.patch]]
 * [[Media:Optimize-duration-filter-discard.patch]]

Tools
To install: * Download * rename to 'ftd': mv Ftd.txt ftd * make it executable: chmod a+x * Put it on your path somewhere: sudo mv ftd /usr/local/bin
 * [[Media:Ftd.txt]] - Function Trace Dump - post-trace analysis tool

Further Work
Base on feeback from ftrace developers on the kernel mailing list, and from other developers at the tracing mini-summit, I started working on an updated duration tracer, using a different filtering approach. This work already looks very promising, but is not ready for release yet (as of July 24, 2009).

I will be reporting on this work at ELC Europe and the Japan Linux Symposium, so look for some updates to this page in October, 2009, if this stuff hasn't been mainlined by then. Or just send me an e-mail asking about the status.