From: rostedt@goodmis.org (Steven Rostedt)
Subject: [ltt-dev] [patch 2/9] LTTng instrumentation - irq
Date: Tue, 24 Mar 2009 22:09:07 -0400 (EDT) [thread overview]
Message-ID: <alpine.DEB.2.00.0903242203480.22830@gandalf.stny.rr.com> (raw)
In-Reply-To: <20090324201146.GA4350@Krystal>
On Tue, 24 Mar 2009, Mathieu Desnoyers wrote:
>
> This third type of tracepoint for IRQs you are talking about is actually
> what I had in LTTng. I decided to add the irq_next_handler and to add a
> action field to irq_entry to include the irq handler information needed
> by Jason.
>
> If we want to do this logically, without thinking about tracer
> performance impact, we could/should do :
>
> trace_irq_entry(irqno, pt_regs)
> for_each_handler() {
> trace_irq_handler_entry(action)
> action->handler()
> trace_irq_handler_exit(ret)
> }
> trace_irq_exit(retval)
>
> And add the irq_entry/irq_exit events to the arch-specific reschedule,
> tlb flush, local timer irq, as I have in my lttng tree already.
>
> But given the trace_irq_handler_entry/trace_irq_handler_exit events
> could be combined, given we can record action and ret in the
> irq_entry/exit events, I decided to remove 2 tracepoints (out of 4) from
> the single-handler fast path by adding this information to the irq
> entry/exit events, and decided to combine the irq_handler entry/exit
> into a single next_handler event, which records the previous ret value
> and the next action to execute.
>
> On an interrupt-driven workload, it will have a significant impact.
> (2 events vs 4).
I thought tracepoints while not active are very low overhead.
If you only want to use 2 of the 4, would that be just as fast?
>
> If we add interrupt threads to the kernel, then we can switch to the
> following scheme :
>
> * instrumentation of the real interrupt handler :
>
> trace_irq_entry(irqno, pt_regs)
>
> trace_irq_exit(ret)
>
> * instrumentation of the irq threads :
>
> trace_irq_thread_entry()
>
> trace_irq_thread_exit()
>
> I don't see why we should mind trying to make the tracepoints "logical",
> especially if it hurts performance considerably. Doing these
> implementation-specific versions of irq tracepoints would provide the
> best performance we can get when tracing. It's up to the tracers to
> specialize their analysis based on the underlying IRQ mechanism
> (non-threaded vs threaded).
Perhaps we want to make them logical so that other things might hook into
these trace points besides a tracer. I do not agree that the code should
be modified just to make the trace points faster. The trace points are
just hooks into code, and should have no effect when disabled. Once the
code starts to change due to better placement of tracepoints for tracers,
that's when those trace points should be NACKed.
-- Steve
next prev parent reply other threads:[~2009-03-25 2:09 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-24 15:56 [ltt-dev] [patch 0/9] LTTng core kernel instrumentation Mathieu Desnoyers
2009-03-24 15:56 ` [ltt-dev] [patch 1/9] IRQ handle prepare for instrumentation Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` [ltt-dev] [patch 2/9] LTTng instrumentation - irq Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 17:33 ` Jason Baron
2009-03-24 17:50 ` Ingo Molnar
2009-03-24 17:57 ` Jason Baron
2009-03-24 19:12 ` Ingo Molnar
2009-03-24 20:11 ` Mathieu Desnoyers
2009-03-24 20:51 ` Ingo Molnar
2009-03-25 8:47 ` Ingo Molnar
2009-03-25 18:30 ` Mathieu Desnoyers
2009-03-25 2:00 ` Steven Rostedt
2009-03-26 18:27 ` Mathieu Desnoyers
2009-03-27 22:53 ` Steven Rostedt
2009-04-02 2:42 ` Mathieu Desnoyers
2009-03-25 2:09 ` Steven Rostedt [this message]
2009-03-26 18:28 ` Mathieu Desnoyers
2009-03-27 19:18 ` Jason Baron
2009-03-24 19:14 ` Ingo Molnar
2009-03-27 22:12 ` Thomas Gleixner
2009-03-24 15:56 ` [ltt-dev] [patch 3/9] LTTng instrumentation tasklets Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 17:56 ` Ingo Molnar
2009-03-25 13:52 ` Chetan.Loke
2009-03-25 14:17 ` Peter Zijlstra
2009-03-25 17:37 ` Chetan.Loke
2009-03-25 17:52 ` Steven Rostedt
2009-03-24 15:56 ` [ltt-dev] [patch 4/9] LTTng instrumentation softirq Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 18:01 ` Ingo Molnar
2009-03-24 15:56 ` [ltt-dev] [patch 5/9] LTTng instrumentation scheduler fix task migration Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 17:53 ` Ingo Molnar
2009-03-24 15:56 ` [ltt-dev] [patch 6/9] LTTng instrumentation - timer Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 18:21 ` Ingo Molnar
2009-03-24 19:14 ` Thomas Gleixner
2009-03-24 20:47 ` Ingo Molnar
2009-03-27 22:05 ` Thomas Gleixner
2009-03-24 15:56 ` [ltt-dev] [patch 7/9] LTTng instrumentation - kernel Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 18:33 ` Ingo Molnar
2009-03-25 1:13 ` Rusty Russell
2009-03-25 8:40 ` Ingo Molnar
2009-03-25 13:06 ` Frederic Weisbecker
2009-03-24 15:56 ` [ltt-dev] [patch 8/9] LTTng instrumentation - filemap Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 18:39 ` Ingo Molnar
2009-03-24 15:56 ` [ltt-dev] [patch 9/9] LTTng instrumentation - swap Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 15:56 ` Mathieu Desnoyers
2009-03-24 18:51 ` Ingo Molnar
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=alpine.DEB.2.00.0903242203480.22830@gandalf.stny.rr.com \
--to=rostedt@goodmis.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox