Messages in this thread | | | Date | Mon, 15 Jun 2009 14:42:50 -0400 | From | Mathieu Desnoyers <> | Subject | Re: [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods |
| |
* Ingo Molnar (mingo@elte.hu) wrote: > > * Ingo Molnar <mingo@elte.hu> wrote: > > > The GUP based method is pretty generic though - and can be used on > > other architectures as well. It's not as fast as direct access > > though. > > Another question is: your patch switches over all normal exceptions > from IRET to hand-unroll+RET. >
Nope, it actually only switches the exceptions returning from an exception handler nested in NMI context to the hand-unroll+RET version. Given such exception nesting is expected to be very rare, it should not show any performance difference.
I also organised the code to make sure I did not add any test to the fast paths in my original patch.
> It would be really nice to benchmark it (via 'perf stat' for example > ;-) whether that's a slowdown or a speedup. > > If it's a slowdown then the decision is easy: we dont want this, we > want to push the overhead into the sampling code, away from common > codepaths. >
I did not try to make the "hand unroll + ret" the default. I therefore don't know if it is faster or slower than iret. But I prefered to stay on the safe side and only modify the exceptions nested within NMI handlers.
Mathieu
> [ If on the other hand it's a speedup of a few cycles then we have > the problem of me suddenly liking this patch a whole lot more ;-) ] > > Ingo
-- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
| |