• Masami Hiramatsu's avatar
    tracing: Disable ftrace selftests when any tracer is running · 60efe21e
    Masami Hiramatsu authored
    Disable ftrace selftests when any tracer (kernel command line options
    like ftrace=, trace_events=, kprobe_events=, and boot-time tracing)
    starts running because selftest can disturb it.
    
    Currently ftrace= and trace_events= are checked, but kprobe_events
    has a different flag, and boot-time tracing didn't checked. This unifies
    the disabled flag and all of those boot-time tracing features sets
    the flag.
    
    This also fixes warnings on kprobe-event selftest
    (CONFIG_FTRACE_STARTUP_TEST=y and CONFIG_KPROBE_EVENTS=y) with boot-time
    tracing (ftrace.event.kprobes.EVENT.probes) like below;
    
    [   59.803496] trace_kprobe: Testing kprobe tracing:
    [   59.804258] ------------[ cut here ]------------
    [   59.805682] WARNING: CPU: 3 PID: 1 at kernel/trace/trace_kprobe.c:1987 kprobe_trace_self_tests_ib
    [   59.806944] Modules linked in:
    [   59.807335] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 5.10.0-rc7+ #172
    [   59.808029] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/01/204
    [   59.808999] RIP: 0010:kprobe_trace_self_tests_init+0x5f/0x42b
    [   59.809696] Code: e8 03 00 00 48 c7 c7 30 8e 07 82 e8 6d 3c 46 ff 48 c7 c6 00 b2 1a 81 48 c7 c7 7
    [   59.812439] RSP: 0018:ffffc90000013e78 EFLAGS: 00010282
    [   59.813038] RAX: 00000000ffffffef RBX: 0000000000000000 RCX: 0000000000049443
    [   59.813780] RDX: 0000000000049403 RSI: 0000000000049403 RDI: 000000000002deb0
    [   59.814589] RBP: ffffc90000013e90 R08: 0000000000000001 R09: 0000000000000001
    [   59.815349] R10: 0000000000000001 R11: 0000000000000000 R12: 00000000ffffffef
    [   59.816138] R13: ffff888004613d80 R14: ffffffff82696940 R15: ffff888004429138
    [   59.816877] FS:  0000000000000000(0000) GS:ffff88807dcc0000(0000) knlGS:0000000000000000
    [   59.817772] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   59.818395] CR2: 0000000001a8dd38 CR3: 0000000002222000 CR4: 00000000000006a0
    [   59.819144] Call Trace:
    [   59.819469]  ? init_kprobe_trace+0x6b/0x6b
    [   59.819948]  do_one_initcall+0x5f/0x300
    [   59.820392]  ? rcu_read_lock_sched_held+0x4f/0x80
    [   59.820916]  kernel_init_freeable+0x22a/0x271
    [   59.821416]  ? rest_init+0x241/0x241
    [   59.821841]  kernel_init+0xe/0x10f
    [   59.822251]  ret_from_fork+0x22/0x30
    [   59.822683] irq event stamp: 16403349
    [   59.823121] hardirqs last  enabled at (16403359): [<ffffffff810db81e>] console_unlock+0x48e/0x580
    [   59.824074] hardirqs last disabled at (16403368): [<ffffffff810db786>] console_unlock+0x3f6/0x580
    [   59.825036] softirqs last  enabled at (16403200): [<ffffffff81c0033a>] __do_softirq+0x33a/0x484
    [   59.825982] softirqs last disabled at (16403087): [<ffffffff81a00f02>] asm_call_irq_on_stack+0x10
    [   59.827034] ---[ end trace 200c544775cdfeb3 ]---
    [   59.827635] trace_kprobe: error on probing function entry.
    
    Link: https://lkml.kernel.org/r/160741764955.3448999.3347769358299456915.stgit@devnote2
    
    Fixes: 4d655281 ("tracing/boot Add kprobe event support")
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    60efe21e
trace_selftest.c 26.3 KB