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 thewrong context (which happens to work reasonably well for all theswevents, except for the timer ones).

If you really want to do exclusion you have to disable/enable on *IRQentry/exit, but I guess that gets to be prohibitive on costs.

Implementing it shouldn't be too hard, just add some hooks toirq_enter() irq_exit() and __do_softirq(). Each such hook should loopover all active events and call ->stop/->start.

The only real problem would be poking at the hrtimer events from anhrtimer interrupt :-)