116444a8aSArnaldo Carvalho de Melo# 216444a8aSArnaldo Carvalho de Melo# Architectures that offer an FTRACE implementation should select HAVE_FTRACE: 316444a8aSArnaldo Carvalho de Melo# 416444a8aSArnaldo Carvalho de Meloconfig HAVE_FTRACE 516444a8aSArnaldo Carvalho de Melo bool 6bc0c38d1SSteven Rostedt 7bc0c38d1SSteven Rostedtconfig TRACING 8bc0c38d1SSteven Rostedt bool 9bc0c38d1SSteven Rostedt select DEBUG_FS 10bc0c38d1SSteven Rostedt 111b29b018SSteven Rostedtconfig FTRACE 121b29b018SSteven Rostedt bool "Kernel Function Tracer" 131b29b018SSteven Rostedt depends on DEBUG_KERNEL && HAVE_FTRACE 141b29b018SSteven Rostedt select FRAME_POINTER 151b29b018SSteven Rostedt select TRACING 16*35e8e302SSteven Rostedt select CONTEXT_SWITCH_TRACER 171b29b018SSteven Rostedt help 181b29b018SSteven Rostedt Enable the kernel to trace every kernel function. This is done 191b29b018SSteven Rostedt by using a compiler feature to insert a small, 5-byte No-Operation 201b29b018SSteven Rostedt instruction to the beginning of every kernel function, which NOP 211b29b018SSteven Rostedt sequence is then dynamically patched into a tracer call when 221b29b018SSteven Rostedt tracing is enabled by the administrator. If it's runtime disabled 231b29b018SSteven Rostedt (the bootup default), then the overhead of the instructions is very 241b29b018SSteven Rostedt small and not measurable even in micro-benchmarks. 25*35e8e302SSteven Rostedt 26*35e8e302SSteven Rostedtconfig CONTEXT_SWITCH_TRACER 27*35e8e302SSteven Rostedt bool "Trace process context switches" 28*35e8e302SSteven Rostedt depends on DEBUG_KERNEL 29*35e8e302SSteven Rostedt select TRACING 30*35e8e302SSteven Rostedt select MARKERS 31*35e8e302SSteven Rostedt help 32*35e8e302SSteven Rostedt This tracer gets called from the context switch and records 33*35e8e302SSteven Rostedt all switching of tasks. 34*35e8e302SSteven Rostedt 35