[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1270081707.19685.8095.camel@gandalf.stny.rr.com>
Date: Wed, 31 Mar 2010 20:28:27 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Jiaying Zhang <jiayingz@...gle.com>
Cc: Steven Rostedt <srostedt@...hat.com>, Ingo Molnar <mingo@...e.hu>,
Michael Rubin <mrubin@...gle.com>,
David Sharp <dhsharp@...gle.com>, linux-kernel@...r.kernel.org
Subject: Re: lockup in rb_get_reader_page
On Tue, 2010-03-30 at 21:01 -0700, Jiaying Zhang wrote:
> I am going to patch rb_get_reader_page() to print out some debugging
> message when it enters into an infinitely loop. I will keep you updated
> if I find any interesting info.
I was just thinking about this some more. One restriction to the
ring_buffer is that a reader can not preempt a writer, which means that
a read can not happen in an interrupt or NMI. If a read happens there
and preempts a writer as the writer was moving the head page, it will go
into an infinite loop waiting for the writer to finish its move.
You can only do reads from interrupt context if the writer disables
interrupts before reserving and committing the data.
Are you doing reads from interrupt context?
-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists