This patch allows Performance monitoring driver to detect when
operating in PowerPC compliance mode.
use patch -p0 to apply.
==========================================================================
diff -urN linux-2.6.26-rc7.orig/arch/powerpc/kernel/cputable.c
linux-2.6.26-rc7/arch/powerpc/kernel/cputable.c
--- linux-2.6.26-rc7.orig/arch/powerpc/kernel/cputable.c 2008-07-07
11:37:40.000000000 -0500
+++ linux-2.6.26-rc7/arch/powerpc/kernel/cputable.c 2008-07-07
11:27:09.000000000 -0500
@@ -352,6 +352,7 @@
.icache_bsize = 128,
.dcache_bsize = 128,
.machine_check = machine_check_generic,
+ .oprofile_cpu_type = "ppc64/compat-power5+",
.platform = "power5+",
},
{ /* Power6 */
@@ -383,6 +384,7 @@
.icache_bsize = 128,
.dcache_bsize = 128,
.machine_check = machine_check_generic,
+ .oprofile_cpu_type = "ppc64/compat-power6",
.platform = "power6",
},
{ /* 2.06-compliant processor, i.e. Power7 "architected" mode */
@@ -394,6 +396,7 @@
.icache_bsize = 128,
.dcache_bsize = 128,
.machine_check = machine_check_generic,
+ .oprofile_cpu_type = "ppc64/compat-power7",
.platform = "power7",
},
{ /* Power7 */
@@ -1593,6 +1596,12 @@
* from the real PVR with a new value obtained
* using a logical PVR value, don't modify the
* performance monitor fields.
+ * The performance monitor sub-system needs to have
+ * access to the values from the real PVR, but, at
+ * the same time it needs to be aware it may be running
+ * in compatibility mode. We we are changing the values
+ * for the real PVR to those of the compatibility PVR,
+ * change the oprofile_cpu_type field as well.
*/
if (t->num_pmcs && !s->num_pmcs) {
t->cpu_name = s->cpu_name;
@@ -1603,6 +1612,8 @@
t->cpu_setup = s->cpu_setup;
t->cpu_restore = s->cpu_restore;
t->platform = s->platform;
+ if (t->oprofile_cpu_type == NULL)
+ t->oprofile_cpu_type =
s->oprofile_cpu_type;
} else
*t = *s;
*PTRRELOC(&cur_cpu_spec) = &the_cpu_spec;
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev