Hello

The patch below (against the linux kernel) is needed on older SPARC 
machines in order to use perfmon2.  Without the patch, the machines will 
actually panic at boot as they try to run strcmp() on uninitialized 
memory as the pmu name is never set.

With this patch, I can use perfmon2 on an UltraSPARC2 based machine I 
have.

Unfortunately the UltraSPARC2 does not have a pmu interrupt :(
Would it make sense at some point to have a common infrastructure for 
using sampling to attempt to estimate 64-bit counts on machines without an 
overflow interrupt?  More machines than I expected have this problem.

Also, I am still working on the proper fix for Niagara to handle overflow 
properly.  It should be possible, I just haven't had time to work on it.

Thanks

Vince

--- arch/sparc64/kernel/cpu.c.orig      2008-09-11 11:17:56.000000000 -0400
+++ arch/sparc64/kernel/cpu.c   2008-09-11 11:17:23.000000000 -0400
@@ -50,17 +50,17 @@
  #define NSPARCFPU  ARRAY_SIZE(linux_sparc_fpu)

  static struct cpu_iu_info linux_sparc_chips[] = {
-  { 0x17, 0x10, "TI UltraSparc I   (SpitFire)"},
-  { 0x22, 0x10, "TI UltraSparc I   (SpitFire)"},
-  { 0x17, 0x11, "TI UltraSparc II  (BlackBird)"},
-  { 0x17, 0x12, "TI UltraSparc IIi (Sabre)"},
-  { 0x17, 0x13, "TI UltraSparc IIe (Hummingbird)"},
-  { 0x3e, 0x14, "TI UltraSparc III (Cheetah)"},
-  { 0x3e, 0x15, "TI UltraSparc III+ (Cheetah+)"},
-  { 0x3e, 0x16, "TI UltraSparc IIIi (Jalapeno)"},
-  { 0x3e, 0x18, "TI UltraSparc IV (Jaguar)"},
-  { 0x3e, 0x19, "TI UltraSparc IV+ (Panther)"},
-  { 0x3e, 0x22, "TI UltraSparc IIIi+ (Serrano)"},
+  { 0x17, 0x10, "TI UltraSparc I   (SpitFire)",    "ultra12"},
+  { 0x22, 0x10, "TI UltraSparc I   (SpitFire)",    "ultra12"},
+  { 0x17, 0x11, "TI UltraSparc II  (BlackBird)",   "ultra12"},
+  { 0x17, 0x12, "TI UltraSparc IIi (Sabre)",       "ultra12"},
+  { 0x17, 0x13, "TI UltraSparc IIe (Hummingbird)", "ultra12"},
+  { 0x3e, 0x14, "TI UltraSparc III (Cheetah)",     "ultra3"},
+  { 0x3e, 0x15, "TI UltraSparc III+ (Cheetah+)",   "ultra3+"},
+  { 0x3e, 0x16, "TI UltraSparc IIIi (Jalapeno)",   "ultra3i"},
+  { 0x3e, 0x18, "TI UltraSparc IV (Jaguar)",       "ultra4"},
+  { 0x3e, 0x19, "TI UltraSparc IV+ (Panther)",     "ultra4+"},
+  { 0x3e, 0x22, "TI UltraSparc IIIi+ (Serrano)",   "ultra3+"},
  };

  #define NSPARCCHIPS  ARRAY_SIZE(linux_sparc_chips)
@@ -142,6 +142,7 @@
                               manuf, impl);
                }
                sparc_cpu_type = "Unknown CPU";
+               sparc_pmu_type = "Unknown PMU";
        }

        for (i = 0; i < NSPARCFPU; i++) {

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to