linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] ring_buffer: updates for linux-tip
@ 2008-10-01  4:29 Steven Rostedt
  2008-10-01  4:29 ` [PATCH 1/2] ring_buffer: remove raw from local_irq_save Steven Rostedt
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Steven Rostedt @ 2008-10-01  4:29 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ingo Molnar, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
	Linus Torvalds, Mathieu Desnoyers, Pekka Paalanen,
	Frederic Weisbecker, Martin Bligh

The first patch is just a lockdep clean up of the ring buffer.

The next patch is a new locking design. It is not lockless (yet) but
the locking is a bit cleaner than the original. The basic idea is
that the reader now has its own page to read from that is not in
the ring buffer. When the reader (a consumer) finishes a page, it
then grabs a lock to pull out a new page from the ring buffer and
replace it with the one that it just finished reading.

The writer only locks when it needs to go to the next page. We still
disable interrupts, but it would not be too hard to allow
interrupts to take place on writes. But I will leave that for
version 2 (or 1.2)

The iterator (non consuming read) still expects the tracer to
be disabled when iterating the loop (no locks taken).

The ring_buffer_{un}lock is now no longer around and not needed.

I ran this with lockdep on and it ran fine.

I did lots of testing of trace_pipe (consuming reader) while running
the function trace. The function trace with out a doubt will stress
the consumer/producer reads since the producer is much faster than the
consumer.

Tomorrow, I'll change the buffer_page from being a page_frame to
something that is allocated separately.

-- Steve


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

end of thread, other threads:[~2008-10-01 17:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-01  4:29 [PATCH 0/2] ring_buffer: updates for linux-tip Steven Rostedt
2008-10-01  4:29 ` [PATCH 1/2] ring_buffer: remove raw from local_irq_save Steven Rostedt
2008-10-01  5:52   ` Ingo Molnar
2008-10-01  6:08     ` Ingo Molnar
2008-10-01  6:14       ` Ingo Molnar
2008-10-01  4:29 ` [PATCH 2/2] ring_buffer: implement new locking Steven Rostedt
2008-10-01  6:01   ` Ingo Molnar
2008-10-01  7:20 ` [PATCH 0/2] ring_buffer: updates for linux-tip Frédéric Weisbecker
2008-10-01  7:23   ` Ingo Molnar
2008-10-01 12:32     ` Frédéric Weisbecker
2008-10-01 17:08       ` Frédéric Weisbecker
2008-10-01 17:14     ` [PATCH] ftrace: preempt disable over interrupt disable Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).