Re: [PATCH 1/2] tracing/function-graph-tracer: signal interruptsentry/exit points on outpout

From: Ingo Molnar
Date: Mon Dec 08 2008 - 09:04:20 EST



* Frédéric Weisbecker <fweisbec@xxxxxxxxx> wrote:

> 2008/12/8 Ingo Molnar <mingo@xxxxxxx>:
> >
> > * Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
> >
> >> +/* Used during output to find the interrupts entry/exit points */
> >> +const char *ftrace_graph_irq_entries[] = {
> >> + "smp_call_function_single_interrupt",
> >> + "xen_call_function_single_interrupt",
> >> + "wrapper_smp_local_timer_interrupt",
> >> + "smp_irq_move_cleanup_interrupt",
> >> + "smp_call_function_interrupt",
> >> + "xen_call_function_interrupt",
> >> + "smp_apic_timer_interrupt",
> >> + "uv_bau_message_interrupt",
> >> + "mce_threshold_interrupt",
> >> + "smp_spurious_interrupt",
> >> + "smp_thermal_interrupt",
> >> + "smp_error_interrupt",
> >> + "do_IRQ",
> >> + NULL
> >
> > hm, couldnt we move these symbols to a separate section, and then only
> > check for [section.start ... section.end] instead of this ugly and slow
> > array?
> >
> > Missing a few annotations initially is no big deal - we wont have
> > pretty-print. do_IRQ() and smp_apic_timer_interrupt is what matters most
> > in practice. "__irqentry" section annotation or so, which puts them into
> > .text.irqentry or so - and then irqentry_start/end are extracted via
> > appropriate glue in the arch/x86/kernel/vmlinux* linker script.
>
>
> I found it a bit ugly too while I wrote it :-( I like this idea of a
> section, I will just have to verify if it is between the start and the
> end of it to check if its an irq entry. But I think that even if the
> others than do_IRQ and smp_apic_timer_interrupt are more rare, they
> should be annotated for this new section (and it seems there are new
> coming interrupts like smp_perf_counter_interrupt() in perf
> counter....)... Perhaps someone would profile them...
>
> Hm?

not annotating an IRQ entry is not a big problem in practice: people will
notice them in traces that they are not annotated, will send a feature
request, we annotate them. If they are not noticed, it means they are
rare in one way or another, and dont matter in practice. So this is a
self-maintaining concept.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/