Re: [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods

Ingo Molnar
2009-06-15T20:59:42Z

* H. Peter Anvin <hpa@zytor.com> wrote:

> Linus Torvalds wrote:
> >
> > On Mon, 15 Jun 2009, Jeremy Fitzhardinge wrote:
> >> We have to restore the usermode %gs somewhere...
> >
> > None of this is useful for user-mode return _anyway_, since you have to
> > restore %cs/%ss too. At that point, you have to use iret.
>
> cs/ss you could potentially restore with sysret/sysexit, at least
> for the common case. Of course, this means more cases...

hm, does this really work? Using sysret there would be quite
tempting. Does anyone know the rough cycle count difference between
IRET and SYSRET on contemporary hardware?

Also, is SYSRET NMI-invariant? If yes then this would be a quite
clean all-around solution: on modern hw we'd standardize on doing
SYSRET from pretty much all the contexts. We'd get a nice speedup
and also the NMI nested pagefaults fix.

Oh, compat mode. Doesnt SYSRET on Intel CPUs have the problem of not
being able to switch back to 32-bit user-space?

Ingo