Re: [RFC PATCH 1/3] Unified trace buffer

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Thursday, September 25, 2008 - 9:49 am

On Thu, 25 Sep 2008, Mathieu Desnoyers wrote:

We do no such thing.

Guys, the heartbeat is a _separate_ thing from overflow handling.

You don't handle overflow by having a heartbeat that beats fifty times a 
second just to insert events, just so that the TSC delta would always fit 
in 27 bits. That would work, but be stupid. It would mean that you fill up 
your event buffer with uninteresting crud just because nothing happens.

Yes, many people want to have a heartbeat (a "Mark" event) every once in a 
while, but what I suggest is independent of heartbeats, even if it _could_ 
be implemented that way. What I suggest is simply that when you insert an 
event, you always read the full 64 bits of TSC (on x86 - others will do 
other things), and then you insert the delta against the last one.

After all, you cannot read just 27 bits of the TSC anyway. You _have_ to 
read the whole 64 bits, and then you subtract the pervious trace event TSC 
(that you have in the per-CPU trace buffer header) from that. You now have 
a delta value.

And if the delta doesn't fit in 27 bits, you generate a 59-bit TSC event!

None of this has _anything_ to do with interrupt latency. There is no 
dependency on a heartbeat, or any dependency on always inserting a trace 
event at least 30 times a second. There's no worry about conversions, and 
these are all trivial single assembly instructions to do (or a couple, on 
a 32-bit architecture that needs to do a sub/sbb pair and test two 
different registers to see if the result fits in 27 bits).

The only issue is that if you insert trace events more seldom, you'll 
always get the extra TSC event as well, inserted automatically in front of 
the event you explicitly inserted. The tracer doesn't need to know.

			Linus
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Tue Sep 23, 10:10 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Peter Zijlstra, (Wed Sep 24, 8:03 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 8:44 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 8:47 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Peter Zijlstra, (Wed Sep 24, 9:11 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Wed Sep 24, 9:13 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 9:24 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 9:26 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 9:31 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 9:37 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Peter Zijlstra, (Wed Sep 24, 9:39 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 9:49 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Wed Sep 24, 9:51 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 9:56 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 10:25 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 10:36 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 10:49 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 10:54 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Wed Sep 24, 11:01 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 11:04 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 1:23 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 1:30 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, David Miller, (Wed Sep 24, 1:37 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 1:39 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 1:47 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 1:48 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 1:49 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 1:51 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Wed Sep 24, 1:53 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 1:56 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Wed Sep 24, 2:03 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 2:08 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 2:17 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Frank Ch. Eigler, (Wed Sep 24, 2:24 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 2:33 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Wed Sep 24, 2:51 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 3:28 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Wed Sep 24, 3:41 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 3:38 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Peter Zijlstra, (Thu Sep 25, 3:41 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Thu Sep 25, 7:33 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Peter Zijlstra, (Thu Sep 25, 7:53 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 8:05 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 8:20 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Thu Sep 25, 8:25 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 8:26 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 8:36 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Thu Sep 25, 9:23 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 9:32 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Thu Sep 25, 9:37 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 9:40 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 9:49 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 9:53 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 10:02 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 10:07 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Thu Sep 25, 10:15 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Thu Sep 25, 10:20 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 10:22 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 10:29 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 10:32 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 10:39 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Thu Sep 25, 10:42 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 11:14 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 12:55 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 1:12 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 1:20 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 1:24 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 1:29 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Mathieu Desnoyers, (Thu Sep 25, 1:29 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 1:47 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 1:52 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 2:01 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 2:02 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 2:10 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 2:14 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Martin Bligh, (Thu Sep 25, 2:15 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 2:16 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 2:41 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 2:55 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 2:56 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 2:58 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 3:14 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 3:25 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 3:39 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 3:45 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 3:55 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 3:59 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 4:04 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Thu Sep 25, 4:25 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Linus Torvalds, (Thu Sep 25, 4:33 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 6:17 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 6:27 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 6:27 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 6:35 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 6:49 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 7:07 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Thu Sep 25, 7:25 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Jeremy Fitzhardinge, (Thu Sep 25, 10:31 pm)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Fri Sep 26, 3:41 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Thomas Gleixner, (Fri Sep 26, 7:04 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Sat Sep 27, 10:16 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Sat Sep 27, 10:36 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Sat Sep 27, 10:38 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Peter Zijlstra, (Sat Sep 27, 10:50 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Steven Rostedt, (Sat Sep 27, 11:18 am)
Re: [RFC PATCH 1/3] Unified trace buffer, Ingo Molnar, (Sat Sep 27, 11:42 am)