summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@engr.sgi.com>2006-03-02 02:54:35 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-02 08:33:07 -0800
commit685db65e422bfa523b8a9dacb5a658b42b254f05 (patch)
tree0d7eba52e7c9584a2e3b4f2cd1842bf55e67c2d0
parent7f99f06f01aa9460b5a18f1b0e0900c90d0a84fc (diff)
downloadlwn-685db65e422bfa523b8a9dacb5a658b42b254f05.tar.gz
lwn-685db65e422bfa523b8a9dacb5a658b42b254f05.zip
[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.c4
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)
return x();
case TIME_SOURCE_MMIO64 :
- return readq((void __iomem *) time_interpolator->addr);
+ return readq_relaxed((void __iomem *)time_interpolator->addr);
case TIME_SOURCE_MMIO32 :
- return readl((void __iomem *) time_interpolator->addr);
+ return readl_relaxed((void __iomem *)time_interpolator->addr);
default: return get_cycles();
}