diff options
author | Christoph Lameter <clameter@engr.sgi.com> | 2006-03-02 05:54:35 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-02 11:33:07 -0500 |
commit | 685db65e422bfa523b8a9dacb5a658b42b254f05 (patch) | |
tree | 0d7eba52e7c9584a2e3b4f2cd1842bf55e67c2d0 | |
parent | 7f99f06f01aa9460b5a18f1b0e0900c90d0a84fc (diff) |
[PATCH] time_interpolator: Use readq_relaxed() instead of readq().
On some platforms readq performs additional work to make sure I/O is done
in a coherent way. This is not needed for time retrieval as done by the
time interpolator. So we can use readq_relaxed instead which will improve
performance.
It affects sparc64 and ia64 only. Apparently it makes a significant
difference on ia64.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: john stultz <johnstul@us.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | kernel/timer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index fe3a9a9f8328..fc6646fd5aab 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
@@ -1351,10 +1351,10 @@ static inline u64 time_interpolator_get_cycles(unsigned int src) | |||
1351 | return x(); | 1351 | return x(); |
1352 | 1352 | ||
1353 | case TIME_SOURCE_MMIO64 : | 1353 | case TIME_SOURCE_MMIO64 : |
1354 | return readq((void __iomem *) time_interpolator->addr); | 1354 | return readq_relaxed((void __iomem *)time_interpolator->addr); |
1355 | 1355 | ||
1356 | case TIME_SOURCE_MMIO32 : | 1356 | case TIME_SOURCE_MMIO32 : |
1357 | return readl((void __iomem *) time_interpolator->addr); | 1357 | return readl_relaxed((void __iomem *)time_interpolator->addr); |
1358 | 1358 | ||
1359 | default: return get_cycles(); | 1359 | default: return get_cycles(); |
1360 | } | 1360 | } |