diff options
| author | Brian Gerst <[email protected]> | 2010-09-03 21:17:12 -0400 |
|---|---|---|
| committer | H. Peter Anvin <[email protected]> | 2010-09-09 14:16:45 -0700 |
| commit | a4d4fbc7735bba6654b20f859135f9d3f8fe7f76 (patch) | |
| tree | 4b501fbfbce08e3222f137a284b354425162f873 /tools/perf/util/scripting-engines/trace-event-python.c | |
| parent | bfd946cb891800d408decaae268a3480775178a3 (diff) | |
x86-64, fpu: Disable preemption when using TS_USEDFPU
Consolidates code and fixes the below race for 64-bit.
commit 9fa2f37bfeb798728241cc4a19578ce6e4258f25
Author: torvalds <torvalds>
Date: Tue Sep 2 07:37:25 2003 +0000
Be a lot more careful about TS_USEDFPU and preemption
We had some races where we testecd (or set) TS_USEDFPU together
with sequences that depended on the setting (like clearing or
setting the TS flag in %cr0) and we could be preempted in between,
which screws up the FPU state, since preemption will itself change
USEDFPU and the TS flag.
This makes it a lot more explicit: the "internal" low-level FPU
functions ("__xxxx_fpu()") all require preemption to be disabled,
and the exported "real" functions will make sure that is the case.
One case - in __switch_to() - was switched to the non-preempt-safe
internal version, since the scheduler itself has already disabled
preemption.
BKrev: 3f5448b5WRiQuyzAlbajs3qoQjSobw
Signed-off-by: Brian Gerst <[email protected]>
Acked-by: Pekka Enberg <[email protected]>
Cc: Suresh Siddha <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: H. Peter Anvin <[email protected]>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
0 files changed, 0 insertions, 0 deletions