Messages in this thread | | | Date | Sun, 13 Apr 2008 12:29:31 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 1/3] Add prctl commands PR_GET_TSC and PR_SET_TSC |
| |
Andi Kleen wrote: > Erik Bosman <ejbosman@cs.vu.nl> writes: >> I'm using it for deterministic replay. > > Ok that should be in the changelog. > > BTW x86 CPUs are not fully deterministic. e.g. there are a few errata that > can lead to differing EFLAGS (generally for instructions with undefined flags > output) based on random internal pipe line conditions. >
I think you have to define "x86 CPUs" more tightly for that.
> There's also RDPMC, but by default the kernel does not enable that > for ring 3. And if you go for oddities there are the random number > generator instructions on VIA CPUs which will obviously not > be repeatable.
There has been calls for an RDPMC counter which exposes true CPU cycles (varying with frequency, as opposed to wall time.) And anything I/O -- including the RNG -- is obviously off.
I think what Erik is trying to do is to make it possible to disable as many of these in the kernel as possible; I/O is easy, it's off by default; RDTSC and RDPMC can be disabled in the kernel, and I think even XSTORE can be disabled.
-hpa
| |