Messages in this thread | | | Date | Fri, 21 May 2010 20:36:49 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 0/4] perf: Precise task / softirq / hardirq filtered stats/profiles |
| |
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, 2010-05-21 at 17:12 +0200, Ingo Molnar wrote: > > 'exclusion' is the ABI detail. The feature your patches > > implement are to allow 'softirq limited' or 'task-context > > limited' or 'hardirq profiling' - which is way cool. > > > > One thing i'd like to see in this feature is for it to > > work on pure event counting - i.e. 'perf stat' as well. > > Its not really exclusion, all it does is discard samples > when in the wrong context (which happens to work > reasonably well for all the swevents, except for the > timer ones). > > If you really want to do exclusion you have to > disable/enable on *IRQ entry/exit, but I guess that gets > to be prohibitive on costs.
Yeah, i know - this is what i tried to allude to in my other part of my reply:
> > If we extended your feature to perf stat, we might be > > able to get a lot more precise measurements in terms > > of kernel optimizations (and kernel bloat).
Right, so there's two ways to do it, one is the disable/enable what you mention, the other would be to save the count and then read again and subtract the delta.
( the RDPMC based delta method can be made to work for sampling as well, even if the NMI hits in the middle of the softirq or hardirq. )
Two reads might be cheaper than a disable+enable. Especially if it's done using RDPMC.
We should do it like that, not by discarding samples, and overhead should be OK as long as we dont do the disable/enable (or delta read) if the feature is off.
If a simple enable/disable or read/read costs too much then we need to prod hw makers about it. But it should be OK i think.
Ingo
| |