summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/vdso32/clock_gettime.S
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2014-08-29 12:44:40 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-09-09 08:53:27 +0200
commit070b7be633dc33c0899e8c934b4d5fad046b06e8 (patch)
tree4aa06300e711c8079754745e34852ac12c4dbfbf /arch/s390/kernel/vdso32/clock_gettime.S
parent369e8c355383143964290b6a706eb6639ae3588c (diff)
downloadtalos-obmc-linux-070b7be633dc33c0899e8c934b4d5fad046b06e8.tar.gz
talos-obmc-linux-070b7be633dc33c0899e8c934b4d5fad046b06e8.zip
s390/vdso: replace stck with stcke
If gettimeofday / clock_gettime are called multiple times in a row the STCK instruction will stall until a difference in the result is visible. This unnecessarily slows down the vdso calls, use stcke instead of stck to get rid of the stall. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/vdso32/clock_gettime.S')
-rw-r--r--arch/s390/kernel/vdso32/clock_gettime.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/vdso32/clock_gettime.S b/arch/s390/kernel/vdso32/clock_gettime.S
index 7cf18f8d4cb4..4e20a9365bb7 100644
--- a/arch/s390/kernel/vdso32/clock_gettime.S
+++ b/arch/s390/kernel/vdso32/clock_gettime.S
@@ -30,8 +30,8 @@ __kernel_clock_gettime:
1: l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */
tml %r4,0x0001 /* pending update ? loop */
jnz 1b
- stck 24(%r15) /* Store TOD clock */
- lm %r0,%r1,24(%r15)
+ stcke 24(%r15) /* Store TOD clock */
+ lm %r0,%r1,25(%r15)
s %r0,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
sl %r1,__VDSO_XTIME_STAMP+4(%r5)
brc 3,2f
@@ -72,8 +72,8 @@ __kernel_clock_gettime:
11: l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */
tml %r4,0x0001 /* pending update ? loop */
jnz 11b
- stck 24(%r15) /* Store TOD clock */
- lm %r0,%r1,24(%r15)
+ stcke 24(%r15) /* Store TOD clock */
+ lm %r0,%r1,25(%r15)
s %r0,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
sl %r1,__VDSO_XTIME_STAMP+4(%r5)
brc 3,12f
OpenPOWER on IntegriCloud