[ofa-general] [PATCH] perftest - Fix proc_get_cpu_mhz() on IA64

sebastien dugue sebastien.dugue at bull.net
Tue May 19 05:09:21 PDT 2009



  On IA64, proc_get_cpu_mhz() must use the ITC frequency rather than
the CPU frequency.

Signed-off-by: Sebastien Dugue <sebastien.dugue at bull.net>

---
 get_clock.c |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/get_clock.c b/get_clock.c
index 0acb074..cc86452 100755
--- a/get_clock.c
+++ b/get_clock.c
@@ -144,12 +144,20 @@ static double proc_get_cpu_mhz(int no_cpu_freq_fail)
 	while(fgets(buf, sizeof(buf), f)) {
 		double m;
 		int rc;
+
+#if defined (__ia64__)
+		/* Use the ITC frequency on IA64 */
+		rc = sscanf(buf, "itc MHz : %lf", &m);
+#elif defined (__PPC__) || defined (__PPC64__)
+		/* PPC has a different format as well */
+		rc = sscanf(buf, "clock : %lf", &m);
+#else
 		rc = sscanf(buf, "cpu MHz : %lf", &m);
-		if (rc != 1) {	/* PPC has a different format */
-			rc = sscanf(buf, "clock : %lf", &m);
-			if (rc != 1)
-				continue;
-		}
+#endif
+
+		if (rc != 1)
+			continue;
+
 		if (mhz == 0.0) {
 			mhz = m;
 			continue;
-- 
1.6.3.rc3.12.gb7937




More information about the general mailing list