aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorAnthony Yznaga <anthony.yznaga@oracle.com>2017-08-18 12:40:36 -0700
committerDavid S. Miller <davem@davemloft.net>2017-09-09 20:20:11 -0700
commita7159a87a3836f61a97882e671d2d66bbb96c62e (patch)
tree3f56de47be55b0367bb7588869f9c95ee2516409 /arch/sparc/kernel/vmlinux.lds.S
parentsparc64: vcc: make ktermios const (diff)
downloadlinux-dev-a7159a87a3836f61a97882e671d2d66bbb96c62e.tar.xz
linux-dev-a7159a87a3836f61a97882e671d2d66bbb96c62e.zip
sparc64: speed up etrap/rtrap on NG2 and later processors
For many sun4v processor types, reading or writing a privileged register has a latency of 40 to 70 cycles. Use a combination of the low-latency allclean, otherw, normalw, and nop instructions in etrap and rtrap to replace 2 rdpr and 5 wrpr instructions and improve etrap/rtrap performance. allclean, otherw, and normalw are available on NG2 and later processors. The average ticks to execute the flush windows trap ("ta 0x3") with and without this patch on select platforms: CPU Not patched Patched % Latency Reduction NG2 1762 1558 -11.58 NG4 3619 3204 -11.47 M7 3015 2624 -12.97 SPARC64-X 829 770 -7.12 Signed-off-by: Anthony Yznaga <anthony.yznaga@oracle.com> 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.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S
index 34d37e6c2d06..d78847d56a4b 100644
--- a/arch/sparc/kernel/vmlinux.lds.S
+++ b/arch/sparc/kernel/vmlinux.lds.S
@@ -159,6 +159,11 @@ SECTIONS
*(.pud_huge_patch)
__pud_huge_patch_end = .;
}
+ .fast_win_ctrl_1insn_patch : {
+ __fast_win_ctrl_1insn_patch = .;
+ *(.fast_win_ctrl_1insn_patch)
+ __fast_win_ctrl_1insn_patch_end = .;
+ }
PERCPU_SECTION(SMP_CACHE_BYTES)
#ifdef CONFIG_JUMP_LABEL