Re: [PATCH 1/3] Add prctl commands PR_GET_TSC and PR_SET_TSC

From: H. Peter Anvin
Date: Sun Apr 13 2008 - 15:33:40 EST


Andi Kleen wrote:
Erik Bosman <ejbosman@xxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/