diff options
author | Pavel Tatashin <pasha.tatashin@oracle.com> | 2017-06-12 23:41:42 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-13 01:44:02 +0300 |
commit | b8a83fcb78c859b99807af4c8b0ab09f0f827a40 (patch) | |
tree | cf9d44751c041922a6cbe362302404b067e11a9a /tools/perf/scripts/python/call-graph-from-postgresql.py | |
parent | 68a792174d7f67c7d2108bf1cc55ab8a63fc4678 (diff) | |
download | linux-b8a83fcb78c859b99807af4c8b0ab09f0f827a40.tar.xz |
sparc64: access tick function from variable
In timer_64.c tick functions are access via pointer (tick_ops), every time
clock is read, there is one extra load to get to the function.
This patch optimizes it, by accessing functions pointer from value.
Current ched_clock():
sethi %hi(0xb9b400), %g1
ldx [ %g1 + 0x250 ], %g1 ! <tick_ops>
ldx [ %g1 ], %g1
call %g1
nop
sethi %hi(0xb9b400), %g1
ldx [ %g1 + 0x300 ], %g1 ! <timer_ticks_per_nsec_quotient>
mulx %o0, %g1, %g1
rett %i7 + 8
srlx %g1, 0xa, %o0
New sched_clock():
sethi %hi(0xb9b400), %g1
ldx [ %g1 + 0x340 ], %g1
call %g1
nop
sethi %hi(0xb9b400), %g1
ldx [ %g1 + 0x378 ], %g1
mulx %o0, %g1, %g1
rett %i7 + 8
srlx %g1, 0xa, %o0
Before three loads, now two loads.
Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-postgresql.py')
0 files changed, 0 insertions, 0 deletions