Эх сурвалжийг харах

[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>
Christoph Lameter 19 жил өмнө
parent
commit
685db65e42
1 өөрчлөгдсөн 2 нэмэгдсэн , 2 устгасан
  1. 2 2
      kernel/timer.c

+ 2 - 2
kernel/timer.c

@@ -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();
 	}
 	}