public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* WARNING: at kernel/trace/ring_buffer.c:2289 rb_advance_reader+0x2e/0xc5()
@ 2009-07-27 19:51 Robert Richter
  2009-07-27 21:24 ` Steven Rostedt
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Richter @ 2009-07-27 19:51 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: LKML

Steven,

I have workloads for oprofile that trigger warnings like this:

------------[ cut here ]------------
WARNING: at /dev/shm/.source/linux/kernel/trace/ring_buffer.c:2289 rb_advance_reader+0x2e/0xc5()
Hardware name: Anaheim
Modules linked in:
Pid: 29, comm: events/2 Tainted: G        W  2.6.31-rc3-oprofile-x86_64-standard-00059-g5050dc2 #1
Call Trace:
[<ffffffff8106776f>] ? rb_advance_reader+0x2e/0xc5
[<ffffffff81039ffe>] warn_slowpath_common+0x77/0x8f
[<ffffffff8103a025>] warn_slowpath_null+0xf/0x11
[<ffffffff8106776f>] rb_advance_reader+0x2e/0xc5
[<ffffffff81068bda>] ring_buffer_consume+0xa0/0xd2
[<ffffffff81326933>] op_cpu_buffer_read_entry+0x21/0x9e
[<ffffffff810be3af>] ? __find_get_block+0x4b/0x165
[<ffffffff8132749b>] sync_buffer+0xa5/0x401
[<ffffffff810be3af>] ? __find_get_block+0x4b/0x165
[<ffffffff81326c1b>] ? wq_sync_buffer+0x0/0x78
[<ffffffff81326c76>] wq_sync_buffer+0x5b/0x78
[<ffffffff8104aa30>] worker_thread+0x113/0x1ac
[<ffffffff8104dd95>] ? autoremove_wake_function+0x0/0x38
[<ffffffff8104a91d>] ? worker_thread+0x0/0x1ac
[<ffffffff8104dc9a>] kthread+0x88/0x92
[<ffffffff8100bdba>] child_rip+0xa/0x20
[<ffffffff8104dc12>] ? kthread+0x0/0x92
[<ffffffff8100bdb0>] ? child_rip+0x0/0x20
---[ end trace f561c0a58fcc89bd ]---

I am wondering when this may happen. It seems the following code in
rb_get_reader_page() triggers this:

        /* check if we caught up to the tail */
        reader = NULL;
        if (cpu_buffer->commit_page == cpu_buffer->reader_page)
                goto out;

It is very hard to find out the conditions for equal commit and reader
pages.

Maybe you have any idea or could shortly explain the use of head,
tail, commit and reader page pointers? When an overrun happens?
(... or point me to some documentation.)

Thanks,

-Robert

-- 
Advanced Micro Devices, Inc.
Operating System Research Center
email: robert.richter@amd.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-08-04 18:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-27 19:51 WARNING: at kernel/trace/ring_buffer.c:2289 rb_advance_reader+0x2e/0xc5() Robert Richter
2009-07-27 21:24 ` Steven Rostedt
2009-07-31 12:56   ` [PATCH] ring-buffer: Fix advance of reader in rb_buffer_peek() Robert Richter
2009-08-04 16:49     ` Robert Richter
2009-08-04 18:07       ` Steven Rostedt
2009-07-31 13:13   ` WARNING: at kernel/trace/ring_buffer.c:2289 rb_advance_reader+0x2e/0xc5() Robert Richter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox