Le 14/12/2021 à 15:01, Steven Rostedt a écrit : > On Tue, 14 Dec 2021 08:35:14 +0100 > Christophe Leroy <christophe.leroy@xxxxxxxxxx> wrote: > >>> Will continue investigating. >>> >> >> trace_selftest_startup_function_graph() calls register_ftrace_direct() >> which returns -ENOSUPP because powerpc doesn't select >> CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS. >> >> Should TEST_DIRECT_TRAMP depend on CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS ? > > Yes, that should be: > > #if defined(CONFIG_DYNAMIC_FTRACE) && \ > defined(CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) > #define TEST_DIRECT_TRAMP > noinline __noclone static void trace_direct_tramp(void) { } > #endif > > > And make it test it with or without the args. > Shouldn't it just be: #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS Because register_ftrace_direct() depends on that symbol, so if you have CONFIG_DYNAMIC_FTRACE && CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS but not DYNAMIC_FTRACE_WITH_REGS then CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS is unset and register_ftrace_direct() returns -ENOTSUPP Christophe