public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Karim Yaghmour <karim@opersys.com>
To: tglx@linutronix.de
Cc: Tim Bird <tim.bird@am.sony.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: [RFC] Instrumentation (was Re: 2.6.11-rc1-mm1)
Date: Sat, 15 Jan 2005 21:09:51 -0500	[thread overview]
Message-ID: <41E9CCEF.50401@opersys.com> (raw)
In-Reply-To: <1105794499.13265.247.camel@tglx.tec.linutronix.de>


Hello Thomas,

I don't mind having a general discussion about instrumentation, but
it has to be understood that the topic is so general and means so
many different things to different people that we are unlikely to
reach any useful consensus. Believe me, it's not for the lack of
trying. More below.

Thomas Gleixner wrote:
> </Flame off>

:D

> One of those backends is LTT+relayfs. 
> I really respect the work you have done there, but please accept that I
> just see the limitations and try to figure out a way to make it more
> generic and flexible before it is cemented into the kernel and makes it
> hard to use for other interesting instrumentation aspects and maybe
> enforces redundant implementation of infrastructure related
> functionality.
> 
> E.g. tracking down timing related issues can make use from such
> functionality if the infrastructure is provided seperately.
> I guess a lot of developers would be happy to use it when it is already
> around in the kernel and it can help testers for giving better
> information to developers.

I would invite you to review the history behind LTT and the history
behind the efforts to get LTT integrated in the kernel (which are
two separate topics.) If you look back, you will see that I worked
very hard trying to get people to think about a common framework
and that I and others made numerous suggestions in this regard. Here
are a few examples:

- DProbes (kprobes ancestor):
Shortly after dprobes came out in 2000, I was one of the first to
suggest that there could be interfacing between both to allow
dynamically added trace points. We worked with, and eventually
joined forces with, the IBM team working on this and very early
on, LTT and DProbes were interfacing:
http://marc.theaimsgroup.com/?l=linux-kernel&m=97079714009328&w=2
- OProfile:
When time came to integrate oprofile in the kernel, I tried to push
for oprofile to use ltt as it's logging engine (to John's utter
horror.) relayfs didn't exist at the time, and obviously oprofile
made it in without relying on ltt.
Here's a posting from July 2002 where I suggested oprofile rely on
ltt. In that same posting I listed a number of drivers/subsystems
that already contained tracing statements. Obviously I was pointing
out that there was an opportunity to create a common, uniform
infrastructure based on ltt:
http://marc.theaimsgroup.com/?l=linux-kernel&m=102624656615567&w=2
- Syscalltrack:
In replying to a posting of someone looking for tracing info, there
was a brief discussion as to how syscalltrack could use ltt instead
of: a) redirecting the syscall table, b) have its own buffering
mechanism. Again, relayfs didn't exist at the time:
http://marc.theaimsgroup.com/?l=linux-kernel&m=102822343523369&w=2
- Event logging:
When there was discussion about event logging, there was suggestion
to use ltt's engine. Again, relayfs wasn't there:
http://marc.theaimsgroup.com/?l=linux-kernel&m=101836133400796&w=2

And there are many other cases. As you can see, it's not as if
I didn't try to have this discussion before. Unfortunately, interest
in this was rather limited.

In addition, and this is a very important issue, quite a few
kernel developers mistook LTT for a kernel debugging tool, which
it was never meant to be. When, in fact, if you ask those who have
looked at using it for that purpose (try Marcelo or Andrea) you will
see that they didn't find it to be appropriate for them. And
rightly so, it was never meant for that purpose. Even lately, when
I suggested Ingo try using relayfs instead of his custom tracing
code for his preemption work, he looked at it and said that it
wasn't suited, but would consider reusing parts of it if it were
in the kernel.

So, in general, one thing I learned over the years is to not touch
the topic of kernel debugging even with a 10 foot poll when
discussing LTT.

What you are hinting at here (mention of developers vs. testers,
for example), and your stated preference for the type of ring-buffer
you described earlier clearly goes in the direction I've learned to
avoid: buffering support for the general purpose of kernel debugging.

Let me say outright that I see the relevance of what you are looking
for, but let me also say that what we tried to achieve with relayfs
is to provide a general mechanism for kernel subsystems that need to
convey large amounts of data to user-space. We did not attempt to
solve the problem of providing a buffering framework for core kernel
debugging. As I mentioned to Ingo in the mail I referred to earlier
regarding the type of buffering you are looking for:
> The above tracer may indeed be very appropriate for kernel development,
> but it doesn't provide enough functionality for the requirements of
> mainstream users.

