Messages in this thread | | | Date | Mon, 15 Jun 2009 22:59:11 +0200 | From | Ingo Molnar <> | Subject | Re: [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods |
| |
* 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
| |