There is some info in "Secrets of the Ftrace function tracer" article, January 20, 2010 by Steven Rostedt: https://lwn.net/Articles/370423/
A list of functions that can be added to the filter files is shown in the available_filter_functions
file. This list of functions was derived from the list of stored mcount
callers previously mentioned.
Set of functions listed in the file depends on kernel compilation options (please check them in /boot/config* or in /proc/config.gz and add result to the question):
CONFIG_FUNCTION_TRACER
CONFIG_DYNAMIC_FTRACE
CONFIG_FUNCTION_GRAPH_TRACER
There is more info about mcount in earlier article of series: https://lwn.net/Articles/365835/ Debugging the kernel using Ftrace - part 1, December 2009, Steven Rostedt:
One of the most powerful tracers of Ftrace is the function tracer. It uses the -pg option of gcc to have every function in the kernel call a special function "mcount()" .. When CONFIG_DYNAMIC_FTRACE is configured the call is converted to a NOP at boot time to keep the system running at 100% performance. During compilation the mcount() call-sites are recorded.
Can you also check files in /sys/kernel/debug/tracing/events/syscalls/sys_enter_perf_event_open/ ?
Syscalls are available to ftrace not as functions, but as events (example from opensourceforu.com/2010/12/kernel-tracing-with-ftrace-part-2/):
trace-cmd record -e syscalls ls ##Initiate tracing on the syscall 'ls'
##(A file called trace.dat gets created in the current directory.)
trace-cmd report ## displays the report from trace.dat
For me trace-cmd record -e syscalls perf stat ls -d .
catches calls to perf_event_open
.