If there is interest for using either relayfs and/or ltt for that
purpose, then this is an entirely different mandate and a few things
would need to be added for that to happen. For starters, we could
add another mode to relayfs. Currently, it supports a locking and
a lockless buffering scheme. We could also have ring-buffer mode
which would function very much as you, and Ingo before, have
described. But let me be crystal clear about this: don't count on
me to make a case for it on LKML. I've had enough flak as it is.
If you believe this is necessary, then you are welcome to make a
case for it, and obtain support from others on LKML. Obviously, as
the maintainers of relayfs, we see no reason to avoid extending it
for purposes others may find it useful for and/or accepting patches
to that end, if indeed such extensions don't preclude its adoption
in the mainline kernel.

Hope this helps clarify things a little,

Karim
-- 
Author, Speaker, Developer, Consultant
Pushing Embedded and Real-Time Linux Systems Beyond the Limits
http://www.opersys.com || karim@opersys.com || 1-866-677-4546

  reply	other threads:[~2005-01-16  2:12 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-14  8:23 2.6.11-rc1-mm1 Andrew Morton
2005-01-14  8:47 ` 2.6.11-rc1-mm1 Andi Kleen
2005-01-14  9:27   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-14 10:27   ` 2.6.11-rc1-mm1 Nikita Danilov
2005-01-14 10:38     ` 2.6.11-rc1-mm1 Andi Kleen
2005-01-14 11:06       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-14 15:31         ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-14 21:11           ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-14 22:58             ` 2.6.11-rc1-mm1 Tim Bird
2005-01-15  0:20               ` 2.6.11-rc1-mm1 Andi Kleen
2005-01-15  4:25               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-15  1:06             ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-15  4:18               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16  2:38                 ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-16  6:00                   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16 16:52                     ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-16 21:18                       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-17  1:37                         ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-17  2:24                           ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-17 12:20                             ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-17 20:32                               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-17 22:31                                 ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-17 22:42                                   ` 2.6.11-rc1-mm1 Robert Wisniewski
2005-01-17 23:26                                     ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-17 23:41                                   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-18  0:02                                     ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-18  3:05                                       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-17 13:54                         ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-17 21:27                           ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-17 23:57                             ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-18  4:03                               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-18  4:30                                 ` 2.6.11-rc1-mm1 Aaron Cohen
2005-01-18  4:46                                   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-18  8:07                                     ` 2.6.11-rc1-mm1 Tom Zanussi
2005-01-18 16:40                                       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-18 19:37                                         ` 2.6.11-rc1-mm1 Tom Zanussi
2005-01-18 15:31                                 ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-21  6:26                                   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-21 22:23                                     ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-23  7:43                                       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-23  7:52                                         ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-23  8:28                                         ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-24  0:38                                         ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-25  9:12                                           ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-18  1:13                             ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-18  2:52                               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-17 17:02                         ` 2.6.11-rc1-mm1 Tom Zanussi
2005-01-16 19:05                     ` 2.6.11-rc1-mm1 Tom Zanussi
2005-01-19 11:14                       ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-19 16:53                         ` 2.6.11-rc1-mm1 Tom Zanussi
2005-01-16 16:14             ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-16 19:47               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16 20:30               ` 2.6.11-rc1-mm1 Tom Zanussi
2005-01-19 11:11                 ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-14 15:24   ` 2.6.11-rc1-mm1 Roman Zippel
2005-01-18 11:19   ` 2.6.11-rc1-mm1 Masami Hiramatsu
2005-01-18 11:46     ` 2.6.11-rc1-mm1 Andi Kleen
2005-01-18 14:52       ` [Lkst-develop] 2.6.11-rc1-mm1 Masami Hiramatsu
2005-01-14 12:36 ` 2.6.11-rc1-mm1 Miklos Szeredi
2005-01-14 13:04 ` 2.6.11-rc1-mm1 Kasper Sandberg
2005-01-14 18:35   ` 2.6.11-rc1-mm1 Andrew Morton
2005-01-14 19:08     ` 2.6.11-rc1-mm1 Rogério Brito
2005-01-14 19:41     ` 2.6.11-rc1-mm1 Peter Buckingham
2005-01-17 17:04     ` 2.6.11-rc1-mm1 Matthias Urlichs
2005-01-14 19:02   ` 2.6.11-rc1-mm1 Bill Davidsen
2005-01-14 15:07 ` 2.6.11-rc1-mm1 Barry K. Nathan
2005-01-14 16:56   ` 2.6.11-rc1-mm1 Dave Jones
2005-01-14 17:55     ` 2.6.11-rc1-mm1 Barry K. Nathan
2005-01-19 23:06   ` 2.6.11-rc1-mm1 Marcos D. Marado Torres
2005-01-19 23:54     ` 2.6.11-rc1-mm1 Barry K. Nathan
2005-01-14 15:35 ` 2.6.11-rc1-mm1 Zwane Mwaikambo
2005-01-14 22:03   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-14 17:35 ` [patch] 2.6.11-rc1-mm1: ip_tables.c: ipt_find_target must be EXPORT_SYMBOL'ed Adrian Bunk
2005-01-14 17:43   ` Patrick McHardy
2005-01-14 22:41 ` 2.6.11-rc1-mm1 Tim Bird
2005-01-14 22:46 ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-14 23:22   ` 2.6.11-rc1-mm1 Tim Bird
2005-01-15  0:24     ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-15  1:27       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16 16:18       ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-15 13:08     ` [RFC] Instrumentation (was Re: 2.6.11-rc1-mm1) Thomas Gleixner
2005-01-16  2:09       ` Karim Yaghmour [this message]
2005-01-16  3:11         ` Roman Zippel
2005-01-16  4:23           ` Karim Yaghmour
2005-01-16 23:43             ` Thomas Gleixner
2005-01-17  1:54               ` Karim Yaghmour
2005-01-17 10:26                 ` Thomas Gleixner
2005-01-17 20:34                   ` Karim Yaghmour
2005-01-17 22:18                     ` Thomas Gleixner
2005-01-17 23:57                       ` Karim Yaghmour
2005-01-18  8:46                         ` Thomas Gleixner
2005-01-18 16:31                           ` Karim Yaghmour
2005-01-19  7:13                 ` Werner Almesberger
2005-01-19 17:38                   ` Karim Yaghmour
2005-01-14 22:48 ` 2.6.11-rc1-mm1 Andre Eisenbach
2005-01-15  8:42   ` 2.6.11-rc1-mm1 Miklos Szeredi
2005-01-15  8:45   ` 2.6.11-rc1-mm1 Miklos Szeredi
     [not found] ` <1105740276.8604.83.camel@tglx.tec.linutronix.de>
2005-01-14 23:09   ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-15  0:01     ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-15  0:26       ` 2.6.11-rc1-mm1 Andrew Morton
2005-01-15  1:00         ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-15  1:25           ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-15 10:20             ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-16  4:13               ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16 15:19                 ` 2.6.11-rc1-mm1 Robert Wisniewski
2005-01-15  1:14       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-15  9:57         ` 2.6.11-rc1-mm1 Thomas Gleixner
2005-01-16 16:21     ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-16 19:49       ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16 20:11         ` 2.6.11-rc1-mm1 Robert Wisniewski
2005-01-16 20:32           ` 2.6.11-rc1-mm1 Andrew Morton
2005-01-16 21:06             ` 2.6.11-rc1-mm1 Robert Wisniewski
2005-01-16 21:40               ` 2.6.11-rc1-mm1 Arjan van de Ven
2005-01-17 15:48                 ` 2.6.11-rc1-mm1 Robert Wisniewski
2005-01-17 16:13                   ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-17 21:38                     ` 2.6.11-rc1-mm1 Karim Yaghmour
2005-01-16 20:39           ` 2.6.11-rc1-mm1 Christoph Hellwig
2005-01-16 21:14             ` 2.6.11-rc1-mm1 Robert Wisniewski
2005-01-15  2:58 ` 2.6.11-rc1-mm1 William Lee Irwin III
2005-01-17 22:19   ` 2.6.11-rc1-mm1 William Lee Irwin III
2005-01-16  0:59 ` 2.6.11-rc1-mm1 Joseph Fannin
2005-01-16 19:09   ` 2.6.11-rc1-mm1 Daniel Drake
2005-01-16 19:20     ` 2.6.11-rc1-mm1 William Lee Irwin III
2005-01-16 21:09   ` 2.6.11-rc1-mm1 Daniel Drake
2005-01-17 23:31     ` 2.6.11-rc1-mm1 J.A. Magallon
2005-01-18  2:35       ` 2.6.11-rc1-mm1 Daniel Drake
2005-01-18  2:54   ` [PATCH] Wait and retry mounting root device (revised) Daniel Drake
2005-01-18  0:34     ` Al Viro
2005-01-18  0:02       ` Randy.Dunlap
2005-01-18  8:05         ` Andries Brouwer
2005-01-18  8:28         ` Helge Hafting
2005-01-18  8:49           ` Andrew Morton
2005-01-18 13:20             ` Helge Hafting
2005-01-20 20:55             ` [PATCH] Configurable delay before mounting root device Daniel Drake
2005-01-20 20:24               ` Andrew Morton
2005-01-21 18:15                 ` Daniel Drake
2005-01-20 22:49               ` William Park
2005-01-18  1:03       ` [PATCH] Wait and retry mounting root device (revised) William Park
2005-01-19  0:43         ` Werner Almesberger
2005-01-18  8:02     ` Andries Brouwer
2005-01-19 20:11       ` Frank van Maarseveen
  -- strict thread matches above, loose matches on Subject: below --
2005-01-20 21:39 [RFC] Instrumentation (was Re: 2.6.11-rc1-mm1) Werner Almesberger
2005-01-20 23:07 ` Karim Yaghmour

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41E9CCEF.50401@opersys.com \
    --to=karim@opersys.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tim.bird@am.sony.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox