Cc: Pekka Enberg <penberg@...>, <cl@...>, <linux-mm@...>, <linux-kernel@...>, <rdunlap@...>, <mpm@...>, Steven Rostedt <rostedt@...>, Thomas Gleixner <tglx@...>
On Mon, Jul 28, 2008 at 12:29:17PM -0400, Mathieu Desnoyers wrote:
The relay interface is really inconsistent and produces erroneous output
if it's not used in a specific way. It's nice to be able to catch these
errors if they occur (e.g. in case we have a regression).
Yes, this would probably be a better approach.
Pekka suggested we use types that have constant size on every arch. I
could change this.
This could change too, but if the number of GFP flags is too close to
32, I'd rather keep the ABI stable, providing for a larger number of GFP
flags.
Hmm, I'll look at lttng's code and see what exactly you are talking
about. For now, I'm not sure how 32-bit timestamps perform.
Why? I mean I can do this in the userspace app when I record the data.
may be
ding
ASCII/text? :)
I'm not sure what you meant, but non-binary traces would result in huge
amounts of data.
Sure, cross-endianness is not even currently implemented in the
userspace app.
I'm not sure how one could record a timestamp orderly into relay buffers
using only atomic ops and no locks.
Dynamic assignation makes it hard to preserve ABI compatibility with the
userspace app. And Pekka suggested it's important to preserve it in
order to allow distros to include kmemtrace.
=20
ysis
than a
e. enable
he
run
Yes, it's probably better. I just wanted to avoid a user taking that as
a comment.
Of course it will be fixed. But this FAQ entry also serves as a warning
that future allocator patches could introduce untraced functions.
=20
Pekka, what do you think?
d,
Okay, will rebase my patches on a tracepoints-enabled branch. How close
are they to mainline?
I wanted to avoid using too long macro names. But I can change this.
Not quite true. I saw a few kernel subsystems that provide compile-time opt=
ions
for those arches where supplying command-line options is hard/impossible.
Oh, good point. I could use relay_reserve() here.
What would you suggest instead?
Please keep in mind timer resolution is not that critical, we're not
benchmarking the allocators cycle-wise; instead we're merely looking at
allocation lifetimes, fragmentation, patterns etc.. Timestamps are most
important for reordering events in userspace.
Okay.
68
Thanks for your comments.
Cheers,
Eduard