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: ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Tainted: G W ----------------------------- /work/git/linux-trace.git/arch/x86/kernel/traps.c:305 entry code didn't wake RCU! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! no locks held by swapper/0/0. stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 do_error_trap+0x125/0x130 ? do_error_trap+0x5/0x130 ? trace_hardirqs_off_thunk+0x1a/0x1c ? do_invalid_op+0x5/0x30 do_invalid_op+0x20/0x30 invalid_op+0x1e/0x30 RIP: 0010:module_assert_mutex_or_preempt+0x34/0x40 RSP: 0018:ffffffff81e03bc0 EFLAGS: 00010046 RAX: 0000000000000000 RBX: ffffffffa000a077 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 00000000ffffffff RDI: 0000000000000046 RBP: ffffffff81e03bc0 R08: ffffffff81e03f40 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: ffffffff81e16500 R15: ffffffff81ed5760 ? 0xffffffffa000a077 __module_address+0x2c/0xf0 ? 0xffffffffa000a077 __module_text_address+0x12/0x60 ? 0xffffffffa000a077 is_module_text_address+0x1f/0x50 ? 0xffffffffa000a077 __kernel_text_address+0x30/0x90 unwind_get_return_address+0x1f/0x30 __save_stack_trace+0x83/0xd0 ? 0xffffffffa000a077 ? rcu_dynticks_eqs_exit+0x5/0x40 save_stack_trace+0x1b/0x20 check_stack+0xf8/0x2f0 ? rcu_dynticks_eqs_enter+0x30/0x30 stack_trace_call+0x6e/0x80 0xffffffffa000a077 ? ftrace_graph_caller+0x78/0xa8 ? rcu_dynticks_eqs_exit+0x5/0x40 rcu_dynticks_eqs_exit+0x5/0x40 rcu_idle_exit+0xdf/0xf0 ? rcu_dynticks_eqs_exit+0x5/0x40 ? rcu_idle_exit+0xdf/0xf0 do_idle+0x128/0x200 cpu_startup_entry+0x1d/0x20 rest_init+0xd6/0xe0 start_kernel+0x40c/0x419 ? early_idt_handler_array+0x120/0x120 x86_64_start_reservations+0x2a/0x2c x86_64_start_kernel+0x13e/0x14d secondary_startup_64+0x9f/0x9f ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/kernel/workqueue.c:712 sched RCU or wq_pool_mutex should be held! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 2 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/include/linux/rcupdate.h:611 rcu_read_lock() used illegally while idle! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 3 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 #2: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/include/linux/rcupdate.h:662 rcu_read_unlock() used illegally while idle! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 4 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 #2: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #3: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/include/linux/rcupdate.h:611 rcu_read_lock() used illegally while idle! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 5 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 #2: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #3: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #4: (rcu_read_lock){......}, at: [<ffffffff811ca0a5>] is_bpf_text_address+0x5/0xe0 stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/include/linux/rcupdate.h:662 rcu_read_unlock() used illegally while idle! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 6 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 #2: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #3: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #4: (rcu_read_lock){......}, at: [<ffffffff811ca0a5>] is_bpf_text_address+0x5/0xe0 #5: (rcu_read_lock){......}, at: [<ffffffff811ca0a5>] is_bpf_text_address+0x5/0xe0 stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 is_bpf_text_address+0xdc/0xe0 __kernel_text_address+0x74/0x90 show_trace_log_lvl+0x160/0x380 ? dump_stack+0x86/0xcf show_stack+0x44/0x60 dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 is_bpf_text_address+0xb2/0xe0 __kernel_text_address+0x74/0x90 show_trace_log_lvl+0x160/0x380 ? dump_stack+0x86/0xcf show_stack+0x44/0x60 dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 __is_insn_slot_addr+0x114/0x140 __kernel_text_address+0x68/0x90 show_trace_log_lvl+0x160/0x380 ? dump_stack+0x86/0xcf show_stack+0x44/0x60 dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 __is_insn_slot_addr+0xe0/0x140 __kernel_text_address+0x68/0x90 show_trace_log_lvl+0x160/0x380 ? dump_stack+0x86/0xcf show_stack+0x44/0x60 dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 get_work_pool+0x87/0x90 __queue_work+0x9c/0x5e0 queue_work_on+0x8a/0xa0 ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/kernel/notifier.c:548 notify_die called but RCU thinks we're quiescent! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 6 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 #2: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #3: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #4: (rcu_read_lock){......}, at: [<ffffffff811ca0a5>] is_bpf_text_address+0x5/0xe0 #5: (rcu_read_lock){......}, at: [<ffffffff811ca0a5>] is_bpf_text_address+0x5/0xe0 stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0-rc7-test+ #101 Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016 Call Trace: dump_stack+0x86/0xcf lockdep_rcu_suspicious+0xc5/0x100 notify_die+0x72/0x80 do_error_trap+0x54/0x130 ? do_error_trap+0x5/0x130 ? trace_hardirqs_off_thunk+0x1a/0x1c ? do_invalid_op+0x5/0x30 ============================= WARNING: suspicious RCU usage 4.13.0-rc7-test+ #101 Not tainted ----------------------------- /work/git/linux-trace.git/include/linux/rcupdate.h:611 rcu_read_lock() used illegally while idle! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 2, debug_locks = 1 RCU used illegally from extended quiescent state! 7 locks held by swapper/0/0: #0: (console_lock){+.+.+.}, at: [<ffffffff81118786>] vprintk_emit+0x246/0x3d0 #1: (printing_lock){......}, at: [<ffffffff81529749>] vt_console_print+0x49/0x3b0 #2: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_addr+0x5/0x140 #3: (rcu_read_lock){......}, at: [<ffffffff8117d025>] __is_insn_slot_add Lost 1926 message(s)! Config attached. -- Steve
Attachment:
config.gz
Description: application/gzip