> Please re-send. I thought I had applied it at some point.

Here is an updated version against the current tree.


For Pentium Pro:
      A large number of PII/PIII only events removed.

For Pentium II, the following were removed:
        EMON_KNI_PREF_DISPATCHED   /* these are PIII only */
        EMON_KNI_PREF_MISS
        EMON_KNI_INST_RETIRED
        EMON_KNI_COMP_INST_RET

For Pentium III, the following were removed:
        MMX_INSTR_EXEC    /* the manual says these are PII only */
        MMX_INSTR_RET

For Pentium M, the following were removed:
        MMX_INSTR_EXEC    /* the manual says these are PII only */
        MMX_INSTR_RET



--- libpfm-3.2-071017/lib/i386_p6_events.h.orig 2007-10-30 19:53:22.000000000 
-0500
+++ libpfm-3.2-071017/lib/i386_p6_events.h      2007-10-30 20:03:28.000000000 
-0500
@@ -77,6 +77,243 @@
                }}


+#define I386_P6_PII_ONLY_PME \
+       {.pme_name = "MMX_INSTR_EXEC",\
+        .pme_code = 0xb0,\
+        .pme_desc = "Number of MMX instructions executed"\
+       },\
+       {.pme_name = "MMX_INSTR_RET",\
+        .pme_code = 0xce,\
+        .pme_desc = "Number of MMX instructions retired"\
+       }\
+
+#define I386_P6_PII_PIII_PME \
+       {.pme_name = "MMX_SAT_INSTR_EXEC",\
+        .pme_code = 0xb1,\
+        .pme_desc = "Number of MMX saturating instructions executed"\
+       },\
+       {.pme_name = "MMX_UOPS_EXEC",\
+        .pme_code = 0xb2,\
+        .pme_desc = "Number of MMX micro-ops executed"\
+       },\
+       {.pme_name = "MMX_INSTR_TYPE_EXEC",\
+        .pme_code = 0xb3,\
+        .pme_desc = "Number of MMX instructions executed by type",\
+        .pme_flags   = PFMLIB_I386_P6_UMASK_COMBO, \
+        .pme_numasks = 6, \
+        .pme_umasks = { \
+               { .pme_uname = "MUL", \
+                 .pme_udesc = "MMX packed multiply instructions executed", \
+                 .pme_ucode = 0x1 \
+               }, \
+               { .pme_uname = "SHIFT", \
+                 .pme_udesc = "MMX packed shift instructions executed", \
+                 .pme_ucode = 0x2 \
+               }, \
+               { .pme_uname = "PACK", \
+                 .pme_udesc = "MMX pack operation instructions executed", \
+                 .pme_ucode = 0x4 \
+               }, \
+               { .pme_uname = "UNPACK", \
+                 .pme_udesc = "MMX unpack operation instructions executed", \
+                 .pme_ucode = 0x8 \
+               }, \
+               { .pme_uname = "LOGICAL", \
+                 .pme_udesc = "MMX packed logical instructions executed", \
+                 .pme_ucode = 0x10 \
+               }, \
+               { .pme_uname = "ARITH", \
+                 .pme_udesc = "MMX packed arithmetic instructions executed", \
+                 .pme_ucode = 0x20 \
+               } \
+        }\
+       },\
+       {.pme_name = "FP_MMX_TRANS",\
+        .pme_code = 0xcc,\
+        .pme_desc = "Number of MMX transitions",\
+        .pme_numasks = 2, \
+        .pme_umasks = { \
+               { .pme_uname = "TO_FP", \
+                 .pme_udesc = "from MMX instructions to floating-point 
instructions", \
+                 .pme_ucode = 0x00 \
+               }, \
+               { .pme_uname = "TO_MMX", \
+                 .pme_udesc = "from floating-point instructions to MMX 
instructions", \
+                 .pme_ucode = 0x01 \
+               }\
+        }\
+       },\
+       {.pme_name = "MMX_ASSIST",\
+        .pme_code = 0xcd,\
+        .pme_desc = "Number of MMX micro-ops executed"\
+       },\
+       {.pme_name = "SEG_RENAME_STALLS",\
+        .pme_code = 0xd4,\
+        .pme_desc = "Number of Segment Register Renaming Stalls", \
+        .pme_flags   = PFMLIB_I386_P6_UMASK_COMBO, \
+        .pme_numasks = 4, \
+        .pme_umasks = { \
+               { .pme_uname = "ES", \
+                 .pme_udesc = "Segment register ES", \
+                 .pme_ucode = 0x1 \
+               }, \
+               { .pme_uname = "DS", \
+                 .pme_udesc = "Segment register DS", \
+                 .pme_ucode = 0x2 \
+               }, \
+               { .pme_uname = "FS", \
+                 .pme_udesc = "Segment register FS", \
+                 .pme_ucode = 0x4 \
+               }, \
+               { .pme_uname = "GS", \
+                 .pme_udesc = "Segment register GS", \
+                 .pme_ucode = 0x8 \
+               } \
+        }\
+       },\
+       {.pme_name = "SEG_REG_RENAMES",\
+        .pme_code = 0xd5,\
+        .pme_desc = "Number of Segment Register Renames", \
+        .pme_flags   = PFMLIB_I386_P6_UMASK_COMBO, \
+        .pme_numasks = 4, \
+        .pme_umasks = { \
+               { .pme_uname = "ES", \
+                 .pme_udesc = "Segment register ES", \
+                 .pme_ucode = 0x1 \
+               }, \
+               { .pme_uname = "DS", \
+                 .pme_udesc = "Segment register DS", \
+                 .pme_ucode = 0x2 \
+               }, \
+               { .pme_uname = "FS", \
+                 .pme_udesc = "Segment register FS", \
+                 .pme_ucode = 0x4 \
+               }, \
+               { .pme_uname = "GS", \
+                 .pme_udesc = "Segment register GS", \
+                 .pme_ucode = 0x8 \
+               } \
+        }\
+       },\
+       {.pme_name = "RET_SEG_RENAMES",\
+        .pme_code = 0xd6,\
+        .pme_desc = "Number of segment register rename events retired"\
+       } \
+
+#define I386_P6_PIII_PME \
+       {.pme_name = "EMON_KNI_PREF_DISPATCHED",\
+        .pme_code = 0x07,\
+        .pme_desc = "Number of Streaming SIMD extensions 
prefetch/weakly-ordered instructions dispatched " \
+                    "(speculative prefetches are included in counting). 
Pentium III and later",\
+        .pme_numasks = 4, \
+        .pme_umasks = { \
+               { .pme_uname = "NTA", \
+                 .pme_udesc = "prefetch NTA", \
+                 .pme_ucode = 0x00 \
+               }, \
+               { .pme_uname = "T1", \
+                 .pme_udesc = "prefetch T1", \
+                 .pme_ucode = 0x01 \
+               }, \
+               { .pme_uname = "T2", \
+                 .pme_udesc = "prefetch T2", \
+                 .pme_ucode = 0x02 \
+               }, \
+               { .pme_uname = "WEAK", \
+                 .pme_udesc = "weakly ordered stores", \
+                 .pme_ucode = 0x03 \
+               } \
+        } \
+       },\
+       {.pme_name = "EMON_KNI_PREF_MISS",\
+        .pme_code = 0x4b,\
+        .pme_desc = "Number of prefetch/weakly-ordered instructions that miss 
all caches. Pentium III and later",\
+        .pme_numasks = 4, \
+        .pme_umasks = { \
+               { .pme_uname = "NTA", \
+                 .pme_udesc = "prefetch NTA", \
+                 .pme_ucode = 0x00 \
+               }, \
+               { .pme_uname = "T1", \
+                 .pme_udesc = "prefetch T1", \
+                 .pme_ucode = 0x01 \
+               }, \
+               { .pme_uname = "T2", \
+                 .pme_udesc = "prefetch T2", \
+                 .pme_ucode = 0x02 \
+               }, \
+               { .pme_uname = "WEAK", \
+                 .pme_udesc = "weakly ordered stores", \
+                 .pme_ucode = 0x03 \
+               } \
+        } \
+       } \
+
+
+#define I386_P6_CPU_CLK_UNHALTED \
+       {.pme_name = "CPU_CLK_UNHALTED",\
+        .pme_code = 0x79,\
+        .pme_desc =  "Number cycles during which the processor is not halted"\
+       }\
+
+
+#define I386_P6_NOT_PM_PME \
+       {.pme_name = "L2_LD",\
+        .pme_code = 0x29,\
+        .pme_desc =  "Number of L2 data loads. This event indicates that a 
normal, unlocked, load memory access "\
+               "was received by the L2. It includes only L2 cacheable memory 
accesses; it does not include I/O "\
+               "accesses, other non-memory accesses, or memory accesses such 
as UC/WT memory accesses. It does include "\
+               "L2 cacheable TLB miss memory accesses",\
+        I386_P6_MESI_UMASKS\
+       },\
+       {.pme_name = "L2_LINES_IN",\
+        .pme_code = 0x24,\
+        .pme_desc =  "Number of lines allocated in the L2"\
+       },\
+       {.pme_name = "L2_LINES_OUT",\
+        .pme_code = 0x26,\
+        .pme_desc =  "Number of lines removed from the L2 for any reason"\
+       },\
+       {.pme_name = "L2_M_LINES_OUTM",\
+        .pme_code = 0x27,\
+        .pme_desc =  "Number of modified lines removed from the L2 for any 
reason"\
+       }\
+
+
+#define I386_P6_PIII_NOT_PM_PME \
+       {.pme_name = "EMON_KNI_INST_RETIRED",\
+        .pme_code = 0xd8,\
+        .pme_desc = "Number of SSE instructions retired. Pentium III and 
later",\
+        .pme_numasks = 2, \
+        .pme_umasks = { \
+               { .pme_uname = "PACKED_SCALAR", \
+                 .pme_udesc = "packed and scalar instructions", \
+                 .pme_ucode = 0x00 \
+               }, \
+               { .pme_uname = "SCALAR", \
+                 .pme_udesc = "scalar only", \
+                 .pme_ucode = 0x01 \
+               } \
+        } \
+       },\
+       {.pme_name = "EMON_KNI_COMP_INST_RET",\
+        .pme_code = 0xd9,\
+        .pme_desc = "Number of SSE computation instructions retired. Pentium 
III and later",\
+        .pme_numasks = 2, \
+        .pme_umasks = { \
+               { .pme_uname = "PACKED_SCALAR", \
+                 .pme_udesc = "packed and scalar instructions", \
+                 .pme_ucode = 0x00 \
+               }, \
+               { .pme_uname = "SCALAR", \
+                 .pme_udesc = "scalar only", \
+                 .pme_ucode = 0x01 \
+               } \
+        } \
+       }\
+
+
+
 #define I386_P6_COMMON_PME \
        {.pme_name = "INST_RETIRED",\
         .pme_code = 0xc0,\
@@ -468,53 +705,6 @@
                     "Counting is performed if it is the first or second half 
or if it is blocked, squashed, "\
                     "or missed. In this context, misaligned means crossing a 
64-bit boundary"\
        },\
-       {.pme_name = "EMON_KNI_PREF_DISPATCHED",\
-        .pme_code = 0x07,\
-        .pme_desc = "Number of Streaming SIMD extensions 
prefetch/weakly-ordered instructions dispatched " \
-                    "(speculative prefetches are included in counting). 
Pentium III and later",\
-        .pme_numasks = 4, \
-        .pme_umasks = { \
-               { .pme_uname = "NTA", \
-                 .pme_udesc = "prefetch NTA", \
-                 .pme_ucode = 0x00 \
-               }, \
-               { .pme_uname = "T1", \
-                 .pme_udesc = "prefetch T1", \
-                 .pme_ucode = 0x01 \
-               }, \
-               { .pme_uname = "T2", \
-                 .pme_udesc = "prefetch T2", \
-                 .pme_ucode = 0x02 \
-               }, \
-               { .pme_uname = "WEAK", \
-                 .pme_udesc = "weakly ordered stores", \
-                 .pme_ucode = 0x03 \
-               } \
-        } \
-       },\
-       {.pme_name = "EMON_KNI_PREF_MISS",\
-        .pme_code = 0x4b,\
-        .pme_desc = "Number of prefetch/weakly-ordered instructions that miss 
all caches. Pentium III and later",\
-        .pme_numasks = 4, \
-        .pme_umasks = { \
-               { .pme_uname = "NTA", \
-                 .pme_udesc = "prefetch NTA", \
-                 .pme_ucode = 0x00 \
-               }, \
-               { .pme_uname = "T1", \
-                 .pme_udesc = "prefetch T1", \
-                 .pme_ucode = 0x01 \
-               }, \
-               { .pme_uname = "T2", \
-                 .pme_udesc = "prefetch T2", \
-                 .pme_ucode = 0x02 \
-               }, \
-               { .pme_uname = "WEAK", \
-                 .pme_udesc = "weakly ordered stores", \
-                 .pme_ucode = 0x03 \
-               } \
-        } \
-       },\
        {.pme_name = "UOPS_RETIRED",\
         .pme_code = 0xc2,\
         .pme_desc =  "Number of micro-ops retired"\
@@ -523,36 +713,6 @@
         .pme_code = 0xd0,\
         .pme_desc = "Number of instructions decoded"\
        },\
-       {.pme_name = "EMON_KNI_INST_RETIRED",\
-        .pme_code = 0xd8,\
-        .pme_desc = "Number of SSE instructions retired. Pentium III and 
later",\
-        .pme_numasks = 2, \
-        .pme_umasks = { \
-               { .pme_uname = "PACKED_SCALAR", \
-                 .pme_udesc = "packed and scalar instructions", \
-                 .pme_ucode = 0x00 \
-               }, \
-               { .pme_uname = "SCALAR", \
-                 .pme_udesc = "scalar only", \
-                 .pme_ucode = 0x01 \
-               } \
-        } \
-       },\
-       {.pme_name = "EMON_KNI_COMP_INST_RET",\
-        .pme_code = 0xd9,\
-        .pme_desc = "Number of SSE computation instructions retired. Pentium 
III and later",\
-        .pme_numasks = 2, \
-        .pme_umasks = { \
-               { .pme_uname = "PACKED_SCALAR", \
-                 .pme_udesc = "packed and scalar instructions", \
-                 .pme_ucode = 0x00 \
-               }, \
-               { .pme_uname = "SCALAR", \
-                 .pme_udesc = "scalar only", \
-                 .pme_ucode = 0x01 \
-               } \
-        } \
-       },\
        {.pme_name = "HW_INT_RX",\
         .pme_code = 0xc8,\
         .pme_desc = "Number of hardware interrupts received"\
@@ -615,160 +775,59 @@
        {.pme_name = "SEGMENT_REG_LOADS",\
         .pme_code = 0x06,\
         .pme_desc = "Number of segment register loads."\
-       },\
-       {.pme_name = "MMX_INSTR_EXEC",\
-        .pme_code = 0xb0,\
-        .pme_desc = "Number of MMX instructions executed"\
-       },\
-       {.pme_name = "MMX_SAT_INSTR_EXEC",\
-        .pme_code = 0xb1,\
-        .pme_desc = "Number of MMX saturating instructions executed"\
-       },\
-       {.pme_name = "MMX_UOPS_EXEC",\
-        .pme_code = 0xb2,\
-        .pme_desc = "Number of MMX micro-ops executed"\
-       },\
-       {.pme_name = "MMX_INSTR_TYPE_EXEC",\
-        .pme_code = 0xb3,\
-        .pme_desc = "Number of MMX instructions executed by type",\
-        .pme_flags   = PFMLIB_I386_P6_UMASK_COMBO, \
-        .pme_numasks = 6, \
-        .pme_umasks = { \
-               { .pme_uname = "MUL", \
-                 .pme_udesc = "MMX packed multiply instructions executed", \
-                 .pme_ucode = 0x1 \
-               }, \
-               { .pme_uname = "SHIFT", \
-                 .pme_udesc = "MMX packed shift instructions executed", \
-                 .pme_ucode = 0x2 \
-               }, \
-               { .pme_uname = "PACK", \
-                 .pme_udesc = "MMX pack operation instructions executed", \
-                 .pme_ucode = 0x4 \
-               }, \
-               { .pme_uname = "UNPACK", \
-                 .pme_udesc = "MMX unpack operation instructions executed", \
-                 .pme_ucode = 0x8 \
-               }, \
-               { .pme_uname = "LOGICAL", \
-                 .pme_udesc = "MMX packed logical instructions executed", \
-                 .pme_ucode = 0x10 \
-               }, \
-               { .pme_uname = "ARITH", \
-                 .pme_udesc = "MMX packed arithmetic instructions executed", \
-                 .pme_ucode = 0x20 \
-               } \
-        }\
-       },\
-       {.pme_name = "FP_MMX_TRANS",\
-        .pme_code = 0xcc,\
-        .pme_desc = "Number of MMX transitions",\
-        .pme_numasks = 2, \
-        .pme_umasks = { \
-               { .pme_uname = "TO_FP", \
-                 .pme_udesc = "from MMX instructions to floating-point 
instructions", \
-                 .pme_ucode = 0x00 \
-               }, \
-               { .pme_uname = "TO_MMX", \
-                 .pme_udesc = "from floating-point instructions to MMX 
instructions", \
-                 .pme_ucode = 0x01 \
-               }\
-        }\
-       },\
-       {.pme_name = "MMX_ASSIST",\
-        .pme_code = 0xcd,\
-        .pme_desc = "Number of MMX micro-ops executed"\
-       },\
-       {.pme_name = "MMX_INSTR_RET",\
-        .pme_code = 0xce,\
-        .pme_desc = "Number of MMX instructions retired"\
-       },\
-       {.pme_name = "SEG_RENAME_STALLS",\
-        .pme_code = 0xd4,\
-        .pme_desc = "Number of Segment Register Renaming Stalls", \
-        .pme_flags   = PFMLIB_I386_P6_UMASK_COMBO, \
-        .pme_numasks = 4, \
-        .pme_umasks = { \
-               { .pme_uname = "ES", \
-                 .pme_udesc = "Segment register ES", \
-                 .pme_ucode = 0x1 \
-               }, \
-               { .pme_uname = "DS", \
-                 .pme_udesc = "Segment register DS", \
-                 .pme_ucode = 0x2 \
-               }, \
-               { .pme_uname = "FS", \
-                 .pme_udesc = "Segment register FS", \
-                 .pme_ucode = 0x4 \
-               }, \
-               { .pme_uname = "GS", \
-                 .pme_udesc = "Segment register GS", \
-                 .pme_ucode = 0x8 \
-               } \
-        }\
-       },\
-       {.pme_name = "SEG_REG_RENAMES",\
-        .pme_code = 0xd5,\
-        .pme_desc = "Number of Segment Register Renames", \
-        .pme_flags   = PFMLIB_I386_P6_UMASK_COMBO, \
-        .pme_numasks = 4, \
-        .pme_umasks = { \
-               { .pme_uname = "ES", \
-                 .pme_udesc = "Segment register ES", \
-                 .pme_ucode = 0x1 \
-               }, \
-               { .pme_uname = "DS", \
-                 .pme_udesc = "Segment register DS", \
-                 .pme_ucode = 0x2 \
-               }, \
-               { .pme_uname = "FS", \
-                 .pme_udesc = "Segment register FS", \
-                 .pme_ucode = 0x4 \
-               }, \
-               { .pme_uname = "GS", \
-                 .pme_udesc = "Segment register GS", \
-                 .pme_ucode = 0x8 \
-               } \
-        }\
-       },\
-       {.pme_name = "RET_SEG_RENAMES",\
-        .pme_code = 0xd6,\
-        .pme_desc = "Number of segment register rename events retired"\
-       }
+       }\
+
+

 /*
- * Generic P6 processor event table
+ * Pentium Pro Processor Event Table
  */
-static pme_i386_p6_entry_t i386_p6_pe []={
-       {.pme_name = "CPU_CLK_UNHALTED",
-        .pme_code = 0x79,
-        .pme_desc =  "Number cycles during which the processor is not halted"
-       },
-       I386_P6_COMMON_PME,
-       {.pme_name = "L2_LD",
-        .pme_code = 0x29,
-        .pme_desc =  "Number of L2 data loads. This event indicates that a 
normal, unlocked, load memory access "
-               "was received by the L2. It includes only L2 cacheable memory 
accesses; it does not include I/O "
-               "accesses, other non-memory accesses, or memory accesses such 
as UC/WT memory accesses. It does include "
-               "L2 cacheable TLB miss memory accesses",
-        I386_P6_MESI_UMASKS
-       },
-       {.pme_name = "L2_LINES_IN",
-        .pme_code = 0x24,
-        .pme_desc =  "Number of lines allocated in the L2"
-       },
-       {.pme_name = "L2_LINES_OUT",
-        .pme_code = 0x26,
-        .pme_desc =  "Number of lines removed from the L2 for any reason"
-       },
-       {.pme_name = "L2_M_LINES_OUTM",
-        .pme_code = 0x27,
-        .pme_desc =  "Number of modified lines removed from the L2 for any 
reason"
-       }
+static pme_i386_p6_entry_t i386_ppro_pe []={
+
+        I386_P6_CPU_CLK_UNHALTED, /* should be first */
+        I386_P6_COMMON_PME,       /* generic p6 */
+       I386_P6_NOT_PM_PME,       /* generic p6 that conflict with Pentium M */
 };
+
 #define PME_I386_P6_CPU_CLK_UNHALTED 0
 #define PME_I386_P6_INST_RETIRED 1
-#define PME_I386_P6_EVENT_COUNT        
(sizeof(i386_p6_pe)/sizeof(pme_i386_p6_entry_t))
+#define PME_I386_PPRO_EVENT_COUNT      
(sizeof(i386_ppro_pe)/sizeof(pme_i386_p6_entry_t))
+
+
+/*
+ * Pentium II Processor Event Table
+ */
+static pme_i386_p6_entry_t i386_pII_pe []={
+
+        I386_P6_CPU_CLK_UNHALTED, /* should be first */
+        I386_P6_COMMON_PME,   /* generic p6 */
+       I386_P6_PII_ONLY_PME, /* pentium II only */
+        I386_P6_PII_PIII_PME, /* pentium II and later */
+       I386_P6_NOT_PM_PME,   /* generic p6 that conflict with Pentium M */
+};
+
+#define PME_I386_P6_CPU_CLK_UNHALTED 0
+#define PME_I386_P6_INST_RETIRED 1
+#define PME_I386_PII_EVENT_COUNT       
(sizeof(i386_pII_pe)/sizeof(pme_i386_p6_entry_t))
+
+
+/*
+ * Pentium III Processor Event Table
+ */
+static pme_i386_p6_entry_t i386_pIII_pe []={
+
+        I386_P6_CPU_CLK_UNHALTED, /* should be first */
+        I386_P6_COMMON_PME,     /* generic p6 */
+        I386_P6_PII_PIII_PME,   /* pentium II and later */
+       I386_P6_PIII_PME,       /* pentium III and later */
+       I386_P6_NOT_PM_PME,     /* generic p6 that conflict with Pentium M */
+       I386_P6_PIII_NOT_PM_PME /* pentium III that conflict with Pentium M */
+};
+
+#define PME_I386_P6_CPU_CLK_UNHALTED 0
+#define PME_I386_P6_INST_RETIRED 1
+#define PME_I386_PIII_EVENT_COUNT      
(sizeof(i386_pIII_pe)/sizeof(pme_i386_p6_entry_t))
+

 /*
  * Pentium M event table
@@ -783,8 +842,10 @@
         .pme_desc = "Number cycles during which the processor is not halted 
and not in a thermal trip"
        },

-       I386_P6_COMMON_PME,
-
+       I386_P6_COMMON_PME,     /* generic p6 */
+       I386_P6_PII_PIII_PME,   /* pentium II and later */
+       I386_P6_PIII_PME,       /* pentium III and later */
+
        {.pme_name = "EMON_EST_TRANS",
         .pme_code = 0x58,
         .pme_desc = "Number of Enhanced Intel SpeedStep technology 
transitions",
--- libpfm-3.2-071017/lib/pfmlib_i386_p6.c.orig 2007-10-30 20:17:42.000000000 
-0500
+++ libpfm-3.2-071017/lib/pfmlib_i386_p6.c      2007-10-30 20:19:22.000000000 
-0500
@@ -112,19 +112,33 @@
        model = atoi(buffer);

        switch(model) {
-                case 3: /* Pentium II */
+               case 1: /* Pentium Pro */
+                       i386_pe = i386_ppro_pe;
+                       i386_p6_support.pme_count = PME_I386_PPRO_EVENT_COUNT;
+                       i386_p6_num_events = PME_I386_PPRO_EVENT_COUNT;
+                       break;
+
+               case 3: /* Pentium II Klamath */
                 case 5: /* Pentium II Deschutes */
+               case 6: /* Pentium II Mendocino */
+                       i386_pe = i386_pII_pe;
+                       i386_p6_support.pme_count = PME_I386_PII_EVENT_COUNT;
+                       i386_p6_num_events = PME_I386_PII_EVENT_COUNT;
+                       break;
+
                case 7: /* Pentium III Katmai */
                case 8: /* Pentium III Coppermine */
                case 9: /* Mobile Pentium III */
                case 10:/* Pentium III Cascades */
                case 11:/* Pentium III Tualatin */
+                       i386_pe = i386_pIII_pe;
+                       i386_p6_support.pme_count = PME_I386_PIII_EVENT_COUNT;
+                       i386_p6_num_events = PME_I386_PIII_EVENT_COUNT;
                        break;
+
                default:
                        return PFMLIB_ERR_NOTSUPP;
        }
-       i386_pe = i386_p6_pe;
-       i386_p6_num_events = PME_I386_P6_EVENT_COUNT;
        return PFMLIB_SUCCESS;
 }

@@ -487,7 +501,7 @@
 pfm_pmu_support_t i386_p6_support={
        .pmu_name               = "Intel P6 Processor Family",
        .pmu_type               = PFMLIB_I386_P6_PMU,
-       .pme_count              = PME_I386_P6_EVENT_COUNT,
+       .pme_count              = PME_I386_PPRO_EVENT_COUNT,
        .pmc_count              = PMU_I386_P6_NUM_PERFSEL,
        .pmd_count              = PMU_I386_P6_NUM_PERFCTR,
        .num_cnt                = PMU_I386_P6_NUM_COUNTERS,

_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/

Reply via email to