The man page of trace-cmd-report says: -f: This outputs the list of functions that have been recorded in the file. For testing, generate a trace file using the command: sudo trace-cmd record -p function_graph -l unlock_page -F sleep 1 Use kernelshark to verify that the generated trace.dat file only has the function unlock_page(). Now "trace-cmd report -f trace.dat" will give a list of functions which ftrace supports, but according to the man page this command should have only shown "unlock_page". Reported at: https://bugs.launchpad.net/bugs/1868900
Hi Sudip, The documentation may be a bit confusing. I guess it should be changed. Perhaps the documentation should say: "This outputs the list of functions and their addresses that have been saved in the file" That is, the trace-cmd record reads /proc/kallsyms and this basically displays that from the file. I don't want to change the code to reflect the document, but change the document (man page) to reflect the code. Thoughts?
Hi Steven, Agreed. Changing the documentation is the best way instead of changing how the software behaves. Maybe something like: "This outputs the list of functions and their addresses that have been saved in the file as read from /proc/kallsyms".
I'd rather not mention kallsyms, as that's more of an implementation detail than what its used for. Just a list of all the functions that are mapped to an address is what I want to express.
I guess thats ok. After a re-read of your original suggestion, that also looks ok. :)
Fixed by commit: 142a41e3df8e ("trace-cmd: Explicitly state what trace-cmd report -f does")