]> git.baikalelectronics.ru Git - kernel.git/commit
x86: implement prctl PR_GET_TSC and PR_SET_TSC
authorErik Bosman <ejbosman@cs.vu.nl>
Sun, 13 Apr 2008 22:24:18 +0000 (00:24 +0200)
committerIngo Molnar <mingo@elte.hu>
Sat, 19 Apr 2008 17:19:55 +0000 (19:19 +0200)
commit22fac838eed02f22b9719efbb687a05a11d4aaaf
treea284d6511b6eef0ab83a3e9ada7a6ae300a33010
parent307fcc952fb64522415c9356e7dd747eb48415b3
x86: implement prctl PR_GET_TSC and PR_SET_TSC

This patch implements the PR_GET_TSC and PR_SET_TSC prctl()
commands on the x86 platform (both 32 and 64 bit.) These
commands control the ability to read the timestamp counter
from userspace (the RDTSC instruction.)

While the RDTSC instuction is a useful profiling tool,
it is also the source of some non-determinism in ring-3.
For deterministic replay applications it is useful to be
able to trap and emulate (and record the outcome of) this
instruction.

This patch uses code earlier used to disable the timestamp
counter for the SECCOMP framework. A side-effect of this
patch is that the SECCOMP environment will now also disable
the timestamp counter on x86_64 due to the addition of the
TIF_NOTSC define on this platform.

The code which enables/disables the RDTSC instruction during
context switches is in the __switch_to_xtra function, which
already handles other unusual conditions, so normal
performance should not have to suffer from this change.

Signed-off-by: Erik Bosman <ejbosman@cs.vu.nl>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
include/asm-x86/processor.h
include/asm-x86/thread_info_64.h
include/asm-x86/tsc.h