[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>
This commit is contained in:
Родитель
7f99f06f01
Коммит
685db65e42
|
@ -1351,10 +1351,10 @@ static inline u64 time_interpolator_get_cycles(unsigned int src)
|
||||||
return x();
|
return x();
|
||||||
|
|
||||||
case TIME_SOURCE_MMIO64 :
|
case TIME_SOURCE_MMIO64 :
|
||||||
return readq((void __iomem *) time_interpolator->addr);
|
return readq_relaxed((void __iomem *)time_interpolator->addr);
|
||||||
|
|
||||||
case TIME_SOURCE_MMIO32 :
|
case TIME_SOURCE_MMIO32 :
|
||||||
return readl((void __iomem *) time_interpolator->addr);
|
return readl_relaxed((void __iomem *)time_interpolator->addr);
|
||||||
|
|
||||||
default: return get_cycles();
|
default: return get_cycles();
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче