Re: [PATCH 0/5] [GIP PULL] tracing/events/trace_stack: variousfixes

From: Steven Rostedt
Date: Mon Jun 08 2009 - 11:38:02 EST



[ Added Peter ]

On Sun, 7 Jun 2009, Ingo Molnar wrote:
> Testing tracer sched_switch: <6>Starting ring buffer hammer
> PASSED
> Testing tracer sysprof: PASSED
> Testing tracer function: PASSED
> Testing tracer irqsoff:
> =============================================
> PASSED
> Testing tracer preemptoff: PASSED
> Testing tracer preemptirqsoff: [ INFO: possible recursive locking detected ]
> PASSED
> Testing tracer branch: 2.6.30-rc8-tip-01972-ge5b9078-dirty #5760
> ---------------------------------------------
> rb_consumer/431 is trying to acquire lock:
> (&cpu_buffer->reader_lock){......}, at: [<c109eef7>] ring_buffer_reset_cpu+0x37/0x70
>
> but task is already holding lock:
> (&cpu_buffer->reader_lock){......}, at: [<c10a019e>] ring_buffer_consume+0x7e/0xc0
>
> other info that might help us debug this:
> 1 lock held by rb_consumer/431:
> #0: (&cpu_buffer->reader_lock){......}, at: [<c10a019e>] ring_buffer_consume+0x7e/0xc0

Yes this definitely looks like ftrace is tracing the ring buffer benchmark
test.

OK, how do I go about teaching lockdep that this reader lock is not the
same reader lock as the one being taken?

-- Steve

>
> stack backtrace:
> Pid: 431, comm: rb_consumer Not tainted 2.6.30-rc8-tip-01972-ge5b9078-dirty #5760
> Call Trace:
> [<c1070940>] validate_chain+0xa20/0x1000
> [<c1071240>] __lock_acquire+0x320/0x5f0
> [<c107159f>] lock_acquire+0x8f/0x120
> [<c109eef7>] ? ring_buffer_reset_cpu+0x37/0x70
> [<c1739c76>] _spin_lock_irqsave+0x56/0x70
> [<c109eef7>] ? ring_buffer_reset_cpu+0x37/0x70
> [<c109eef7>] ring_buffer_reset_cpu+0x37/0x70
> [<c10a596e>] tracing_reset+0x3e/0x80
> [<c109f4df>] ? rb_get_reader_page+0x11f/0x180
> [<c106c90b>] ? trace_hardirqs_off+0xb/0x10
> [<c10aa97f>] time_hardirqs_off+0xbf/0x110
> [<c109f4df>] ? rb_get_reader_page+0x11f/0x180
> [<c106c830>] trace_hardirqs_off_caller+0x20/0xf0
> [<c106c90b>] trace_hardirqs_off+0xb/0x10
> [<c109f4df>] rb_get_reader_page+0x11f/0x180
> [<c109f624>] rb_buffer_peek+0x24/0xe0
> [<c10a01ad>] ring_buffer_consume+0x8d/0xc0
> [<c10a1585>] ring_buffer_consumer_thread+0xa5/0x440
> [<c173a1c2>] ? _spin_unlock_irqrestore+0x62/0x80
> [<c10306be>] ? complete+0x4e/0x60
> [<c10a14e0>] ? ring_buffer_consumer_thread+0x0/0x440
> [<c105c1e2>] kthread+0x52/0x80
> [<c105c190>] ? kthread+0x0/0x80
> [<c10047cb>] kernel_thread_helper+0x7/0x10
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/