> If nothing else, it distills from this that Linux' development has
> become highly politicized. You're either part of the in-crowd or
> you're not.
I think the problem is more that individual kernel developers don't really
(need to) look at the whole system or be responsible for it, just a one
corner of it. On commercial operating systems, there are dedicated people
who look after the whole thing and need to make sure that the whole thing
works fine (and this responsibility gives them influence over the
operating system implementation to make sure that these tools get done &
available).
If you're looking just at one or some parts of the whole system, things
like LTT (or to some extent Systemtap[1]) that try to get an overview of
what happens in the whole system may seem too large / complex /
intrusive / bloated. "I just need this specific info from the block
layer" (or memory subsystem, or ...). And then they write their own NIH
tracing for that single thing that doesn't much benefit others, or
somebody who wants to make sense out of the whole system.
Note: I have gotten useful info both from LTT and LTTng (lttng.org) + it's
finally getting easier to apply to kernel... LTTv plays a large part in
this too as one can easily zoom into details etc.
[1] Systemtap seems nice, but it doesn't have the post-processing /
visualization for the whole system like LTT does. I see it more like a
tool to do more specific analysis tools. However, for this kind of stuff
it's a bit too complicated (e.g. in embedded environments where you don't
want to run stap / compile the scripts on the device itself etc), so no
wonder devs write their own tracing...
Posted Aug 19, 2009 16:18 UTC (Wed) by fuhchee (subscriber, #40059)
[Link]
[1] Systemtap seems nice, but it doesn't have the post-processing /
visualization for the whole system like LTT does. I see it more like a
tool to do more specific analysis tools.
I see what you mean. systemtap people are working on some GUI data
graphing tools, but are just starting. (I got the impression though
that LTTV was being deprecated in favour of eclipse-based widgets,
which systemtap and other tools could feed data into also.)
However, for this kind of stuff it's a bit too complicated (e.g. in embedded environments where you don't want to run stap / compile the scripts on the device itself etc)
We hope to ease that pain by more automated cross-compilation/execution.
Fun with tracepoints
Posted Aug 20, 2009 19:29 UTC (Thu) by oak (subscriber, #2786)
[Link]
> I got the impression though that LTTV was being deprecated in favour of
eclipse-based widgets
Do you have any pointers to more information about this?
Fun with tracepoints
Posted Aug 20, 2009 19:32 UTC (Thu) by fuhchee (subscriber, #40059)
[Link]
As it assumes that one has a working user-space in problematic cases one
wants to analyze. Kernel should be able to optionally get the data out
also through some high-speed HW interface without going through user-space
and filling of the flight record buffer would better not rely on
user-space.
Fun with tracepoints
Posted Aug 22, 2009 16:23 UTC (Sat) by compudj (subscriber, #43335)
[Link]
About your comment on the architecture, I just want to clarify a few points. First, the architecture diagram you see at http://ltt.polymtl.ca/tracingwiki/images/4/46/Ts2009-Syst... focuses on tracing of userland. In this diagram, kernel tracing is contained within the "kernel trace facilities" box. For user-space tracing, where the goal is to get data out of the applications, it makes sense to consider than user-space is working. As you point out, this assumption makes less sense when we talk about tracing the kernel.
Second, more specifically about the LTTng kernel tracer, you are right in that the current mechanism used to extract data is a splice() system call controlled by a user-space daemon. However, alternate implementations of ltt-relay-alloc.c and ltt-relay-lockless.c could easily permit to use a high-speed debug interface. This has already been done with earlier LTTng versions for ARM.
The core of the LTTng kernel tracer therefore does not depend on userland. It's only the peripheral data extraction and trace control modules which depend on working userland. But they could be replaced easily by built-in kernel objects interacting directly with the LTTng kernel API. I made sure all operations we allow from interfaces presented to user-space are also doable from within the kernel.