Steven Rostedt
e59494f441
ftrace: fix 4d3702b6 (post-v2.6.26): WARNING: at kernel/lockdep.c:2731 check_flags (ftrace)
On Wed, 16 Jul 2008, Vegard Nossum wrote:
> When booting 4d3702b6, I got this huge thing:
>
> Testing tracer wakeup: <4>------------[ cut here ]------------
> WARNING: at kernel/lockdep.c:2731 check_flags+0x123/0x160()
> Modules linked in:
> Pid: 1, comm: swapper Not tainted 2.6.26-crashing-02127-g4d3702b6 #30
> [<c015c349>] warn_on_slowpath+0x59/0xb0
> [<c01276c6>] ? ftrace_call+0x5/0x8
> [<c012d800>] ? native_read_tsc+0x0/0x20
> [<c0158de2>] ? sub_preempt_count+0x12/0xf0
> [<c01814eb>] ? trace_hardirqs_off+0xb/0x10
> [<c0182fbc>] ? __lock_acquire+0x2cc/0x1120
> [<c01814eb>] ? trace_hardirqs_off+0xb/0x10
> [<c01276af>] ? mcount_call+0x5/0xa
> [<c017ff53>] check_flags+0x123/0x160
> [<c0183e61>] lock_acquire+0x51/0xd0
> [<c01276c6>] ? ftrace_call+0x5/0x8
> [<c0613d4f>] _spin_lock_irqsave+0x5f/0xa0
> [<c01a8d45>] ? ftrace_record_ip+0xf5/0x220
> [<c02d5413>] ? debug_locks_off+0x3/0x50
> [<c01a8d45>] ftrace_record_ip+0xf5/0x220
> [<c01276af>] mcount_call+0x5/0xa
> [<c02d5418>] ? debug_locks_off+0x8/0x50
> [<c017ff27>] check_flags+0xf7/0x160
> [<c0183e61>] lock_acquire+0x51/0xd0
> [<c01276c6>] ? ftrace_call+0x5/0x8
> [<c0613d4f>] _spin_lock_irqsave+0x5f/0xa0
> [<c01affcd>] ? wakeup_tracer_call+0x6d/0xf0
> [<c01625e2>] ? _local_bh_enable+0x62/0xb0
> [<c0158ddd>] ? sub_preempt_count+0xd/0xf0
> [<c01affcd>] wakeup_tracer_call+0x6d/0xf0
> [<c0162724>] ? __do_softirq+0xf4/0x110
> [<c01afff1>] ? wakeup_tracer_call+0x91/0xf0
> [<c01276c6>] ftrace_call+0x5/0x8
> [<c0162724>] ? __do_softirq+0xf4/0x110
> [<c0158de2>] ? sub_preempt_count+0x12/0xf0
> [<c01625e2>] _local_bh_enable+0x62/0xb0
> [<c0162724>] __do_softirq+0xf4/0x110
> [<c01627ed>] do_softirq+0xad/0xb0
> [<c0162a15>] irq_exit+0xa5/0xb0
> [<c013a506>] smp_apic_timer_interrupt+0x66/0xa0
> [<c02d3fac>] ? trace_hardirqs_off_thunk+0xc/0x10
> [<c0127449>] apic_timer_interrupt+0x2d/0x34
> [<c018007b>] ? find_usage_backwards+0xb/0xf0
> [<c0613a09>] ? _spin_unlock_irqrestore+0x69/0x80
> [<c014ef32>] tg_shares_up+0x132/0x1d0
> [<c014d2a2>] walk_tg_tree+0x62/0xa0
> [<c014ee00>] ? tg_shares_up+0x0/0x1d0
> [<c014a860>] ? tg_nop+0x0/0x10
> [<c015499d>] update_shares+0x5d/0x80
> [<c0154a2f>] try_to_wake_up+0x6f/0x280
> [<c01a8b90>] ? __ftrace_modify_code+0x0/0xc0
> [<c01a8b90>] ? __ftrace_modify_code+0x0/0xc0
> [<c0154c94>] wake_up_process+0x14/0x20
> [<c01725f6>] kthread_create+0x66/0xb0
> [<c0195400>] ? do_stop+0x0/0x200
> [<c0195320>] ? __stop_machine_run+0x30/0xb0
> [<c0195340>] __stop_machine_run+0x50/0xb0
> [<c0195400>] ? do_stop+0x0/0x200
> [<c01a8b90>] ? __ftrace_modify_code+0x0/0xc0
> [<c061242d>] ? mutex_unlock+0xd/0x10
> [<c01953cc>] stop_machine_run+0x2c/0x60
> [<c01a94d3>] unregister_ftrace_function+0x103/0x180
> [<c01b0517>] stop_wakeup_tracer+0x17/0x60
> [<c01b056f>] wakeup_tracer_ctrl_update+0xf/0x30
> [<c01ab8d5>] trace_selftest_startup_wakeup+0xb5/0x130
> [<c01ab950>] ? trace_wakeup_test_thread+0x0/0x70
> [<c01aadf5>] register_tracer+0x135/0x1b0
> [<c0877d02>] init_wakeup_tracer+0xd/0xf
> [<c085d437>] kernel_init+0x1a9/0x2ce
> [<c061397b>] ? _spin_unlock_irq+0x3b/0x60
> [<c02d3f9c>] ? trace_hardirqs_on_thunk+0xc/0x10
> [<c0877cf5>] ? init_wakeup_tracer+0x0/0xf
> [<c0182646>] ? trace_hardirqs_on_caller+0x126/0x180
> [<c02d3f9c>] ? trace_hardirqs_on_thunk+0xc/0x10
> [<c01269c8>] ? restore_nocheck_notrace+0x0/0xe
> [<c085d28e>] ? kernel_init+0x0/0x2ce
> [<c085d28e>] ? kernel_init+0x0/0x2ce
> [<c01275fb>] kernel_thread_helper+0x7/0x10
> =======================
> ---[ end trace a7919e7f17c0a725 ]---
> irq event stamp: 579530
> hardirqs last enabled at (579528): [<c01826ab>] trace_hardirqs_on+0xb/0x10
> hardirqs last disabled at (579529): [<c01814eb>] trace_hardirqs_off+0xb/0x10
> softirqs last enabled at (579530): [<c0162724>] __do_softirq+0xf4/0x110
> softirqs last disabled at (579517): [<c01627ed>] do_softirq+0xad/0xb0
> irq event stamp: 579530
> hardirqs last enabled at (579528): [<c01826ab>] trace_hardirqs_on+0xb/0x10
> hardirqs last disabled at (579529): [<c01814eb>] trace_hardirqs_off+0xb/0x10
> softirqs last enabled at (579530): [<c0162724>] __do_softirq+0xf4/0x110
> softirqs last disabled at (579517): [<c01627ed>] do_softirq+0xad/0xb0
> PASSED
>
> Incidentally, the kernel also hung while I was typing in this report.
Things get weird between lockdep and ftrace because ftrace can be called
within lockdep internal code (via the mcount pointer) and lockdep can be
called with ftrace (via spin_locks).
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Tested-by: Vegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-18 13:47:15 +02:00
..
2008-07-10 07:01:13 +02:00
2008-07-16 17:25:46 -07:00
2008-07-15 21:55:59 +02:00
2008-07-18 13:47:15 +02:00
2008-02-09 23:27:01 -08:00
2008-03-24 19:22:20 -07:00
2008-05-17 03:30:23 -04:00
2008-06-24 23:36:35 -04:00
2008-04-28 06:28:04 -04:00
2008-06-24 23:36:35 -04:00
2008-04-28 06:28:37 -04:00
2008-06-27 18:09:16 +02:00
2008-04-29 08:06:29 -07:00
2008-07-04 10:40:08 -07:00
2008-04-29 08:06:09 -07:00
2008-05-24 09:56:14 -07:00
2008-05-01 08:03:59 -07:00
2008-04-29 08:06:22 -07:00
2008-07-16 23:27:01 +02:00
2008-07-14 12:19:19 +02:00
2007-10-18 14:37:28 -07:00
2008-04-29 08:06:22 -07:00
2007-10-18 14:37:26 -07:00
2008-07-16 18:02:34 -07:00
2008-01-29 17:13:18 +11:00
2008-07-16 18:02:33 -07:00
2008-03-30 14:18:41 -07:00
2008-06-23 13:31:15 +02:00
2008-07-15 21:55:59 +02:00
2008-02-08 09:22:29 -08:00
2008-04-29 08:06:22 -07:00
2008-01-25 21:08:29 +01:00
2008-03-10 18:01:20 -07:00
2008-05-01 08:04:00 -07:00
2007-07-16 09:05:50 -07:00
2008-06-24 10:52:55 -05:00
2008-05-01 13:08:16 -04:00
2008-07-10 10:13:51 -07:00
2008-01-24 20:40:40 -08:00
2008-07-16 23:27:03 +02:00
2008-04-29 08:06:22 -07:00
2008-06-24 01:28:20 +02:00
2008-06-24 01:28:20 +02:00
2008-07-14 14:55:13 -07:00
2008-07-17 17:40:11 +02:00
2008-05-23 22:25:27 +02:00
2008-05-23 13:09:33 +10:00
2008-05-16 16:53:35 +02:00
2008-06-10 11:45:09 +02:00
2008-04-29 08:06:13 -07:00
2008-04-29 08:06:07 -07:00
2008-04-29 08:06:14 -07:00
2008-04-29 08:05:59 -07:00
2008-02-08 09:22:41 -08:00
2008-04-30 08:29:49 -07:00
2008-05-19 10:01:37 +02:00
2008-07-02 15:06:24 -06:00
2008-05-24 18:49:22 +02:00
2008-04-30 08:29:36 -07:00
2008-07-14 15:27:43 -07:00
2008-06-26 11:24:38 +02:00
2008-07-16 18:02:33 -07:00
2008-07-15 21:10:12 +02:00
2008-07-15 14:12:03 -07:00
2008-05-19 10:03:39 +02:00
2008-07-15 21:10:12 +02:00
2008-06-26 09:24:33 +02:00
2008-05-28 14:49:27 +02:00
2008-04-29 08:06:10 -07:00
2008-04-29 08:06:22 -07:00
2008-02-08 09:22:41 -08:00
2008-02-08 09:22:41 -08:00
2008-01-24 20:40:40 -08:00
2008-02-13 15:45:36 +01:00
2007-12-18 15:21:13 +01:00
2008-07-14 12:19:13 +02:00
2008-06-06 15:19:28 +02:00
2008-06-06 15:19:44 +02:00
2008-06-27 14:31:31 +02:00
2008-07-04 12:50:22 +02:00
2008-06-27 14:31:47 +02:00
2008-05-05 23:56:17 +02:00
2008-06-27 14:32:05 +02:00
2008-07-04 12:50:23 +02:00
2008-07-14 15:28:42 -07:00
2008-07-01 10:14:06 +02:00
2008-05-26 10:37:07 -07:00
2008-07-15 14:12:20 -07:00
2008-07-15 21:55:59 +02:00
2008-07-05 08:51:24 +02:00
2008-05-23 20:39:40 +02:00
2008-02-06 10:41:02 -08:00
2008-06-30 09:20:55 +02:00
2008-06-23 22:57:56 +02:00
2008-02-05 09:44:07 -08:00
2008-05-24 09:56:13 -07:00
2008-02-08 09:22:31 -08:00
2008-07-15 21:10:12 +02:00
2008-04-30 08:29:48 -07:00
2008-02-06 10:41:11 -08:00
2008-05-02 16:18:42 -07:00
2008-05-02 16:18:42 -07:00
2008-07-14 16:06:58 -07:00
2007-10-18 14:37:28 -07:00
2008-04-10 17:28:26 -07:00
2008-04-29 08:06:07 -07:00
2008-04-30 08:29:53 -07:00
2007-11-29 09:24:53 -08:00
2008-04-29 08:06:04 -07:00
2008-02-08 09:22:31 -08:00
2008-07-04 10:40:04 -07:00