Re: lockup in rb_get_reader_page

From: Steven Rostedt
Date: Wed Mar 31 2010 - 21:23:10 EST


On Wed, 2010-03-31 at 18:14 -0700, Jiaying Zhang wrote:
> On Wed, Mar 31, 2010 at 5:28 PM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> >
> > Are you doing reads from interrupt context?
> >
> No. We are using a user-space reader that reads ring buffer via syscall
> or ioctl. But even though we don't read from interrupt context, as I
> understand, we can still have a reader on another cpuB reads cpuA's
> buffer when the writer on cpuA moves the head page. Will we have
> any problem in that case?

Nope, unless that write hangs for some reason ;-)

The read may spin waiting for a writer to finish, hence it just can not
preempt a writer in an interrupt context, because then it may spin
forever, because it is blocking the writer. But if a writer is on
another CPU, then all is well. In fact, the ring buffer was designed
with that in mind.

-- Steve

--
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/