Re: kernel: tracepoints: add support for relative references

From: Ard Biesheuvel
Date: Wed Sep 20 2017 - 15:29:34 EST


On 19 September 2017 at 10:55, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> On Tue, 5 Sep 2017 13:49:52 +0100
> Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote:
>
>> OK, thanks for spotting that.
>>
>> I will fix and resend after the merge window closes.
>
> I also just applied your patches (to 4.13-rc7) and ran the ftrace self
> tests in tools/testing/selftests/ftrace/ftracetest and it triggered
> this:
>

Thanks Steven.

I'm a bit puzzled how changing the struct tracepoint pointers into
relative references would result in a behavioral change like this, but
I take it this doesn't occur with a plain -rc7 build?
(Just asking)

Unfortunately, I am failing to reproduce this running a kernel built
from your .config on a 4-way SMP QEMU VM running under KVM (log below)

I do get a lot of trace_kprobe errors (attached), but I get these with
a plain v4.13-rc7 as well, so that seems unrelated.

So I will update my series to address the issue reported by Jessica,
and I would appreciate it if you can check whether that version still
triggers this issue, but there is not a whole lot I can do to fix it
atm.

Thanks,
Ard.





$ sudo tools/testing/selftests/ftrace/ftracetest
=== Ftrace unit tests ===
[1] Basic trace file check [PASS]
[2] Basic test for tracers [PASS]
[3] Basic trace clock test [PASS]
[4] Basic event tracing check [PASS]
[5] event tracing - enable/disable with event level files [PASS]
[6] event tracing - restricts events based on pid [PASS]
[7] event tracing - enable/disable with subsystem level files [PASS]
[8] event tracing - enable/disable with top level files [PASS]
[9] ftrace - function graph filters with stack tracer [PASS]
[10] ftrace - function graph filters [PASS]
[11] ftrace - test for function event triggers [PASS]
[12] ftrace - function glob filters [PASS]
[13] ftrace - function pid filters [PASS]
[14] ftrace - function profiler with function tracing [PASS]
[15] ftrace - test reading of set_ftrace_filter [PASS]
[16] ftrace - test for function traceon/off triggers [PASS]
[17] Test creation and deletion of trace instances while setting an event [PASS]
[18] Test creation and deletion of trace instances [PASS]
[19] Kprobe dynamic event - adding and removing [PASS]
[20] Kprobe dynamic event - busy event check [PASS]
[21] Kprobe dynamic event with arguments [PASS]
[22] Kprobes event arguments with types [PASS]
[23] Kprobe event auto/manual naming [PASS]
[24] Kprobe dynamic event with function tracer [PASS]
[25] Kprobe dynamic event - probing module [PASS]
[26] Kretprobe dynamic event with arguments [PASS]
[27] Kretprobe dynamic event with maxactive [PASS]
[28] Register/unregister many kprobe events [PASS]
[29] event trigger - test event enable/disable trigger [PASS]
[30] event trigger - test trigger filter [PASS]
[31] event trigger - test histogram modifiers [PASS]
[32] event trigger - test histogram trigger [PASS]
[33] event trigger - test multiple histogram triggers [PASS]
[34] event trigger - test snapshot-trigger [PASS]
[35] event trigger - test stacktrace-trigger [PASS]
[36] event trigger - test traceon/off trigger [PASS]
[37] (instance) Basic test for tracers [PASS]
[38] (instance) Basic trace clock test [PASS]
[39] (instance) event tracing - enable/disable with event level files [PASS]
[40] (instance) event tracing - restricts events based on pid [PASS]
[41] (instance) event tracing - enable/disable with subsystem level
files [PASS]
[42] (instance) ftrace - test for function event triggers [PASS]
[43] (instance) ftrace - test for function traceon/off triggers [PASS]
[44] (instance) event trigger - test event enable/disable trigger [PASS]
[45] (instance) event trigger - test trigger filter [PASS]
[46] (instance) event trigger - test histogram modifiers [PASS]
[47] (instance) event trigger - test histogram trigger [PASS]
[48] (instance) event trigger - test multiple histogram triggers [PASS]

# of passed: 48
# of failed: 0
# of unresolved: 0
# of untested: 0
# of unsupported: 0
# of xfailed: 0
# of undefined(test bug): 0

Attachment: trace-kprobe-errors
Description: Binary data