Hello,

This patch adds support for Power7 to the perfmon2 kernel code. The changes are quite simple, happily, since Power7's PMU is programmed very similarly to the Power5 PMU.

Signed-off-by: Corey Ashford <cjash...@us.ibm.com>

Thanks for your consideration,

- Corey

Corey Ashford
Software Engineer
IBM Linux Technology Center, Linux Toolchain
Beaverton, OR
503-578-3507
cjash...@us.ibm.com
diff --git a/arch/powerpc/perfmon/Kconfig b/arch/powerpc/perfmon/Kconfig
index 3f4bbf2..6c0128f 100644
--- a/arch/powerpc/perfmon/Kconfig
+++ b/arch/powerpc/perfmon/Kconfig
@@ -47,6 +47,14 @@ config PERFMON_POWER6
        Enables support for the Power 6 hardware performance counters
        If unsure, say M.
 
+config PERFMON_POWER7
+       tristate "Support for Power7 hardware performance counters"
+       depends on PERFMON && PPC64
+       default n
+       help
+       Enables support for the Power 7 hardware performance counters
+       If unsure, say M.
+
 config PERFMON_PPC32
        tristate "Support for PPC32 hardware performance counters"
        depends on PERFMON && PPC32
diff --git a/arch/powerpc/perfmon/Makefile b/arch/powerpc/perfmon/Makefile
index 300661f..f989ce5 100644
--- a/arch/powerpc/perfmon/Makefile
+++ b/arch/powerpc/perfmon/Makefile
@@ -2,5 +2,6 @@ obj-$(CONFIG_PERFMON)           += perfmon.o
 obj-$(CONFIG_PERFMON_POWER4)   += perfmon_power4.o
 obj-$(CONFIG_PERFMON_POWER5)   += perfmon_power5.o
 obj-$(CONFIG_PERFMON_POWER6)   += perfmon_power6.o
+obj-$(CONFIG_PERFMON_POWER7)   += perfmon_power5.o
 obj-$(CONFIG_PERFMON_PPC32)    += perfmon_ppc32.o
 obj-$(CONFIG_PERFMON_CELL)     += perfmon_cell.o
diff --git a/arch/powerpc/perfmon/perfmon.c b/arch/powerpc/perfmon/perfmon.c
index 6e8d9cf..79b2e0d 100644
--- a/arch/powerpc/perfmon/perfmon.c
+++ b/arch/powerpc/perfmon/perfmon.c
@@ -292,6 +292,9 @@ char *pfm_arch_get_pmu_module_name(void)
                        return "perfmon_power6";
        case PV_POWER6:
                return "perfmon_power6";
+       case PV_POWER7:
+                /* PMU behaves like POWER5 */
+               return "perfmon_power5";
        case PV_970:
        case PV_970FX:
        case PV_970MP:
diff --git a/arch/powerpc/perfmon/perfmon_power5.c 
b/arch/powerpc/perfmon/perfmon_power5.c
index 332d536..15bb0a7 100644
--- a/arch/powerpc/perfmon/perfmon_power5.c
+++ b/arch/powerpc/perfmon/perfmon_power5.c
@@ -65,6 +65,8 @@ static int pfm_power5_probe_pmu(void)
                return 0;
        case PV_POWER5p:
                return (PVR_REV(pvr) < 0x300) ? 0 : -1;
+       case PV_POWER7:
+               return 0;
        default:
                return -1;
        }
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to