Re: [PATCH] perf: Fix inconsistency between IP and callchain sampling

Ingo Molnar
2010-01-22T07:26:10Z

* Frederic Weisbecker <fweisbec@gmail.com> wrote:

> Concerning interrupts that happen in idle, I think we should filter these if
> exclude_idle = 1. That looks more something a user may want: if we don't
> want to profile idle, neither do we want to encumber with interrupts that
> occur inside. On the opposite, if someone wants a finegrained profile, let's
> get idle and its interrupts.
>
> What do you guys think about that?

Another, related thing i'd _love_ to see implemented is per IRQ level
filtering of both samples and statistics.

This would allow two nice things:

- the reporting of IRQ (and softirq/tasklet) contexts as separate entites by
perf report

- a 'no IRQ related noise' mode for perf task perf stat, like the
user/kernel/hypervisor bits already do, just extended to irqs as well. This
would make 'perf stat --repeat 10 /bin/true' _much_ less noisy, and could
be used even more to assess the performance impact of kernel patches.
Currently IRQs that hit task execution get added to the task's overhead,
which makes the numbers both skewed and noisier.

(The do_IRQ() callbacks are needed because most PMUs cannot stop counters when
we enter/exit IRQ/softirq state, so we have to turn counter off/on on irq
entries.)

Ingo