Lines Matching +full:ftrace +full:- +full:size
12 ------------
20 ftrace.txt file.
23 their kernel should make it all the way to dynamic ftrace support.
27 -------------
29 Ftrace relies on these features being implemented:
30 - STACKTRACE_SUPPORT - implement save_stack_trace()
31 - TRACE_IRQFLAGS_SUPPORT - implement include/asm/irqflags.h
35 --------------------
43 $ echo 'main(){}' | gcc -x c -S -o - - -pg | grep mcount
56 be (semi-)relevant.
61 the mcount function normally calls __mcount_internal -- the first argument is
63 size of the mcount call that is embedded in the function).
68 - "frompc" - the address bar() will use to return to foo()
69 - "selfpc" - the address bar() (with mcount() size adjustment)
103 unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE;
117 --------------------------
120 mcount function to check ftrace graph function pointers, as well as implement
126 function, call the arch-specific function ftrace_graph_caller which in turn
127 calls the arch-specific function prepare_ftrace_return. Neither of these
129 consistent across the architecture ports -- easier to compare & contrast
136 temporarily to have it point to the arch-specific function return_to_handler.
168 unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE;
169 /* passing frame pointer up is optional -- see below */
178 more information). The only architecture-specific piece in it is the setup of
205 ---------------------------
221 --------------------------------
228 Adding support for it is easy: just define the macro in asm/ftrace.h and
233 ------------------------
237 - Support HAVE_ARCH_TRACEHOOK (see arch/Kconfig).
238 - Have a NR_syscalls variable in <asm/unistd.h> that provides the number
240 - Support the TIF_SYSCALL_TRACEPOINT thread flags.
241 - Put the trace_sys_enter() and trace_sys_exit() tracepoints calls from ptrace
243 - If the system call table on this arch is more complicated than a simple array
246 - If the symbol names of the system calls do not match the function names on
247 this arch, define ARCH_HAS_SYSCALL_MATCH_SYM_NAME in asm/ftrace.h and
250 - Tag this arch as HAVE_SYSCALL_TRACEPOINTS.
254 -------------------------
256 See scripts/recordmcount.pl for more info. Just fill in the arch-specific
258 This option doesn't make much sense without also implementing dynamic ftrace.
262 -------------------
268 - asm/ftrace.h:
269 - MCOUNT_ADDR
270 - ftrace_call_adjust()
271 - struct dyn_arch_ftrace{}
272 - asm code:
273 - mcount() (new stub)
274 - ftrace_caller()
275 - ftrace_call()
276 - ftrace_stub()
277 - C code:
278 - ftrace_dyn_arch_init()
279 - ftrace_make_nop()
280 - ftrace_make_call()
281 - ftrace_update_ftrace_func()
283 First you will need to fill out some arch details in your asm/ftrace.h.
312 did already create a mcount() function earlier, dynamic ftrace only wants a
333 unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE;
368 linux/ftrace.h for the functions::
373 The rec->ip value is the address of the mcount call site that was collected
387 ------------------------------------------------
389 The function grapher needs a few tweaks in order to work with dynamic ftrace.
392 - update:
393 - ftrace_caller()
394 - ftrace_graph_call()
395 - ftrace_graph_caller()
396 - implement:
397 - ftrace_enable_ftrace_graph_caller()
398 - ftrace_disable_ftrace_graph_caller()
404 - add a nop stub after the ftrace_call location named ftrace_graph_call;
406 - update ftrace_graph_caller() to work with being called by the new
408 - ftrace_enable_ftrace_graph_caller() will runtime patch the
410 - ftrace_disable_ftrace_graph_caller() will runtime patch the