On Tue, Oct 12, 2021 at 09:48:52AM -0400, Steven Rostedt wrote: > On Tue, 12 Oct 2021 15:37:58 +0200 > Heiko Carstens <hca@xxxxxxxxxxxxx> wrote: > > This small series adds DYNAMIC_FTRACE_WITH_DIRECT_CALL support for > > s390 and is based on linux-next 20211012. ... > > Besides the architecture backend this also adds s390 ftrace direct > > call samples, and slightly changes config option handling a bit, so > > that options only have to be selected. This way also additional future > > architectures can easily add their trampolines to the samples. ... > > If ok, I'd like to get this upstream via the s390 tree with the next > > merge window. > > A quick look at the patches look fine to me. I'll do a bit more digging > before adding a Reviewed-by. > > One thing you may want to note, we are working on fixing direct trampolines > that conflict with the function graph tracer, and have patches that fix it. > I'm not that familiar on how ftrace works on s390, but you may want to > investigate this, because if s390 has the issues that x86 has, where you > can't have both function graph tracing and a direct trampoline on the same > function. > > See here: > > https://lore.kernel.org/all/20211008091336.33616-1-jolsa@xxxxxxxxxx/ I applied Jiri's patch set and the newly added selftest passes. Note: s390 will also get HAVE_DYNAMIC_FTRACE_WITH_ARGS support, which is required for the new selftest - this is currently only in linux-next. See commit 5740a7c71ab6 ("s390/ftrace: add HAVE_DYNAMIC_FTRACE_WITH_ARGS support") in linux-next. Also manually testing with loading the ftrace-direct test module and enabling the function graph tracer seems to work correctly: 6) + 15.138 us | } 6) | wake_up_process() { 6) | my_direct_func [ftrace_direct]() { 6) | /* waking up ksoftirqd/6-44 */ 6) 0.944 us | } 6) | try_to_wake_up() { 6) 0.185 us | kthread_is_per_cpu(); One thing to note: Jiri adds a new a sample module, which obviously will not compile for s390. Not sure if the config mechanism I propose with this patch set is the best way to address this - it would then require to add a config option for each new sample module.