aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/setup_64.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-10-27 18:05:20 -0700
committerDavid S. Miller <davem@davemloft.net>2012-10-27 18:35:27 -0700
commit270c10e00a1e557e068803a22e0556281ceb1830 (patch)
tree14df99d0a7f35110d6d72687e6e8e588edce659b /arch/sparc/kernel/setup_64.c
parentsparc64: Make montmul/montsqr/mpmul usable in 32-bit threads. (diff)
downloadlinux-dev-270c10e00a1e557e068803a22e0556281ceb1830.tar.xz
linux-dev-270c10e00a1e557e068803a22e0556281ceb1830.zip
sparc64: Fix cpu strand yielding.
For atomic backoff, we just loop over an exponentially backed off counter. This is extremely ineffective as it doesn't actually yield the cpu strand so that other competing strands can use the cpu core. In cpus previous to SPARC-T4 we have to do this in a slightly hackish way, by doing an operation with no side effects that also happens to mark the strand as unavailable. The mechanism we choose for this is three reads of the %ccr (condition-code) register into %g0 (the zero register). SPARC-T4 has an explicit "pause" instruction, and we'll make use of that in a subsequent commit. Yield strands also in cpu_relax(). We really should have done this a very long time ago. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/setup_64.c')
0 files changed, 0 insertions, 0 deletions