summaryrefslogtreecommitdiff
path: root/arch/sparc/kernel/apc.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-06-12 15:44:11 -0700
committerDavid S. Miller <davem@davemloft.net>2017-06-12 15:44:11 -0700
commit9300d9c4ad29b0e79c55c0ba7a16cfc4c13442b8 (patch)
tree46e76b92d42fe97e75fe59c77c2cca8e5f7713d6 /arch/sparc/kernel/apc.c
parent0abdfaf4a95435c0197603a262149019ca2f448d (diff)
parenteae3fc9871111e9bbc77dad5481a3e805e02ac46 (diff)
downloadlinux-9300d9c4ad29b0e79c55c0ba7a16cfc4c13442b8.tar.gz
linux-9300d9c4ad29b0e79c55c0ba7a16cfc4c13442b8.tar.bz2
linux-9300d9c4ad29b0e79c55c0ba7a16cfc4c13442b8.zip
Merge branch 'sparc64-early-boot-timestamp'
Pavel Tatashin says: ==================== sparc64: Early boot timestamp Changelog: v2 - v3: - __aligned(64) -> __cacheline_aligned - Replaced in sched_clock() wmb() with barrier() v1 - v2: - Early boot timestamps are now available on all 64-bit sparc processors - New hot-patched get_tick() function. This patch set: - enables early boot timestamps on SPARC, - adds offset so we count time from zero, the same as it is done on other platforms - improves the performance by inling, hot patching, and combining loads into the same cacheline. (and few other optimizations). So, the final performance of sched_clock() is faster than now: the fewer number of loads, and all of them are coming from the same cacheline. Loads can run while we are reading tick value, and we do not do function call. Current sched_clock(): sethi %hi(0xb9b400), %g1 ldx [ %g1 + 0x250 ], %g1 ldx [ %g1 ], %g1 call %g1 nop sethi %hi(0xb9b400), %g1 ldx [ %g1 + 0x300 ], %g1 mulx %o0, %g1, %g1 rett %i7 + 8 srlx %g1, 0xa, %o0 Final sched_clock(): sethi %hi(0xb9b400), %g1 ldx [ %g1 + 0x2c8 ], %g2 ldx [ %g1 + 0x2c0 ], %g1 b 42f638 <sched_clock+0x44> rd %asr24, %i0 ... sllx %i0, 1, %i0 srlx %i0, 1, %i0 mulx %i0, %g1, %i0 srlx %i0, 0xa, %i0 rett %i7 + 8 sub %o0, %g2, %o0 ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/apc.c')
0 files changed, 0 insertions, 0 deletions