Re: [PATCH 0/4] s390: DYNAMIC_FTRACE_WITH_DIRECT_CALL support

Jiri Olsa
2021-10-12T17:05:01Z

On Tue, Oct 12, 2021 at 04:59:02PM +0200, Heiko Carstens wrote:
> 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@linux.ibm.com> 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@kernel.org/
>
> I applied Jiri's patch set and the newly added selftest passes.

nice, could I have your Tested-by? ;-)

thanks,
jirka

>
> 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.
>