Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ftrace: Add CONFIG_HAVE_FTRACE_GRAPH_FUNC

Add CONFIG_HAVE_FTRACE_GRAPH_FUNC kconfig in addition to ftrace_graph_func
macro check. This is for the other feature (e.g. FPROBE) which requires to
access ftrace_regs from fgraph_ops::entryfunc() can avoid compiling if
the fgraph can not pass the valid ftrace_regs.

Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Florent Revest <revest@chromium.org>
Cc: Martin KaFai Lau <martin.lau@linux.dev>
Cc: bpf <bpf@vger.kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Alan Maguire <alan.maguire@oracle.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/173519001472.391279.1174901685282588467.stgit@devnote2
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

authored by

Masami Hiramatsu (Google) and committed by
Steven Rostedt (Google)
a762e926 8e2759da

+10
+1
arch/arm64/Kconfig
··· 216 216 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI 217 217 select HAVE_EFFICIENT_UNALIGNED_ACCESS 218 218 select HAVE_GUP_FAST 219 + select HAVE_FTRACE_GRAPH_FUNC 219 220 select HAVE_FTRACE_MCOUNT_RECORD 220 221 select HAVE_FUNCTION_TRACER 221 222 select HAVE_FUNCTION_ERROR_INJECTION
+1
arch/loongarch/Kconfig
··· 135 135 select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN 136 136 select HAVE_EXIT_THREAD 137 137 select HAVE_GUP_FAST 138 + select HAVE_FTRACE_GRAPH_FUNC 138 139 select HAVE_FTRACE_MCOUNT_RECORD 139 140 select HAVE_FUNCTION_ARG_ACCESS_API 140 141 select HAVE_FUNCTION_ERROR_INJECTION
+1
arch/powerpc/Kconfig
··· 240 240 select HAVE_EBPF_JIT 241 241 select HAVE_EFFICIENT_UNALIGNED_ACCESS 242 242 select HAVE_GUP_FAST 243 + select HAVE_FTRACE_GRAPH_FUNC 243 244 select HAVE_FTRACE_MCOUNT_RECORD 244 245 select HAVE_FUNCTION_ARG_ACCESS_API 245 246 select HAVE_FUNCTION_DESCRIPTORS if PPC64_ELF_ABI_V1
+1
arch/riscv/Kconfig
··· 146 146 select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && MMU && (CLANG_SUPPORTS_DYNAMIC_FTRACE || GCC_SUPPORTS_DYNAMIC_FTRACE) 147 147 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS 148 148 select HAVE_DYNAMIC_FTRACE_WITH_ARGS if HAVE_DYNAMIC_FTRACE 149 + select HAVE_FTRACE_GRAPH_FUNC 149 150 select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL 150 151 select HAVE_FUNCTION_GRAPH_TRACER 151 152 select HAVE_FUNCTION_GRAPH_FREGS
+1
arch/x86/Kconfig
··· 235 235 select HAVE_EXIT_THREAD 236 236 select HAVE_GUP_FAST 237 237 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE 238 + select HAVE_FTRACE_GRAPH_FUNC if HAVE_FUNCTION_GRAPH_TRACER 238 239 select HAVE_FTRACE_MCOUNT_RECORD 239 240 select HAVE_FUNCTION_GRAPH_FREGS if HAVE_FUNCTION_GRAPH_TRACER 240 241 select HAVE_FUNCTION_GRAPH_TRACER if X86_32 || (X86_64 && DYNAMIC_FTRACE)
+5
kernel/trace/Kconfig
··· 34 34 config HAVE_FUNCTION_GRAPH_FREGS 35 35 bool 36 36 37 + config HAVE_FTRACE_GRAPH_FUNC 38 + bool 39 + help 40 + True if ftrace_graph_func() is defined. 41 + 37 42 config HAVE_DYNAMIC_FTRACE 38 43 bool 39 44 help