Subject: Re: [PATCH] Remove kretprobe_trampoline_holder.

From: Michael Ellerman <[email-masked]>
Date: Tue, 29 Mar 2016 10:45:57 +1100

On Mon, 2016-03-28 at 17:29 -0300, Thiago Jung Bauermann wrote:

> Am Montag, 28 März 2016, 17:06:32 schrieb Thiago Jung Bauermann:

> > /home/bauermann/src/linux/tools/testing/selftests/ftrace/test.d/kprobe/kp
> > robe_ftrace.tc: line 9: echo: write error: Invalid argument
> >
> >     But even without my patch that testcase fails in the same way, so this
> > is not a problem introduced by the patch.
>
> That failure is on this line of kprobe_ftrace.tc:
>
> echo _do_fork > set_ftrace_filter
>
> This fails because on powerpc the function symbol has a dot prepended to its
> name:

Only on big endian powerpc. (Or actually ABI < ELFv2, but in practice that
means BE)

> # cat available_filter_functions | grep _do_fork
> ._do_fork
>
> If I do s/_do_fork/._do_fork/ in kprobe_ftrace.tc then all ftrace kprobe
> tests pass:
>
> $ sudo ./ftracetest test.d/kprobe/
> === Ftrace unit tests ===
> [1] Kprobe dynamic event - adding and removing  [PASS]
> [2] Kprobe dynamic event - busy event check     [PASS]
> [3] Kprobe dynamic event with arguments [PASS]
> [4] Kprobe dynamic event with function tracer   [PASS]
> [5] Kretprobe dynamic event with arguments      [PASS]

OK. We fixed that in 'perf probe', but not if you're using the sysfs file
directly.

Do you want to write a patch for ftracetest to try and handle it? I guess you'd
try "_do_fork" and if that fails then try "._do_fork", and maybe only if uname -m
says you're running on ppc64?

cheers