|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Copyright (c) 2005-2007 Hewlett-Packard Development Company, L.P.
|
|
Packit |
577717 |
* Contributed by Stephane Eranian <eranian@hpl.hp.com>
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
Packit |
577717 |
* of this software and associated documentation files (the "Software"), to deal
|
|
Packit |
577717 |
* in the Software without restriction, including without limitation the rights
|
|
Packit |
577717 |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
Packit |
577717 |
* of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
Packit |
577717 |
* subject to the following conditions:
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* The above copyright notice and this permission notice shall be included in all
|
|
Packit |
577717 |
* copies or substantial portions of the Software.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
Packit |
577717 |
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
Packit |
577717 |
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
Packit |
577717 |
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
Packit |
577717 |
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
Packit |
577717 |
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* This file is part of libpfm, a performance monitoring support library for
|
|
Packit |
577717 |
* applications on Linux.
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
#define I386_P6_MESI_UMASKS \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_UMASK_COMBO, \
|
|
Packit |
577717 |
.pme_numasks = 4, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "I", \
|
|
Packit |
577717 |
.pme_udesc = "invalid state", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "S", \
|
|
Packit |
577717 |
.pme_udesc = "shared state", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "E", \
|
|
Packit |
577717 |
.pme_udesc = "exclusive state", \
|
|
Packit |
577717 |
.pme_ucode = 0x4 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "M", \
|
|
Packit |
577717 |
.pme_udesc = "modified state", \
|
|
Packit |
577717 |
.pme_ucode = 0x8 \
|
|
Packit |
577717 |
}}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_PM_MESI_PREFETCH_UMASKS \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_UMASK_COMBO, \
|
|
Packit |
577717 |
.pme_numasks = 7, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "I", \
|
|
Packit |
577717 |
.pme_udesc = "invalid state", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "S", \
|
|
Packit |
577717 |
.pme_udesc = "shared state", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "E", \
|
|
Packit |
577717 |
.pme_udesc = "exclusive state", \
|
|
Packit |
577717 |
.pme_ucode = 0x4 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "M", \
|
|
Packit |
577717 |
.pme_udesc = "modified state", \
|
|
Packit |
577717 |
.pme_ucode = 0x8 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "EXCL_HW_PREFETCH", \
|
|
Packit |
577717 |
.pme_udesc = "exclude hardware prefetched lines", \
|
|
Packit |
577717 |
.pme_ucode = 0x0 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ONLY_HW_PREFETCH", \
|
|
Packit |
577717 |
.pme_udesc = "only hardware prefetched lines", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 << 4 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "NON_HW_PREFETCH", \
|
|
Packit |
577717 |
.pme_udesc = "non hardware prefetched lines", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 << 4 \
|
|
Packit |
577717 |
}}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_PII_ONLY_PME \
|
|
Packit |
577717 |
{.pme_name = "MMX_INSTR_EXEC",\
|
|
Packit |
577717 |
.pme_code = 0xb0,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX instructions executed"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "MMX_INSTR_RET",\
|
|
Packit |
577717 |
.pme_code = 0xce,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX instructions retired"\
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_PII_PIII_PME \
|
|
Packit |
577717 |
{.pme_name = "MMX_SAT_INSTR_EXEC",\
|
|
Packit |
577717 |
.pme_code = 0xb1,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX saturating instructions executed"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "MMX_UOPS_EXEC",\
|
|
Packit |
577717 |
.pme_code = 0xb2,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX micro-ops executed"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "MMX_INSTR_TYPE_EXEC",\
|
|
Packit |
577717 |
.pme_code = 0xb3,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX instructions executed by type",\
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_UMASK_COMBO, \
|
|
Packit |
577717 |
.pme_numasks = 6, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "MUL", \
|
|
Packit |
577717 |
.pme_udesc = "MMX packed multiply instructions executed", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "SHIFT", \
|
|
Packit |
577717 |
.pme_udesc = "MMX packed shift instructions executed", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "PACK", \
|
|
Packit |
577717 |
.pme_udesc = "MMX pack operation instructions executed", \
|
|
Packit |
577717 |
.pme_ucode = 0x4 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "UNPACK", \
|
|
Packit |
577717 |
.pme_udesc = "MMX unpack operation instructions executed", \
|
|
Packit |
577717 |
.pme_ucode = 0x8 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "LOGICAL", \
|
|
Packit |
577717 |
.pme_udesc = "MMX packed logical instructions executed", \
|
|
Packit |
577717 |
.pme_ucode = 0x10 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ARITH", \
|
|
Packit |
577717 |
.pme_udesc = "MMX packed arithmetic instructions executed", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "FP_MMX_TRANS",\
|
|
Packit |
577717 |
.pme_code = 0xcc,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX transitions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "TO_FP", \
|
|
Packit |
577717 |
.pme_udesc = "from MMX instructions to floating-point instructions", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "TO_MMX", \
|
|
Packit |
577717 |
.pme_udesc = "from floating-point instructions to MMX instructions", \
|
|
Packit |
577717 |
.pme_ucode = 0x01 \
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "MMX_ASSIST",\
|
|
Packit |
577717 |
.pme_code = 0xcd,\
|
|
Packit |
577717 |
.pme_desc = "Number of MMX micro-ops executed"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "SEG_RENAME_STALLS",\
|
|
Packit |
577717 |
.pme_code = 0xd4,\
|
|
Packit |
577717 |
.pme_desc = "Number of Segment Register Renaming Stalls", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_UMASK_COMBO, \
|
|
Packit |
577717 |
.pme_numasks = 4, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "ES", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register ES", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "DS", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register DS", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "FS", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register FS", \
|
|
Packit |
577717 |
.pme_ucode = 0x4 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "GS", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register GS", \
|
|
Packit |
577717 |
.pme_ucode = 0x8 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "SEG_REG_RENAMES",\
|
|
Packit |
577717 |
.pme_code = 0xd5,\
|
|
Packit |
577717 |
.pme_desc = "Number of Segment Register Renames", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_UMASK_COMBO, \
|
|
Packit |
577717 |
.pme_numasks = 4, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "ES", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register ES", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "DS", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register DS", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "FS", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register FS", \
|
|
Packit |
577717 |
.pme_ucode = 0x4 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "GS", \
|
|
Packit |
577717 |
.pme_udesc = "Segment register GS", \
|
|
Packit |
577717 |
.pme_ucode = 0x8 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "RET_SEG_RENAMES",\
|
|
Packit |
577717 |
.pme_code = 0xd6,\
|
|
Packit |
577717 |
.pme_desc = "Number of segment register rename events retired"\
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_PIII_PME \
|
|
Packit |
577717 |
{.pme_name = "EMON_KNI_PREF_DISPATCHED",\
|
|
Packit |
577717 |
.pme_code = 0x07,\
|
|
Packit |
577717 |
.pme_desc = "Number of Streaming SIMD extensions prefetch/weakly-ordered instructions dispatched " \
|
|
Packit |
577717 |
"(speculative prefetches are included in counting). Pentium III and later",\
|
|
Packit |
577717 |
.pme_numasks = 4, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "NTA", \
|
|
Packit |
577717 |
.pme_udesc = "prefetch NTA", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "T1", \
|
|
Packit |
577717 |
.pme_udesc = "prefetch T1", \
|
|
Packit |
577717 |
.pme_ucode = 0x01 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "T2", \
|
|
Packit |
577717 |
.pme_udesc = "prefetch T2", \
|
|
Packit |
577717 |
.pme_ucode = 0x02 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "WEAK", \
|
|
Packit |
577717 |
.pme_udesc = "weakly ordered stores", \
|
|
Packit |
577717 |
.pme_ucode = 0x03 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "EMON_KNI_PREF_MISS",\
|
|
Packit |
577717 |
.pme_code = 0x4b,\
|
|
Packit |
577717 |
.pme_desc = "Number of prefetch/weakly-ordered instructions that miss all caches. Pentium III and later",\
|
|
Packit |
577717 |
.pme_numasks = 4, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "NTA", \
|
|
Packit |
577717 |
.pme_udesc = "prefetch NTA", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "T1", \
|
|
Packit |
577717 |
.pme_udesc = "prefetch T1", \
|
|
Packit |
577717 |
.pme_ucode = 0x01 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "T2", \
|
|
Packit |
577717 |
.pme_udesc = "prefetch T2", \
|
|
Packit |
577717 |
.pme_ucode = 0x02 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "WEAK", \
|
|
Packit |
577717 |
.pme_udesc = "weakly ordered stores", \
|
|
Packit |
577717 |
.pme_ucode = 0x03 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_CPU_CLK_UNHALTED \
|
|
Packit |
577717 |
{.pme_name = "CPU_CLK_UNHALTED",\
|
|
Packit |
577717 |
.pme_code = 0x79,\
|
|
Packit |
577717 |
.pme_desc = "Number cycles during which the processor is not halted"\
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_NOT_PM_PME \
|
|
Packit |
577717 |
{.pme_name = "L2_LD",\
|
|
Packit |
577717 |
.pme_code = 0x29,\
|
|
Packit |
577717 |
.pme_desc = "Number of L2 data loads. This event indicates that a normal, unlocked, load memory access "\
|
|
Packit |
577717 |
"was received by the L2. It includes only L2 cacheable memory accesses; it does not include I/O "\
|
|
Packit |
577717 |
"accesses, other non-memory accesses, or memory accesses such as UC/WT memory accesses. It does include "\
|
|
Packit |
577717 |
"L2 cacheable TLB miss memory accesses",\
|
|
Packit |
577717 |
I386_P6_MESI_UMASKS\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_LINES_IN",\
|
|
Packit |
577717 |
.pme_code = 0x24,\
|
|
Packit |
577717 |
.pme_desc = "Number of lines allocated in the L2"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_LINES_OUT",\
|
|
Packit |
577717 |
.pme_code = 0x26,\
|
|
Packit |
577717 |
.pme_desc = "Number of lines removed from the L2 for any reason"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_M_LINES_OUTM",\
|
|
Packit |
577717 |
.pme_code = 0x27,\
|
|
Packit |
577717 |
.pme_desc = "Number of modified lines removed from the L2 for any reason"\
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_PIII_NOT_PM_PME \
|
|
Packit |
577717 |
{.pme_name = "EMON_KNI_INST_RETIRED",\
|
|
Packit |
577717 |
.pme_code = 0xd8,\
|
|
Packit |
577717 |
.pme_desc = "Number of SSE instructions retired. Pentium III and later",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "PACKED_SCALAR", \
|
|
Packit |
577717 |
.pme_udesc = "packed and scalar instructions", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "SCALAR", \
|
|
Packit |
577717 |
.pme_udesc = "scalar only", \
|
|
Packit |
577717 |
.pme_ucode = 0x01 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "EMON_KNI_COMP_INST_RET",\
|
|
Packit |
577717 |
.pme_code = 0xd9,\
|
|
Packit |
577717 |
.pme_desc = "Number of SSE computation instructions retired. Pentium III and later",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "PACKED_SCALAR", \
|
|
Packit |
577717 |
.pme_udesc = "packed and scalar instructions", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "SCALAR", \
|
|
Packit |
577717 |
.pme_udesc = "scalar only", \
|
|
Packit |
577717 |
.pme_ucode = 0x01 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define I386_P6_COMMON_PME \
|
|
Packit |
577717 |
{.pme_name = "INST_RETIRED",\
|
|
Packit |
577717 |
.pme_code = 0xc0,\
|
|
Packit |
577717 |
.pme_desc = "Number of instructions retired"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "DATA_MEM_REFS",\
|
|
Packit |
577717 |
.pme_code = 0x43,\
|
|
Packit |
577717 |
.pme_desc = "All loads from any memory type. All stores to any memory type"\
|
|
Packit |
577717 |
"Each part of a split is counted separately. The internal logic counts not only memory loads and stores"\
|
|
Packit |
577717 |
" but also internal retries. 80-bit floating point accesses are double counted, since they are decomposed"\
|
|
Packit |
577717 |
" into a 16-bit exponent load and a 64-bit mantissa load. Memory accesses are only counted when they are "\
|
|
Packit |
577717 |
" actually performed (such as a load that gets squashed because a previous cache miss is outstanding to the"\
|
|
Packit |
577717 |
" same address, and which finally gets performe, is only counted once). Does ot include I/O accesses or other"\
|
|
Packit |
577717 |
" non-memory accesses"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "DCU_LINES_IN",\
|
|
Packit |
577717 |
.pme_code = 0x45,\
|
|
Packit |
577717 |
.pme_desc = "Total lines allocated in the DCU"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "DCU_M_LINES_IN",\
|
|
Packit |
577717 |
.pme_code = 0x46,\
|
|
Packit |
577717 |
.pme_desc = "Number of M state lines allocated in the DCU"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "DCU_M_LINES_OUT",\
|
|
Packit |
577717 |
.pme_code = 0x47,\
|
|
Packit |
577717 |
.pme_desc = "Number of M state lines evicted from the DCU. This includes evictions via snoop HITM, intervention"\
|
|
Packit |
577717 |
" or replacement"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "DCU_MISS_OUTSTANDING",\
|
|
Packit |
577717 |
.pme_code = 0x48,\
|
|
Packit |
577717 |
.pme_desc = "Weighted number of cycle while a DCU miss is outstanding, incremented by the number of cache misses"\
|
|
Packit |
577717 |
" at any particular time. Cacheable read requests only are considered. Uncacheable requests are excluded"\
|
|
Packit |
577717 |
" Read-for-ownerships are counted, as well as line fills, invalidates, and stores"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "IFU_IFETCH",\
|
|
Packit |
577717 |
.pme_code = 0x80,\
|
|
Packit |
577717 |
.pme_desc = "Number of instruction fetches, both cacheable and noncacheable including UC fetches"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "IFU_IFETCH_MISS",\
|
|
Packit |
577717 |
.pme_code = 0x81,\
|
|
Packit |
577717 |
.pme_desc = "Number of instruction fetch misses. All instructions fetches that do not hit the IFU (i.e., that"\
|
|
Packit |
577717 |
" produce memory requests). Includes UC accesses"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "ITLB_MISS",\
|
|
Packit |
577717 |
.pme_code = 0x85,\
|
|
Packit |
577717 |
.pme_desc = "Number of ITLB misses"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "IFU_MEM_STALL",\
|
|
Packit |
577717 |
.pme_code = 0x86,\
|
|
Packit |
577717 |
.pme_desc = "Number of cycles instruction fetch is stalled for any reason. Includs IFU cache misses, ITLB misses,"\
|
|
Packit |
577717 |
" ITLB faults, and other minor stalls"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "ILD_STALL",\
|
|
Packit |
577717 |
.pme_code = 0x87,\
|
|
Packit |
577717 |
.pme_desc = "Number of cycles that the instruction length decoder is stalled"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_IFETCH",\
|
|
Packit |
577717 |
.pme_code = 0x28,\
|
|
Packit |
577717 |
.pme_desc = "Number of L2 instruction fetches. This event indicates that a normal instruction fetch was received by"\
|
|
Packit |
577717 |
" the L2. The count includes only L2 cacheable instruction fetches: it does not include UC instruction fetches"\
|
|
Packit |
577717 |
" It does not include ITLB miss accesses",\
|
|
Packit |
577717 |
I386_P6_MESI_UMASKS \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{.pme_name = "L2_ST",\
|
|
Packit |
577717 |
.pme_code = 0x2a,\
|
|
Packit |
577717 |
.pme_desc = "Number of L2 data stores. This event indicates that a normal, unlocked, store memory access "\
|
|
Packit |
577717 |
"was received by the L2. Specifically, it indictes that the DCU sent a read-for ownership request to " \
|
|
Packit |
577717 |
"the L2. It also includes Invalid to Modified reqyests sent by the DCU to the L2. " \
|
|
Packit |
577717 |
"It includes only L2 cacheable memory accesses; it does not include I/O " \
|
|
Packit |
577717 |
"accesses, other non-memory accesses, or memory accesses such as UC/WT memory accesses. It does include " \
|
|
Packit |
577717 |
"L2 cacheable TLB miss memory accesses", \
|
|
Packit |
577717 |
I386_P6_MESI_UMASKS \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_M_LINES_INM",\
|
|
Packit |
577717 |
.pme_code = 0x25,\
|
|
Packit |
577717 |
.pme_desc = "Number of modified lines allocated in the L2"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_RQSTS",\
|
|
Packit |
577717 |
.pme_code = 0x2e,\
|
|
Packit |
577717 |
.pme_desc = "Total number of L2 requests",\
|
|
Packit |
577717 |
I386_P6_MESI_UMASKS \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_ADS",\
|
|
Packit |
577717 |
.pme_code = 0x21,\
|
|
Packit |
577717 |
.pme_desc = "Number of L2 address strobes"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_DBUS_BUSY",\
|
|
Packit |
577717 |
.pme_code = 0x22,\
|
|
Packit |
577717 |
.pme_desc = "Number of cycles during which the L2 cache data bus was busy"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "L2_DBUS_BUSY_RD",\
|
|
Packit |
577717 |
.pme_code = 0x23,\
|
|
Packit |
577717 |
.pme_desc = "Number of cycles during which the data bus was busy transferring read data from L2 to the processor"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_DRDY_CLOCKS",\
|
|
Packit |
577717 |
.pme_code = 0x62,\
|
|
Packit |
577717 |
.pme_desc = "Number of clocks during which DRDY# is asserted. " \
|
|
Packit |
577717 |
"Utilization of the external system data bus during data transfers", \
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_LOCK_CLOCKS",\
|
|
Packit |
577717 |
.pme_code = 0x63,\
|
|
Packit |
577717 |
.pme_desc = "Number of clocks during which LOCK# is asserted on the external system bus", \
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_REQ_OUTSTANDING",\
|
|
Packit |
577717 |
.pme_code = 0x60,\
|
|
Packit |
577717 |
.pme_desc = "Number of bus requests outstanding. This counter is incremented " \
|
|
Packit |
577717 |
"by the number of cacheable read bus requests outstanding in any given cycle", \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRANS_BRD",\
|
|
Packit |
577717 |
.pme_code = 0x65,\
|
|
Packit |
577717 |
.pme_desc = "Number of burst read transactions", \
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRANS_RFO",\
|
|
Packit |
577717 |
.pme_code = 0x66,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed read for ownership transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRANS_WB",\
|
|
Packit |
577717 |
.pme_code = 0x67,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed write back transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_IFETCH",\
|
|
Packit |
577717 |
.pme_code = 0x68,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed instruction fetch transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_INVAL",\
|
|
Packit |
577717 |
.pme_code = 0x69,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed invalidate transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_PWR",\
|
|
Packit |
577717 |
.pme_code = 0x6a,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed partial write transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRANS_P",\
|
|
Packit |
577717 |
.pme_code = 0x6b,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed partial transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRANS_IO",\
|
|
Packit |
577717 |
.pme_code = 0x6c,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed I/O transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_DEF",\
|
|
Packit |
577717 |
.pme_code = 0x6d,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed deferred transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x1 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x2 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_BURST",\
|
|
Packit |
577717 |
.pme_code = 0x6e,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed burst transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_ANY",\
|
|
Packit |
577717 |
.pme_code = 0x70,\
|
|
Packit |
577717 |
.pme_desc = "Number of all completed bus transactions. Address bus utilization " \
|
|
Packit |
577717 |
"can be calculated knowing the minimum address bus occupancy. Includes special cycles, etc.",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_TRAN_MEM",\
|
|
Packit |
577717 |
.pme_code = 0x6f,\
|
|
Packit |
577717 |
.pme_desc = "Number of completed memory transactions",\
|
|
Packit |
577717 |
.pme_numasks = 2, \
|
|
Packit |
577717 |
.pme_umasks = { \
|
|
Packit |
577717 |
{ .pme_uname = "SELF", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when processor is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x00 \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .pme_uname = "ANY", \
|
|
Packit |
577717 |
.pme_udesc = "clocks when any agent is driving bus", \
|
|
Packit |
577717 |
.pme_ucode = 0x20 \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
} \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_DATA_RECV",\
|
|
Packit |
577717 |
.pme_code = 0x64,\
|
|
Packit |
577717 |
.pme_desc = "Number of bus clock cycles during which this processor is receiving data"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_BNR_DRV",\
|
|
Packit |
577717 |
.pme_code = 0x61,\
|
|
Packit |
577717 |
.pme_desc = "Number of bus clock cycles during which this processor is driving the BNR# pin"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_HIT_DRV",\
|
|
Packit |
577717 |
.pme_code = 0x7a,\
|
|
Packit |
577717 |
.pme_desc = "Number of bus clock cycles during which this processor is driving the HIT# pin"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_HITM_DRV",\
|
|
Packit |
577717 |
.pme_code = 0x7b,\
|
|
Packit |
577717 |
.pme_desc = "Number of bus clock cycles during which this processor is driving the HITM# pin"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BUS_SNOOP_STALL",\
|
|
Packit |
577717 |
.pme_code = 0x7e,\
|
|
Packit |
577717 |
.pme_desc = "Number of clock cycles during which the bus is snoop stalled"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "FLOPS",\
|
|
Packit |
577717 |
.pme_code = 0xc1,\
|
|
Packit |
577717 |
.pme_desc = "Number of computational floating-point operations retired. " \
|
|
Packit |
577717 |
"Excludes floating-point computational operations that cause traps or assists. " \
|
|
Packit |
577717 |
"Includes internal sub-operations for complex floating-point instructions like transcendentals. " \
|
|
Packit |
577717 |
"Excludes floating point loads and stores", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_CTR0_ONLY \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "FP_COMP_OPS_EXE",\
|
|
Packit |
577717 |
.pme_code = 0x10,\
|
|
Packit |
577717 |
.pme_desc = "Number of computational floating-point operations executed. The number of FADD, FSUB, " \
|
|
Packit |
577717 |
"FCOM, FMULs, integer MULs and IMULs, FDIVs, FPREMs, FSQRTS, integer DIVs, and IDIVs. " \
|
|
Packit |
577717 |
"This number does not include the number of cycles, but the number of operations. " \
|
|
Packit |
577717 |
"This event does not distinguish an FADD used in the middle of a transcendental flow " \
|
|
Packit |
577717 |
"from a separate FADD instruction", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_CTR0_ONLY \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "FP_ASSIST",\
|
|
Packit |
577717 |
.pme_code = 0x11,\
|
|
Packit |
577717 |
.pme_desc = "Number of floating-point exception cases handled by microcode.", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_CTR1_ONLY \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "MUL",\
|
|
Packit |
577717 |
.pme_code = 0x12,\
|
|
Packit |
577717 |
.pme_desc = "Number of multiplies." \
|
|
Packit |
577717 |
"This count includes integer as well as FP multiplies and is speculative", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_CTR1_ONLY \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "DIV",\
|
|
Packit |
577717 |
.pme_code = 0x13,\
|
|
Packit |
577717 |
.pme_desc = "Number of divides." \
|
|
Packit |
577717 |
"This count includes integer as well as FP divides and is speculative", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_CTR1_ONLY \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "CYCLES_DIV_BUSY",\
|
|
Packit |
577717 |
.pme_code = 0x14,\
|
|
Packit |
577717 |
.pme_desc = "Number of cycles during which the divider is busy, and cannot accept new divides. " \
|
|
Packit |
577717 |
"This includes integer and FP divides, FPREM, FPSQRT, etc. and is speculative", \
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_CTR0_ONLY \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "LD_BLOCKS",\
|
|
Packit |
577717 |
.pme_code = 0x03,\
|
|
Packit |
577717 |
.pme_desc = "Number of load operations delayed due to store buffer blocks. Includes counts " \
|
|
Packit |
577717 |
"caused by preceding stores whose addresses are unknown, preceding stores whose addresses " \
|
|
Packit |
577717 |
"are known but whose data is unknown, and preceding stores that conflicts with the load " \
|
|
Packit |
577717 |
"but which incompletely overlap the load" \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "SB_DRAINS",\
|
|
Packit |
577717 |
.pme_code = 0x04,\
|
|
Packit |
577717 |
.pme_desc = "Number of store buffer drain cycles. Incremented every cycle the store buffer is draining. " \
|
|
Packit |
577717 |
"Draining is caused by serializing operations like CPUID, synchronizing operations " \
|
|
Packit |
577717 |
"like XCHG, interrupt acknowledgment, as well as other conditions (such as cache flushing)."\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "MISALIGN_MEM_REF",\
|
|
Packit |
577717 |
.pme_code = 0x05,\
|
|
Packit |
577717 |
.pme_desc = "Number of misaligned data memory references. Incremented by 1 every cycle during "\
|
|
Packit |
577717 |
"which, either the processor's load or store pipeline dispatches a misaligned micro-op "\
|
|
Packit |
577717 |
"Counting is performed if it is the first or second half or if it is blocked, squashed, "\
|
|
Packit |
577717 |
"or missed. In this context, misaligned means crossing a 64-bit boundary"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "UOPS_RETIRED",\
|
|
Packit |
577717 |
.pme_code = 0xc2,\
|
|
Packit |
577717 |
.pme_desc = "Number of micro-ops retired"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "INST_DECODED",\
|
|
Packit |
577717 |
.pme_code = 0xd0,\
|
|
Packit |
577717 |
.pme_desc = "Number of instructions decoded"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "HW_INT_RX",\
|
|
Packit |
577717 |
.pme_code = 0xc8,\
|
|
Packit |
577717 |
.pme_desc = "Number of hardware interrupts received"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "CYCLES_INT_MASKED",\
|
|
Packit |
577717 |
.pme_code = 0xc6,\
|
|
Packit |
577717 |
.pme_desc = "Number of processor cycles for which interrupts are disabled"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "CYCLES_INT_PENDING_AND_MASKED",\
|
|
Packit |
577717 |
.pme_code = 0xc7,\
|
|
Packit |
577717 |
.pme_desc = "Number of processor cycles for which interrupts are disabled and interrupts are pending."\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BR_INST_RETIRED",\
|
|
Packit |
577717 |
.pme_code = 0xc4,\
|
|
Packit |
577717 |
.pme_desc = "Number of branch instructions retired"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BR_MISS_PRED_RETIRED",\
|
|
Packit |
577717 |
.pme_code = 0xc5,\
|
|
Packit |
577717 |
.pme_desc = "Number of mispredicted branches retired"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BR_TAKEN_RETIRED",\
|
|
Packit |
577717 |
.pme_code = 0xc9,\
|
|
Packit |
577717 |
.pme_desc = "Number of taken branches retired"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BR_MISS_PRED_TAKEN_RET",\
|
|
Packit |
577717 |
.pme_code = 0xca,\
|
|
Packit |
577717 |
.pme_desc = "Number of taken mispredicted branches retired"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BR_INST_DECODED",\
|
|
Packit |
577717 |
.pme_code = 0xe0,\
|
|
Packit |
577717 |
.pme_desc = "Number of branch instructions decoded"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BTB_MISSES",\
|
|
Packit |
577717 |
.pme_code = 0xe2,\
|
|
Packit |
577717 |
.pme_desc = "Number of branches for which the BTB did not produce a prediction"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BR_BOGUS",\
|
|
Packit |
577717 |
.pme_code = 0xe4,\
|
|
Packit |
577717 |
.pme_desc = "Number of bogus branches"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "BACLEARS",\
|
|
Packit |
577717 |
.pme_code = 0xe6,\
|
|
Packit |
577717 |
.pme_desc = "Number of times BACLEAR is asserted. This is the number of times that " \
|
|
Packit |
577717 |
"a static branch prediction was made, in which the branch decoder decided " \
|
|
Packit |
577717 |
"to make a branch prediction because the BTB did not" \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "RESOURCE_STALLS",\
|
|
Packit |
577717 |
.pme_code = 0xa2,\
|
|
Packit |
577717 |
.pme_desc = "Incremented by 1 during every cycle for which there is a resource related stall. " \
|
|
Packit |
577717 |
"Includes register renaming buffer entries, memory buffer entries. Does not include " \
|
|
Packit |
577717 |
"stalls due to bus queue full, too many cache misses, etc. In addition to resource " \
|
|
Packit |
577717 |
"related stalls, this event counts some other events. Includes stalls arising during " \
|
|
Packit |
577717 |
"branch misprediction recovery, such as if retirement of the mispredicted branch is " \
|
|
Packit |
577717 |
"delayed and stalls arising while store buffer is draining from synchronizing operations" \
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "PARTIAL_RAT_STALLS",\
|
|
Packit |
577717 |
.pme_code = 0xd2,\
|
|
Packit |
577717 |
.pme_desc = "Number of cycles or events for partial stalls. This includes flag partial stalls"\
|
|
Packit |
577717 |
},\
|
|
Packit |
577717 |
{.pme_name = "SEGMENT_REG_LOADS",\
|
|
Packit |
577717 |
.pme_code = 0x06,\
|
|
Packit |
577717 |
.pme_desc = "Number of segment register loads."\
|
|
Packit |
577717 |
}\
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Pentium Pro Processor Event Table
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
static pme_i386_p6_entry_t i386_ppro_pe []={
|
|
Packit |
577717 |
I386_P6_CPU_CLK_UNHALTED, /* should be first */
|
|
Packit |
577717 |
I386_P6_COMMON_PME, /* generic p6 */
|
|
Packit |
577717 |
I386_P6_NOT_PM_PME, /* generic p6 that conflict with Pentium M */
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define PME_I386_PPRO_CPU_CLK_UNHALTED 0
|
|
Packit |
577717 |
#define PME_I386_PPRO_INST_RETIRED 1
|
|
Packit |
577717 |
#define PME_I386_PPRO_EVENT_COUNT (sizeof(i386_ppro_pe)/sizeof(pme_i386_p6_entry_t))
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Pentium II Processor Event Table
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
static pme_i386_p6_entry_t i386_pII_pe []={
|
|
Packit |
577717 |
I386_P6_CPU_CLK_UNHALTED, /* should be first */
|
|
Packit |
577717 |
I386_P6_COMMON_PME, /* generic p6 */
|
|
Packit |
577717 |
I386_P6_PII_ONLY_PME, /* pentium II only */
|
|
Packit |
577717 |
I386_P6_PII_PIII_PME, /* pentium II and later */
|
|
Packit |
577717 |
I386_P6_NOT_PM_PME, /* generic p6 that conflict with Pentium M */
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define PME_I386_PII_CPU_CLK_UNHALTED 0
|
|
Packit |
577717 |
#define PME_I386_PII_INST_RETIRED 1
|
|
Packit |
577717 |
#define PME_I386_PII_EVENT_COUNT (sizeof(i386_pII_pe)/sizeof(pme_i386_p6_entry_t))
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Pentium III Processor Event Table
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
static pme_i386_p6_entry_t i386_pIII_pe []={
|
|
Packit |
577717 |
I386_P6_CPU_CLK_UNHALTED, /* should be first */
|
|
Packit |
577717 |
I386_P6_COMMON_PME, /* generic p6 */
|
|
Packit |
577717 |
I386_P6_PII_PIII_PME, /* pentium II and later */
|
|
Packit |
577717 |
I386_P6_PIII_PME, /* pentium III and later */
|
|
Packit |
577717 |
I386_P6_NOT_PM_PME, /* generic p6 that conflict with Pentium M */
|
|
Packit |
577717 |
I386_P6_PIII_NOT_PM_PME /* pentium III that conflict with Pentium M */
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define PME_I386_PIII_CPU_CLK_UNHALTED 0
|
|
Packit |
577717 |
#define PME_I386_PIII_INST_RETIRED 1
|
|
Packit |
577717 |
#define PME_I386_PIII_EVENT_COUNT (sizeof(i386_pIII_pe)/sizeof(pme_i386_p6_entry_t))
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Pentium M event table
|
|
Packit |
577717 |
* It is different from regular P6 because it supports additional events
|
|
Packit |
577717 |
* and also because the semantics of some events is slightly different
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* The library autodetects which table to use during pfmlib_initialize()
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
static pme_i386_p6_entry_t i386_pm_pe []={
|
|
Packit |
577717 |
{.pme_name = "CPU_CLK_UNHALTED",
|
|
Packit |
577717 |
.pme_code = 0x79,
|
|
Packit |
577717 |
.pme_desc = "Number cycles during which the processor is not halted and not in a thermal trip"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
|
|
Packit |
577717 |
I386_P6_COMMON_PME, /* generic p6 */
|
|
Packit |
577717 |
I386_P6_PII_PIII_PME, /* pentium II and later */
|
|
Packit |
577717 |
I386_P6_PIII_PME, /* pentium III and later */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
{.pme_name = "EMON_EST_TRANS",
|
|
Packit |
577717 |
.pme_code = 0x58,
|
|
Packit |
577717 |
.pme_desc = "Number of Enhanced Intel SpeedStep technology transitions",
|
|
Packit |
577717 |
.pme_numasks = 2,
|
|
Packit |
577717 |
.pme_umasks = {
|
|
Packit |
577717 |
{ .pme_uname = "ALL",
|
|
Packit |
577717 |
.pme_udesc = "All transitions",
|
|
Packit |
577717 |
.pme_ucode = 0x0
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "FREQ",
|
|
Packit |
577717 |
.pme_udesc = "Only frequency transitions",
|
|
Packit |
577717 |
.pme_ucode = 0x2
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_THERMAL_TRIP",
|
|
Packit |
577717 |
.pme_code = 0x59,
|
|
Packit |
577717 |
.pme_desc = "Duration/occurrences in thermal trip; to count the number of thermal trips; edge detect must be used"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_INST_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x088,
|
|
Packit |
577717 |
.pme_desc = "Branch instructions executed (not necessarily retired)"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x89,
|
|
Packit |
577717 |
.pme_desc = "Branch instructions executed that were mispredicted at execution"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_BAC_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x8a,
|
|
Packit |
577717 |
.pme_desc = "Branch instructions executed that were mispredicted at Front End (BAC)"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_CND_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x8b,
|
|
Packit |
577717 |
.pme_desc = "Conditional branch instructions executed"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_CND_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x8c,
|
|
Packit |
577717 |
.pme_desc = "Conditional branch instructions executed that were mispredicted"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_IND_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x8d,
|
|
Packit |
577717 |
.pme_desc = "Indirect branch instructions executed"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_IND_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x8e,
|
|
Packit |
577717 |
.pme_desc = "Indirect branch instructions executed that were mispredicted"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_RET_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x8f,
|
|
Packit |
577717 |
.pme_desc = "Return branch instructions executed"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_RET_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x90,
|
|
Packit |
577717 |
.pme_desc = "Return branch instructions executed that were mispredicted at Execution"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_RET_BAC_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x91,
|
|
Packit |
577717 |
.pme_desc = "Return branch instructions executed that were mispredicted at Front End (BAC)"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_CALL_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x92,
|
|
Packit |
577717 |
.pme_desc = "CALL instructions executed"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_CALL_MISSP_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x93,
|
|
Packit |
577717 |
.pme_desc = "CALL instructions executed that were mispredicted"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "BR_IND_CALL_EXEC",
|
|
Packit |
577717 |
.pme_code = 0x94,
|
|
Packit |
577717 |
.pme_desc = "Indirect CALL instructions executed"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_SIMD_INSTR_RETIRED",
|
|
Packit |
577717 |
.pme_code = 0xce,
|
|
Packit |
577717 |
.pme_desc = "Number of retired MMX instructions"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_SYNCH_UOPS",
|
|
Packit |
577717 |
.pme_code = 0xd3,
|
|
Packit |
577717 |
.pme_desc = "Sync micro-ops"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_ESP_UOPS",
|
|
Packit |
577717 |
.pme_code = 0xd7,
|
|
Packit |
577717 |
.pme_desc = "Total number of micro-ops"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_FUSED_UOPS_RET",
|
|
Packit |
577717 |
.pme_code = 0xda,
|
|
Packit |
577717 |
.pme_desc = "Total number of micro-ops",
|
|
Packit |
577717 |
.pme_flags = PFMLIB_I386_P6_UMASK_COMBO,
|
|
Packit |
577717 |
.pme_numasks = 3,
|
|
Packit |
577717 |
.pme_umasks = {
|
|
Packit |
577717 |
{ .pme_uname = "ALL",
|
|
Packit |
577717 |
.pme_udesc = "All fused micro-ops",
|
|
Packit |
577717 |
.pme_ucode = 0x0
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "LD_OP",
|
|
Packit |
577717 |
.pme_udesc = "Only load+Op micro-ops",
|
|
Packit |
577717 |
.pme_ucode = 0x1
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "STD_STA",
|
|
Packit |
577717 |
.pme_udesc = "Only std+sta micro-ops",
|
|
Packit |
577717 |
.pme_ucode = 0x2
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_UNFUSION",
|
|
Packit |
577717 |
.pme_code = 0xdb,
|
|
Packit |
577717 |
.pme_desc = "Number of unfusion events in the ROB, happened on a FP exception to a fused micro-op"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_PREF_RQSTS_UP",
|
|
Packit |
577717 |
.pme_code = 0xf0,
|
|
Packit |
577717 |
.pme_desc = "Number of upward prefetches issued"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_PREF_RQSTS_DN",
|
|
Packit |
577717 |
.pme_code = 0xf8,
|
|
Packit |
577717 |
.pme_desc = "Number of downward prefetches issued"
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_SSE_SSE2_INST_RETIRED",
|
|
Packit |
577717 |
.pme_code = 0xd8,
|
|
Packit |
577717 |
.pme_desc = "Streaming SIMD extensions instructions retired",
|
|
Packit |
577717 |
.pme_numasks = 4,
|
|
Packit |
577717 |
.pme_umasks = {
|
|
Packit |
577717 |
{ .pme_uname = "SSE_PACKED_SCALAR_SINGLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE Packed Single and Scalar Single",
|
|
Packit |
577717 |
.pme_ucode = 0x0
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "SSE_SCALAR_SINGLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE Scalar Single",
|
|
Packit |
577717 |
.pme_ucode = 0x1
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "SSE2_PACKED_DOUBLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE2 Packed Double",
|
|
Packit |
577717 |
.pme_ucode = 0x2
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "SSE2_SCALAR_DOUBLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE2 Scalar Double",
|
|
Packit |
577717 |
.pme_ucode = 0x3
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "EMON_SSE_SSE2_COMP_INST_RETIRED",
|
|
Packit |
577717 |
.pme_code = 0xd9,
|
|
Packit |
577717 |
.pme_desc = "Computational SSE instructions retired",
|
|
Packit |
577717 |
.pme_numasks = 4,
|
|
Packit |
577717 |
.pme_umasks = {
|
|
Packit |
577717 |
{ .pme_uname = "SSE_PACKED_SINGLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE Packed Single",
|
|
Packit |
577717 |
.pme_ucode = 0x0
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "SSE_SCALAR_SINGLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE Scalar Single",
|
|
Packit |
577717 |
.pme_ucode = 0x1
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "SSE2_PACKED_DOUBLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE2 Packed Double",
|
|
Packit |
577717 |
.pme_ucode = 0x2
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .pme_uname = "SSE2_SCALAR_DOUBLE",
|
|
Packit |
577717 |
.pme_udesc = "SSE2 Scalar Double",
|
|
Packit |
577717 |
.pme_ucode = 0x3
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "L2_LD",
|
|
Packit |
577717 |
.pme_code = 0x29,
|
|
Packit |
577717 |
.pme_desc = "Number of L2 data loads",
|
|
Packit |
577717 |
I386_PM_MESI_PREFETCH_UMASKS
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "L2_LINES_IN",
|
|
Packit |
577717 |
.pme_code = 0x24,
|
|
Packit |
577717 |
.pme_desc = "Number of L2 lines allocated",
|
|
Packit |
577717 |
I386_PM_MESI_PREFETCH_UMASKS
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "L2_LINES_OUT",
|
|
Packit |
577717 |
.pme_code = 0x26,
|
|
Packit |
577717 |
.pme_desc = "Number of L2 lines evicted",
|
|
Packit |
577717 |
I386_PM_MESI_PREFETCH_UMASKS
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{.pme_name = "L2_M_LINES_OUT",
|
|
Packit |
577717 |
.pme_code = 0x27,
|
|
Packit |
577717 |
.pme_desc = "Number of L2 M-state lines evicted",
|
|
Packit |
577717 |
I386_PM_MESI_PREFETCH_UMASKS
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
#define PME_I386_PM_CPU_CLK_UNHALTED 0
|
|
Packit |
577717 |
#define PME_I386_PM_INST_RETIRED 1
|
|
Packit |
577717 |
#define PME_I386_PM_EVENT_COUNT (sizeof(i386_pm_pe)/sizeof(pme_i386_p6_entry_t))
|