Michael,
userspace/perftests patch to add use of asm/timex.h to get_clock.h
Andi Kleen agrees this the best way to pick up get_cycles().

PPC64 has a clean timex.h. PPC does not.

thanks,
grant

Signed-off-by: Grant Grundler <[EMAIL PROTECTED]>


Index: get_clock.h
===================================================================
--- get_clock.h (revision 2296)
+++ get_clock.h (working copy)
@@ -31,8 +31,10 @@
  *
  * $Id$
  */
+
 #include <unistd.h>
 #include <stdio.h>
+
 #if defined (__x86_64__) || defined(__i386__)
 typedef unsigned long long cycles_t;
 static inline cycles_t get_clock()
@@ -44,7 +46,12 @@ static inline cycles_t get_clock()
        val = (val << 32) | low;
        return val;
 }
-#elif defined(__PPC64__)
+
+#elif defined(__PPC__)
+/* PPC (32-bit) only provides a kernel version of get_cycles().
+ * Which implies some PPC (32-bit) do not support mftb.
+ * Use at your own risk.
+ */
 typedef unsigned long long cycles_t;
 static inline cycles_t get_cycles()
 {
@@ -53,17 +60,12 @@ static inline cycles_t get_cycles()
        asm volatile ("mftb %0" : "=r" (ret) : );
        return ret;
 }
-#elif defined(__ia64__)
-typedef unsigned long long cycles_t;
-static inline cycles_t get_cycles()
-{
-       cycles_t ret;
 
-       asm volatile ("mov %0=ar.itc" : "=r"(ret));
-       return ret;
-}
 #else
-#warning get_clock not implemented for this architecture
+
+/* Everyone else has nice timex.h */
+#include <asm/timex.h>
+
 #endif
 
 double get_cpu_mhz()
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to