diff options
author | David S. Miller <davem@davemloft.net> | 2012-10-28 02:00:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-10-28 02:00:41 -0400 |
commit | e9b9eb59ffcdee09ec96b040f85c919618f4043e (patch) | |
tree | 30f93cc20aa577ec5b12f609641fdf84d0bd5124 /arch/sparc/kernel/vmlinux.lds.S | |
parent | 270c10e00a1e557e068803a22e0556281ceb1830 (diff) |
sparc64: Use pause instruction when available.
In atomic backoff and cpu_relax(), use the pause instruction
found on SPARC-T4 and later.
It makes the cpu strand unselectable for the given number of
cycles, unless an intervening disrupting trap occurs.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/sparc/kernel/vmlinux.lds.S | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index 89c2c29f154b..847f9f793618 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S | |||
@@ -132,6 +132,11 @@ SECTIONS | |||
132 | *(.popc_6insn_patch) | 132 | *(.popc_6insn_patch) |
133 | __popc_6insn_patch_end = .; | 133 | __popc_6insn_patch_end = .; |
134 | } | 134 | } |
135 | .pause_patch : { | ||
136 | __pause_patch = .; | ||
137 | *(.pause_patch) | ||
138 | __pause_patch_end = .; | ||
139 | } | ||
135 | PERCPU_SECTION(SMP_CACHE_BYTES) | 140 | PERCPU_SECTION(SMP_CACHE_BYTES) |
136 | 141 | ||
137 | . = ALIGN(PAGE_SIZE); | 142 | . = ALIGN(PAGE_SIZE); |