From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Arjan van de Ven <arjan@linux.intel.com>,
Andre@firstfloor.org, ltt-dev@lists.casi.polymtl.ca,
linux-kernel@vger.kernel.org, pierre-marc.fournier@polymtl.ca
Subject: Re: [ANNOUNCE] New tools: lttngtrace and lttngreport
Date: Wed, 17 Nov 2010 12:31:24 -0500 [thread overview]
Message-ID: <20101117173124.GB13717@Krystal> (raw)
In-Reply-To: <87y68sqiyb.fsf@basil.nowhere.org>
* Andi Kleen (andi@firstfloor.org) wrote:
> Mathieu Desnoyers <mathieu.desnoyers@efficios.com> writes:
> >
> > --> Blocked in RUNNING, SYSCALL 142 [sys_select+0x0/0xc0], ([...], dur: 0.029567)
> > | --> Blocked in RUNNING, SYSCALL 168 [sys_poll+0x0/0xc0], ([...], dur: 1.187935)
> > | --- Woken up by an IRQ: IRQ 0 [timer]
> > --- Woken up in context of 7401 [gnome-power-man] in high-level state RUNNING
>
> Very nice! Now how can we get that with an unpatched kernel tree?
Well, I'm afraid the collection approach "trace" is currently taking won't allow
this kind of dependency wakeup chain tracking, because they focus on tracing
operations happening on a thread and its children, but the reality is that the
wakeup chains often spread outside of this scope.
This is why lttngtrace gathers a system-wide trace even though we're mostly
intested in the wait/wakeups of a specific PID.
Wakeup dependency analysis depends on a few key events to track these chains.
It's all described in Pierre-Marc Fournier's master thesis and implemented as
a LTTV plugin. Don't worry about the French cover page, the whole chapter 2
(p. 40-74) is in English:
http://publications.polymtl.ca/117/1/2009_Pierre-MarcFournier.pdf
The instrumentation needed for it, excerpt from the thesis:
"We instrumented scheduling changes (and whether they are caused by preemption
or blocking), process wakeups, IRQ entry/exit, softIRQ entry/exit, trap
entry/exit and process forking. Additionally, special state dump events are
generated at the beginning of the trace that indicate in what control flow state
(see section 2.2.3.1) each process is initially. All this instrumentation is
kernel-based, no application instrumentation is necessary.
In order to display detailed information in reports, the Delay Analyzer also
consumes events that give the following information.
– Mapping between IRQ number and name of hardware using it
– Mapping between softIRQ number and the function handling it
– Mapping between a process ID and its name
– Arguments of the open() system call, in order to save the mapping between file
descriptor and file name
– Arguments of the read() system call, in order to know what file caused the
system call to block
– What file descriptors caused a poll() system call to wake up
Work is under way to instrument yet more specific system calls."
Thanks,
Mathieu
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2010-11-17 17:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-15 13:42 [ANNOUNCE] New tools: lttngtrace and lttngreport Mathieu Desnoyers
2010-11-15 16:07 ` Mathieu Desnoyers
2010-11-17 11:37 ` Andi Kleen
2010-11-17 11:47 ` [ltt-dev] " Benjamin Poirier
2010-11-17 17:31 ` Mathieu Desnoyers [this message]
2010-11-17 21:44 ` Thomas Gleixner
2010-11-17 22:33 ` Steven Rostedt
2010-11-18 12:57 ` Mathieu Desnoyers
2010-11-17 22:01 ` Ingo Molnar
2010-11-18 2:38 ` Mathieu Desnoyers
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=20101117173124.GB13717@Krystal \
--to=mathieu.desnoyers@efficios.com \
--cc=Andre@firstfloor.org \
--cc=andi@firstfloor.org \
--cc=arjan@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ltt-dev@lists.casi.polymtl.ca \
--cc=mingo@elte.hu \
--cc=pierre-marc.fournier@polymtl.ca \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.