|
Packit Service |
a1973e |
/*
|
|
Packit Service |
a1973e |
* Contributed by Stephane Eranian <eranian@gmail.com>
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
Packit Service |
a1973e |
* of this software and associated documentation files (the "Software"), to deal
|
|
Packit Service |
a1973e |
* in the Software without restriction, including without limitation the rights
|
|
Packit Service |
a1973e |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
Packit Service |
a1973e |
* of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
Packit Service |
a1973e |
* subject to the following conditions:
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* The above copyright notice and this permission notice shall be included in all
|
|
Packit Service |
a1973e |
* copies or substantial portions of the Software.
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
Packit Service |
a1973e |
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
Packit Service |
a1973e |
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
Packit Service |
a1973e |
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
Packit Service |
a1973e |
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
Packit Service |
a1973e |
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* This file is part of libpfm, a performance monitoring support library for
|
|
Packit Service |
a1973e |
* applications on Linux.
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* PMU: bdw (Intel Broadwell)
|
|
Packit Service |
a1973e |
*/
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_baclears[]={
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.udesc = "Number of front-end re-steers due to BPU misprediction",
|
|
Packit Service |
a1973e |
.ucode = 0x1f00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_br_inst_exec[]={
|
|
Packit Service |
a1973e |
{ .uname = "NONTAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "All macro conditional nontaken branch instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NONTAKEN_COND",
|
|
Packit Service |
a1973e |
.udesc = "All macro conditional nontaken branch instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uequiv = "NONTAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired macro-conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0x8100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_COND",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired macro-conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0x8100,
|
|
Packit Service |
a1973e |
.uequiv = "TAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_DIRECT_JUMP",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired macro-conditional branch instructions excluding calls and indirects",
|
|
Packit Service |
a1973e |
.ucode = 0x8200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_INDIRECT_JUMP_NON_CALL_RET",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired indirect branches excluding calls and returns",
|
|
Packit Service |
a1973e |
.ucode = 0x8400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_INDIRECT_NEAR_RETURN",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired indirect branches with return mnemonic",
|
|
Packit Service |
a1973e |
.ucode = 0x8800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_DIRECT_NEAR_CALL",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired direct near calls",
|
|
Packit Service |
a1973e |
.ucode = 0x9000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired macro-conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0xc100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_COND",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired macro-conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0xc100,
|
|
Packit Service |
a1973e |
.uequiv = "ALL_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_COND",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired macro-conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0xc100,
|
|
Packit Service |
a1973e |
.uequiv = "ALL_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DIRECT_JMP",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired macro-unconditional branches excluding calls and indirects",
|
|
Packit Service |
a1973e |
.ucode = 0xc200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_INDIRECT_JUMP_NON_CALL_RET",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired indirect branches excluding calls and returns",
|
|
Packit Service |
a1973e |
.ucode = 0xc400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_INDIRECT_NEAR_RETURN",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired indirect return branches",
|
|
Packit Service |
a1973e |
.ucode = 0xc800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DIRECT_NEAR_CALL",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired direct near calls",
|
|
Packit Service |
a1973e |
.ucode = 0xd000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_INDIRECT_NEAR_CALL",
|
|
Packit Service |
a1973e |
.udesc = "All indirect calls, including both register and memory indirect",
|
|
Packit Service |
a1973e |
.ucode = 0xa000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_BRANCHES",
|
|
Packit Service |
a1973e |
.udesc = "All branch instructions executed",
|
|
Packit Service |
a1973e |
.ucode = 0xff00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_br_inst_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "Counts all taken and not taken macro conditional branch instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "COND",
|
|
Packit Service |
a1973e |
.udesc = "Counts all taken and not taken macro conditional branch instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NEAR_CALL",
|
|
Packit Service |
a1973e |
.udesc = "Counts all macro direct and indirect near calls",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_BRANCHES",
|
|
Packit Service |
a1973e |
.udesc = "Counts all taken and not taken macro branches including far branches (architectural event)",
|
|
Packit Service |
a1973e |
.ucode = 0x0,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NEAR_RETURN",
|
|
Packit Service |
a1973e |
.udesc = "Counts the number of near ret instructions retired",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NOT_TAKEN",
|
|
Packit Service |
a1973e |
.udesc = "Counts all not taken macro branch instructions retired",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NEAR_TAKEN",
|
|
Packit Service |
a1973e |
.udesc = "Counts the number of near branch taken instructions retired",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "FAR_BRANCH",
|
|
Packit Service |
a1973e |
.udesc = "Counts the number of far branch instructions retired",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_br_misp_exec[]={
|
|
Packit Service |
a1973e |
{ .uname = "NONTAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "Not taken speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NONTAKEN_COND",
|
|
Packit Service |
a1973e |
.udesc = "Not taken speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uequiv = "NONTAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0x8100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_COND",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0x8100,
|
|
Packit Service |
a1973e |
.uequiv = "TAKEN_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_INDIRECT_JUMP_NON_CALL_RET",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired mispredicted indirect branches excluding calls and returns",
|
|
Packit Service |
a1973e |
.ucode = 0x8400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0xc100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_COND",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0xc100,
|
|
Packit Service |
a1973e |
.uequiv = "ALL_CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_INDIRECT_JUMP_NON_CALL_RET",
|
|
Packit Service |
a1973e |
.udesc = "All mispredicted indirect branches that are not calls nor returns",
|
|
Packit Service |
a1973e |
.ucode = 0xc400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_BRANCHES",
|
|
Packit Service |
a1973e |
.udesc = "Speculative and retired mispredicted macro conditional branches",
|
|
Packit Service |
a1973e |
.ucode = 0xff00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_INDIRECT_NEAR_CALL",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired mispredicted indirect calls",
|
|
Packit Service |
a1973e |
.ucode = 0xa000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TAKEN_RETURN_NEAR",
|
|
Packit Service |
a1973e |
.udesc = "Taken speculative and retired mispredicted direct returns",
|
|
Packit Service |
a1973e |
.ucode = 0x8800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_br_misp_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "CONDITIONAL",
|
|
Packit Service |
a1973e |
.udesc = "All mispredicted macro conditional branch instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "COND",
|
|
Packit Service |
a1973e |
.udesc = "All mispredicted macro conditional branch instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "CONDITIONAL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_BRANCHES",
|
|
Packit Service |
a1973e |
.udesc = "All mispredicted macro branches (architectural event)",
|
|
Packit Service |
a1973e |
.ucode = 0x0, /* architectural encoding */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NEAR_TAKEN",
|
|
Packit Service |
a1973e |
.udesc = "Number of near branch instructions retired that were mispredicted and taken",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RET",
|
|
Packit Service |
a1973e |
.udesc = "Number of mispredicted ret instructions retired",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_cpl_cycles[]={
|
|
Packit Service |
a1973e |
{ .uname = "RING0",
|
|
Packit Service |
a1973e |
.udesc = "Unhalted core cycles when the thread is in ring 0",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RING123",
|
|
Packit Service |
a1973e |
.udesc = "Unhalted core cycles when thread is in rings 1, 2, or 3",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RING0_TRANS",
|
|
Packit Service |
a1973e |
.udesc = "Number of intervals between processor halts while thread is in ring 0",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_cpu_clk_thread_unhalted[]={
|
|
Packit Service |
a1973e |
{ .uname = "REF_XCLK",
|
|
Packit Service |
a1973e |
.udesc = "Count Xclk pulses (100Mhz) when the core is unhalted",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REF_XCLK_ANY",
|
|
Packit Service |
a1973e |
.udesc = "Count Xclk pulses (100Mhz) when the at least one thread on the physical core is unhalted",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "REF_XCLK:t",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REF_P",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when the core is unhalted (count at 100 Mhz)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "REF_XCLK",
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "THREAD_P",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when thread is not halted",
|
|
Packit Service |
a1973e |
.ucode = 0x000,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ONE_THREAD_ACTIVE",
|
|
Packit Service |
a1973e |
.udesc = "Counts Xclk (100Mhz) pulses when this thread is unhalted and the other thread is halted",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_cycle_activity[]={
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_L2_PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with pending L2 miss loads (must use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x0100 | (0x1 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.ucntmsk= 0xf,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_LDM_PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with pending memory loads",
|
|
Packit Service |
a1973e |
.ucode = 0x0200 | (0x2 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.uequiv = "CYCLES_MEM_ANY",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_MEM_ANY",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with pending memory loads",
|
|
Packit Service |
a1973e |
.ucode = 0x0200 | (0x2 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_L1D_PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with pending L1D load cache misses",
|
|
Packit Service |
a1973e |
.ucode = 0x0800 | (0x8 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.ucntmsk= 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALLS_LDM_PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Executions stalls when there is at least one pending demand load request",
|
|
Packit Service |
a1973e |
.ucode = 0x0600 | (0x6 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.ucntmsk= 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALLS_L1D_PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Executions stalls while there is at least one L1D demand load outstanding",
|
|
Packit Service |
a1973e |
.ucode = 0x0c00 | (0xc << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.ucntmsk= 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALLS_L2_PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Execution stalls while there is at least one L2 demand load pending outstanding",
|
|
Packit Service |
a1973e |
.ucode = 0x0500 | (0x5 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.ucntmsk= 0xf,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALLS_TOTAL",
|
|
Packit Service |
a1973e |
.udesc = "Cycles during which no instructions were executed in the execution stage of the pipeline",
|
|
Packit Service |
a1973e |
.ucode = 0x0400 | (0x4 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.ucntmsk= 0xf,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_NO_EXECUTE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles during which no instructions were executed in the execution stage of the pipeline",
|
|
Packit Service |
a1973e |
.ucode = 0x0400 | (0x4 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
.uequiv = "STALLS_TOTAL",
|
|
Packit Service |
a1973e |
.ucntmsk= 0xf,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_dtlb_load_misses[]={
|
|
Packit Service |
a1973e |
{ .uname = "MISS_CAUSES_A_WALK",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all DTLB levels that cause page walks",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED_4K",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk that completes (4K)",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED_2M_4M",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk of 2MB/4MB page sizes that completes",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED_1G",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk of 1GB page sizes that completes",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk of any page size that completes",
|
|
Packit Service |
a1973e |
.ucode = 0xe00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_DURATION",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when PMH is busy with page walks",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_HIT_4K",
|
|
Packit Service |
a1973e |
.udesc = "Misses that miss the DTLB and hit the STLB (4KB)",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_HIT_2M",
|
|
Packit Service |
a1973e |
.udesc = "Misses that miss the DTLB and hit the STLB (2MB)",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Number of cache load STLB hits. No page walk",
|
|
Packit Service |
a1973e |
.ucode = 0x6000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_itlb_misses[]={
|
|
Packit Service |
a1973e |
{ .uname = "MISS_CAUSES_A_WALK",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all DTLB levels that cause page walks",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED_4K",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk that completes (4KB)",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED_2M_4M",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk that completes (2MB/4MB)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED_1G",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk that completes (1GB)",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_COMPLETED",
|
|
Packit Service |
a1973e |
.udesc = "Misses in all TLB levels causes a page walk of any page size that completes",
|
|
Packit Service |
a1973e |
.ucode = 0xe00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WALK_DURATION",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when PMH is busy with page walks",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_HIT_4K",
|
|
Packit Service |
a1973e |
.udesc = "Misses that miss the DTLB and hit the STLB (4KB)",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_HIT_2M",
|
|
Packit Service |
a1973e |
.udesc = "Misses that miss the DTLB and hit the STLB (2MB)",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Number of cache load STLB hits. No page walk",
|
|
Packit Service |
a1973e |
.ucode = 0x6000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_fp_assist[]={
|
|
Packit Service |
a1973e |
{ .uname = "X87_OUTPUT",
|
|
Packit Service |
a1973e |
.udesc = "Number of X87 FP assists due to output values",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "X87_INPUT",
|
|
Packit Service |
a1973e |
.udesc = "Number of X87 FP assists due to input values",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SIMD_OUTPUT",
|
|
Packit Service |
a1973e |
.udesc = "Number of SIMD FP assists due to output values",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SIMD_INPUT",
|
|
Packit Service |
a1973e |
.udesc = "Number of SIMD FP assists due to input values",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with any input/output SEE or FP assists",
|
|
Packit Service |
a1973e |
.ucode = 0x1e00 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with any input and output SSE or FP assist",
|
|
Packit Service |
a1973e |
.ucode = 0x1e00 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "ANY",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_icache[]={
|
|
Packit Service |
a1973e |
{ .uname = "MISSES",
|
|
Packit Service |
a1973e |
.udesc = "Number of Instruction Cache, Streaming Buffer and Victim Cache Misses. Includes Uncacheable accesses",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "IFDATA_STALL",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles where a code fetch is stalled due to L1 miss",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "HIT",
|
|
Packit Service |
a1973e |
.udesc = "Number of Instruction Cache, Streaming Buffer and Victim Cache Reads. Includes cacheable and uncacheable accesses and uncacheable fetches",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_idq[]={
|
|
Packit Service |
a1973e |
{ .uname = "EMPTY",
|
|
Packit Service |
a1973e |
.udesc = "Cycles the Instruction Decode Queue (IDQ) is empty",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.ucntmsk= 0xf,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MITE_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops delivered to Instruction Decode Queue (IDQ) from MITE path",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DSB_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_DSB_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Uops initiated by Decode Stream Buffer (DSB) that are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_MITE_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Number of Uops were delivered into Instruction Decode Queue (IDQ) from MS, initiated by Decode Stream Buffer (DSB) or MITE",
|
|
Packit Service |
a1973e |
.ucode = 0x3000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_UOPS_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles that Uops were delivered into Instruction Decode Queue (IDQ) when MS_Busy, initiated by Decode Stream Buffer (DSB) or MITE",
|
|
Packit Service |
a1973e |
.ucode = 0x3000 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "MS_UOPS:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_SWITCHES",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles that Uops were delivered into Instruction Decode Queue (IDQ) when MS_Busy, initiated by Decode Stream Buffer (DSB) or MITE",
|
|
Packit Service |
a1973e |
.ucode = 0x3000 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "MS_UOPS:c=1:e",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MITE_UOPS_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from MITE path",
|
|
Packit Service |
a1973e |
.ucode = 0x400 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "MITE_UOPS:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DSB_UOPS_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path",
|
|
Packit Service |
a1973e |
.ucode = 0x800 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "DSB_UOPS:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_DSB_UOPS_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when uops initiated by Decode Stream Buffer (DSB) are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
|
|
Packit Service |
a1973e |
.ucode = 0x1000 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "MS_DSB_UOPS:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MS_DSB_OCCUR",
|
|
Packit Service |
a1973e |
.udesc = "Deliveries to Instruction Decode Queue (IDQ) initiated by Decode Stream Buffer (DSB) while Microcode Sequencer (MS) is busy",
|
|
Packit Service |
a1973e |
.ucode = 0x1000 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "MS_DSB_UOPS:c=1:e=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DSB_CYCLES_4_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops",
|
|
Packit Service |
a1973e |
.ucode = 0x1800 | (4 << INTEL_X86_CMASK_BIT), /* cnt=4 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DSB_CYCLES_ANY_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Cycles Decode Stream Buffer (DSB) is delivering any Uop",
|
|
Packit Service |
a1973e |
.ucode = 0x1800 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_MITE_CYCLES_4_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Cycles MITE is delivering 4 Uops",
|
|
Packit Service |
a1973e |
.ucode = 0x2400 | (4 << INTEL_X86_CMASK_BIT), /* cnt=4 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_MITE_CYCLES_ANY_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Cycles MITE is delivering any Uop",
|
|
Packit Service |
a1973e |
.ucode = 0x2400 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_MITE_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops delivered to Instruction Decode Queue (IDQ) from any path",
|
|
Packit Service |
a1973e |
.ucode = 0x3c00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_idq_uops_not_delivered[]={
|
|
Packit Service |
a1973e |
{ .uname = "CORE",
|
|
Packit Service |
a1973e |
.udesc = "Count number of non-delivered uops to Resource Allocation Table (RAT)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_0_UOPS_DELIV_CORE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles per thread when 4 or more uops are not delivered to the Resource Allocation Table (RAT) when backend is not stalled",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (4 << INTEL_X86_CMASK_BIT), /* cnt=4 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=4",
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_LE_1_UOP_DELIV_CORE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles per thread when 3 or more uops are not delivered to the Resource Allocation Table (RAT) when backend is not stalled",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (3 << INTEL_X86_CMASK_BIT), /* cnt=3 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=3",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_LE_2_UOP_DELIV_CORE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with less than 2 uops delivered by the front end",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (2 << INTEL_X86_CMASK_BIT), /* cnt=2 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=2",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_LE_3_UOP_DELIV_CORE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with less than 3 uops delivered by the front end",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_FE_WAS_OK",
|
|
Packit Service |
a1973e |
.udesc = "Cycles Front-End (FE) delivered 4 uops or Resource Allocation Table (RAT) was stalling FE",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 inv=1 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=1:i",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C | _INTEL_X86_ATTR_I,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_inst_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "ANY_P",
|
|
Packit Service |
a1973e |
.udesc = "Number of instructions retired. General Counter - architectural event",
|
|
Packit Service |
a1973e |
.ucode = 0x000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL",
|
|
Packit Service |
a1973e |
.udesc = "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "PREC_DIST",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TOTAL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles using always true condition",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (10 << INTEL_X86_CMASK_BIT), /* inv=1 cnt=10 */
|
|
Packit Service |
a1973e |
.uequiv = "PREC_DIST:i=1:c=10",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PREC_DIST",
|
|
Packit Service |
a1973e |
.udesc = "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution (Precise event)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.ucntmsk= 0x2,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "X87",
|
|
Packit Service |
a1973e |
.udesc = "Number of FPU operations retired (instructions with no exceptions)",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.ucntmsk= 0x2,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_int_misc[]={
|
|
Packit Service |
a1973e |
{ .uname = "RECOVERY_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles waiting for the checkpoints in Resource Allocation Table (RAT) to be recovered after Nuke due to all other cases except JEClear (e.g. whenever a ucode assist is needed like SSE exception, memory disambiguation, etc...)",
|
|
Packit Service |
a1973e |
.ucode = 0x300 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RECOVERY_CYCLES_ANY",
|
|
Packit Service |
a1973e |
.udesc = "Core cycles the allocator was stalled due to recovery from earlier clear event for any thread running on the physical core (e.g. misprediction or memory nuke)",
|
|
Packit Service |
a1973e |
.ucode = 0x300 | (1 << INTEL_X86_CMASK_BIT) | INTEL_X86_MOD_ANY, /* cnt=1 any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "RECOVERY_CYCLES:t",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C | _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RECOVERY_STALLS_COUNT",
|
|
Packit Service |
a1973e |
.udesc = "Number of occurrences waiting for Machine Clears",
|
|
Packit Service |
a1973e |
.ucode = 0x300 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RAT_STALL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when the Resource Allocation Table (RAT) external stall event is sent to the Instruction Decode Queue (IDQ) for the thread. Also includes cycles when the allocator is serving another thread",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_itlb[]={
|
|
Packit Service |
a1973e |
{ .uname = "ITLB_FLUSH",
|
|
Packit Service |
a1973e |
.udesc = "Flushing of the Instruction TLB (ITLB) pages independent of page size",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l1d[]={
|
|
Packit Service |
a1973e |
{ .uname = "REPLACEMENT",
|
|
Packit Service |
a1973e |
.udesc = "L1D Data line replacements",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_sq_misc[]={
|
|
Packit Service |
a1973e |
{ .uname = "SPLIT_LOCK",
|
|
Packit Service |
a1973e |
.udesc = "Number of split locks in the super queue (SQ)",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l1d_pend_miss[]={
|
|
Packit Service |
a1973e |
{ .uname = "PENDING",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with L1D load misses outstanding",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.ucntmsk = 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PENDING_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with L1D load misses outstanding",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PENDING:c=1",
|
|
Packit Service |
a1973e |
.ucntmsk = 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PENDING_CYCLES_ANY",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with L1D load misses outstanding from any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (1 << INTEL_X86_CMASK_BIT) | INTEL_X86_MOD_ANY, /* cnt=1 any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PENDING:c=1:t",
|
|
Packit Service |
a1973e |
.ucntmsk = 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C | _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "OCCURRENCES",
|
|
Packit Service |
a1973e |
.udesc = "Number L1D miss outstanding",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PENDING:c=1:e=1",
|
|
Packit Service |
a1973e |
.ucntmsk = 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "EDGE",
|
|
Packit Service |
a1973e |
.udesc = "Number L1D miss outstanding",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PENDING:c=1:e=1",
|
|
Packit Service |
a1973e |
.ucntmsk = 0x4,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "FB_FULL",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles a demand request was blocked due to Fill Buffer (FB) unavailability",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l2_demand_rqsts[]={
|
|
Packit Service |
a1973e |
{ .uname = "WB_HIT",
|
|
Packit Service |
a1973e |
.udesc = "WB requests that hit L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x5000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l2_lines_in[]={
|
|
Packit Service |
a1973e |
{ .uname = "I",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache lines in I state filling L2",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "S",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache lines in S state filling L2",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "E",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache lines in E state filling L2",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache lines filling L2",
|
|
Packit Service |
a1973e |
.ucode = 0x700,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache lines filling L2",
|
|
Packit Service |
a1973e |
.uequiv = "ALL",
|
|
Packit Service |
a1973e |
.ucode = 0x700,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l2_lines_out[]={
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_CLEAN",
|
|
Packit Service |
a1973e |
.udesc = "Number of clean L2 cachelines evicted by demand",
|
|
Packit Service |
a1973e |
.ucode = 0x500,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l2_rqsts[]={
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Demand Data Read requests that miss L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x2100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Demand Data Read requests that hit L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_RFO_MISS",
|
|
Packit Service |
a1973e |
.udesc = "RFO requests that miss L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x2200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RFO_MISS",
|
|
Packit Service |
a1973e |
.udesc = "RFO requests that miss L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x2200,
|
|
Packit Service |
a1973e |
.uequiv = "DEMAND_RFO_MISS",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_RFO_HIT",
|
|
Packit Service |
a1973e |
.udesc = "RFO requests that hit L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x4200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RFO_HIT",
|
|
Packit Service |
a1973e |
.udesc = "RFO requests that hit L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x4200,
|
|
Packit Service |
a1973e |
.uequiv = "DEMAND_RFO_HIT",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CODE_RD_MISS",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache misses when fetching instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x2400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DEMAND_MISS",
|
|
Packit Service |
a1973e |
.udesc = "All demand requests that miss the L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x2700,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CODE_RD_HIT",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache hits when fetching instructions, code reads",
|
|
Packit Service |
a1973e |
.ucode = 0x4400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L2_PF_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Requests from the L2 hardware prefetchers that miss L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x3800,
|
|
Packit Service |
a1973e |
.uequiv = "PF_MISS",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Requests from the L2 hardware prefetchers that miss L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x3800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MISS",
|
|
Packit Service |
a1973e |
.udesc = "All requests that miss the L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x3f00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L2_PF_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Requests from the L2 hardware prefetchers that hit L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xd800,
|
|
Packit Service |
a1973e |
.uequiv = "PF_HIT",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Requests from the L2 hardware prefetchers that hit L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xd800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DEMAND_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Any data read request to L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xe100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Any data RFO request to L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xe200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_CODE_RD",
|
|
Packit Service |
a1973e |
.udesc = "Any code read request to L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xe400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DEMAND_REFERENCES",
|
|
Packit Service |
a1973e |
.udesc = "All demand requests to L2 cache ",
|
|
Packit Service |
a1973e |
.ucode = 0xe700,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_PF",
|
|
Packit Service |
a1973e |
.udesc = "Any L2 HW prefetch request to L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xf800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REFERENCES",
|
|
Packit Service |
a1973e |
.udesc = "All requests to L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0xff00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_l2_trans[]={
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Demand Data Read requests that access L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RFO",
|
|
Packit Service |
a1973e |
.udesc = "RFO requests that access L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CODE_RD",
|
|
Packit Service |
a1973e |
.udesc = "L2 cache accesses when fetching instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_PF",
|
|
Packit Service |
a1973e |
.udesc = "L2 or L3 HW prefetches that access L2 cache, including rejects",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L1D_WB",
|
|
Packit Service |
a1973e |
.udesc = "L1D writebacks that access L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L2_FILL",
|
|
Packit Service |
a1973e |
.udesc = "L2 fill requests that access L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L2_WB",
|
|
Packit Service |
a1973e |
.udesc = "L2 writebacks that access L2 cache",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_REQUESTS",
|
|
Packit Service |
a1973e |
.udesc = "Transactions accessing L2 pipe",
|
|
Packit Service |
a1973e |
.ucode = 0x8000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_ld_blocks[]={
|
|
Packit Service |
a1973e |
{ .uname = "STORE_FORWARD",
|
|
Packit Service |
a1973e |
.udesc = "Counts the number of loads blocked by overlapping with store buffer entries that cannot be forwarded",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NO_SR",
|
|
Packit Service |
a1973e |
.udesc = "number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_ld_blocks_partial[]={
|
|
Packit Service |
a1973e |
{ .uname = "ADDRESS_ALIAS",
|
|
Packit Service |
a1973e |
.udesc = "False dependencies in MOB due to partial compare on address",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_load_hit_pre[]={
|
|
Packit Service |
a1973e |
{ .uname = "HW_PF",
|
|
Packit Service |
a1973e |
.udesc = "Non software-prefetch load dispatches that hit FB allocated for hardware prefetch",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SW_PF",
|
|
Packit Service |
a1973e |
.udesc = "Non software-prefetch load dispatches that hit FB allocated for software prefetch",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_lock_cycles[]={
|
|
Packit Service |
a1973e |
{ .uname = "SPLIT_LOCK_UC_LOCK_DURATION",
|
|
Packit Service |
a1973e |
.udesc = "Cycles in which the L1D and L2 are locked, due to a UC lock or split lock",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CACHE_LOCK_DURATION",
|
|
Packit Service |
a1973e |
.udesc = "cycles that the L1D is locked",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_longest_lat_cache[]={
|
|
Packit Service |
a1973e |
{ .uname = "MISS",
|
|
Packit Service |
a1973e |
.udesc = "Core-originated cacheable demand requests missed LLC - architectural event",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REFERENCE",
|
|
Packit Service |
a1973e |
.udesc = "Core-originated cacheable demand requests that refer to LLC - architectural event",
|
|
Packit Service |
a1973e |
.ucode = 0x4f00,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_machine_clears[]={
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles there was a Nuke. Account for both thread-specific and All Thread Nukes",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MEMORY_ORDERING",
|
|
Packit Service |
a1973e |
.udesc = "Number of Memory Ordering Machine Clears detected",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SMC",
|
|
Packit Service |
a1973e |
.udesc = "Number of Self-modifying code (SMC) Machine Clears detected",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MASKMOV",
|
|
Packit Service |
a1973e |
.udesc = "This event counts the number of executed Intel AVX masked load operations that refer to an illegal address range with the mask bits set to 0",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "COUNT",
|
|
Packit Service |
a1973e |
.udesc = "Number of machine clears (nukes) of any type",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_EDGE | (1 << INTEL_X86_CMASK_BIT), /* edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "CYCLES:c=1:e",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_E | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_mem_load_uops_l3_hit_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "XSNP_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which data sources were L3 hit and cross-core snoop missed in on-pkg core cache",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "XSNP_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which data sources were L3 and cross-core snoop hits in on-pkg core cache",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "XSNP_HITM",
|
|
Packit Service |
a1973e |
.udesc = "Load had HitM Response from a core on same socket (shared L3). (Non PEBS",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "XSNP_NONE",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which data sources were hits in L3 without snoops required",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_mem_load_uops_l3_miss_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "LOCAL_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops missing L3 cache but hitting local memory (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS ,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REMOTE_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Number of retired load uops that missed L3 but were service by remote RAM, snoop not needed, snoop miss, snoop hit data not forwarded (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REMOTE_HITM",
|
|
Packit Service |
a1973e |
.udesc = "Number of retired load uops whose data sources was remote HITM (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "REMOTE_FWD",
|
|
Packit Service |
a1973e |
.udesc = "Load uops that miss in the L3 whose data source was forwarded from a remote cache (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_mem_load_uops_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "L1_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops with L1 cache hits as data source",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L2_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops with L2 cache hits as data source",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops with L3 cache hits as data source",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L1_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which missed the L1D",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L2_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which missed the L2. Unknown data source excluded",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which missed the L3",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "HIT_LFB",
|
|
Packit Service |
a1973e |
.udesc = "Retired load uops which missed L1 but hit line fill buffer (LFB)",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_mem_trans_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "LOAD_LATENCY",
|
|
Packit Service |
a1973e |
.udesc = "Memory load instructions retired above programmed clocks, minimum threshold value is 3 (Precise Event and ldlat required)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_LDLAT | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LATENCY_ABOVE_THRESHOLD",
|
|
Packit Service |
a1973e |
.udesc = "Memory load instructions retired above programmed clocks, minimum threshold value is 3 (Precise Event and ldlat required)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "LOAD_LATENCY",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_LDLAT | INTEL_X86_NO_AUTOENCODE,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_mem_uops_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "STLB_MISS_LOADS",
|
|
Packit Service |
a1973e |
.udesc = "Load uops with true STLB miss retired to architected path",
|
|
Packit Service |
a1973e |
.ucode = 0x1100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_MISS_STORES",
|
|
Packit Service |
a1973e |
.udesc = "Store uops with true STLB miss retired to architected path",
|
|
Packit Service |
a1973e |
.ucode = 0x1200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LOCK_LOADS",
|
|
Packit Service |
a1973e |
.udesc = "Load uops with locked access retired",
|
|
Packit Service |
a1973e |
.ucode = 0x2100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SPLIT_LOADS",
|
|
Packit Service |
a1973e |
.udesc = "Line-splitted load uops retired",
|
|
Packit Service |
a1973e |
.ucode = 0x4100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SPLIT_STORES",
|
|
Packit Service |
a1973e |
.udesc = "Line-splitted store uops retired",
|
|
Packit Service |
a1973e |
.ucode = 0x4200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_LOADS",
|
|
Packit Service |
a1973e |
.udesc = "All load uops retired",
|
|
Packit Service |
a1973e |
.ucode = 0x8100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_STORES",
|
|
Packit Service |
a1973e |
.udesc = "All store uops retired",
|
|
Packit Service |
a1973e |
.ucode = 0x8200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_misalign_mem_ref[]={
|
|
Packit Service |
a1973e |
{ .uname = "LOADS",
|
|
Packit Service |
a1973e |
.udesc = "Speculative cache-line split load uops dispatched to the L1D",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STORES",
|
|
Packit Service |
a1973e |
.udesc = "Speculative cache-line split store-address uops dispatched to L1D",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_move_elimination[]={
|
|
Packit Service |
a1973e |
{ .uname = "INT_ELIMINATED",
|
|
Packit Service |
a1973e |
.udesc = "Number of integer Move Elimination candidate uops that were eliminated",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SIMD_ELIMINATED",
|
|
Packit Service |
a1973e |
.udesc = "Number of SIMD Move Elimination candidate uops that were eliminated",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "INT_NOT_ELIMINATED",
|
|
Packit Service |
a1973e |
.udesc = "Number of integer Move Elimination candidate uops that were not eliminated",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SIMD_NOT_ELIMINATED",
|
|
Packit Service |
a1973e |
.udesc = "Number of SIMD Move Elimination candidate uops that were not eliminated",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_offcore_requests[]={
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Demand data read requests sent to uncore (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_CODE_RD",
|
|
Packit Service |
a1973e |
.udesc = "Demand code read requests sent to uncore (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Demand RFOs requests sent to uncore (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Data read requests sent to uncore (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_other_assists[]={
|
|
Packit Service |
a1973e |
{ .uname = "AVX_TO_SSE",
|
|
Packit Service |
a1973e |
.udesc = "Number of transitions from AVX-256 to legacy SSE when penalty applicable",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SSE_TO_AVX",
|
|
Packit Service |
a1973e |
.udesc = "Number of transitions from legacy SSE to AVX-256 when penalty applicable",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_WB_ASSIST",
|
|
Packit Service |
a1973e |
.udesc = "Number of times any microcode assist is invoked by HW upon uop writeback",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_resource_stalls[]={
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.udesc = "Cycles Allocation is stalled due to Resource Related reason",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL",
|
|
Packit Service |
a1973e |
.udesc = "Cycles Allocation is stalled due to Resource Related reason",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "ANY",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RS",
|
|
Packit Service |
a1973e |
.udesc = "Stall cycles caused by absence of eligible entries in Reservation Station (RS)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SB",
|
|
Packit Service |
a1973e |
.udesc = "Cycles Allocator is stalled due to Store Buffer full (not including draining from synch)",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ROB",
|
|
Packit Service |
a1973e |
.udesc = "ROB full stall cycles",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_rob_misc_events[]={
|
|
Packit Service |
a1973e |
{ .uname = "LBR_INSERTS",
|
|
Packit Service |
a1973e |
.udesc = "Count each time an new Last Branch Record (LBR) is inserted",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_rs_events[]={
|
|
Packit Service |
a1973e |
{ .uname = "EMPTY_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles the Reservation Station (RS) is empty for this thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "EMPTY_END",
|
|
Packit Service |
a1973e |
.udesc = "Number of times the reservation station (RS) was empty",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT) | INTEL_X86_MOD_EDGE, /* inv=1, cmask=1,edge=1 */
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C | _INTEL_X86_ATTR_E,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_tlb_flush[]={
|
|
Packit Service |
a1973e |
{ .uname = "DTLB_THREAD",
|
|
Packit Service |
a1973e |
.udesc = "Count number of DTLB flushes of thread-specific entries",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STLB_ANY",
|
|
Packit Service |
a1973e |
.udesc = "Count number of any STLB flushes",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_uops_executed[]={
|
|
Packit Service |
a1973e |
{ .uname = "CORE",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops executed from any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "THREAD",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops executed per thread each cycle",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL | INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles with no uops executed",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT), /* inv=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "THREAD:c=1:i",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_GE_1_UOP_EXEC",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 1 uop was executed per thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "THREAD:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_GE_2_UOPS_EXEC",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 2 uops were executed per thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (2 << INTEL_X86_CMASK_BIT), /* cnt=2 */
|
|
Packit Service |
a1973e |
.uequiv = "THREAD:c=2",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_GE_3_UOPS_EXEC",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 3 uops were executed per thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (3 << INTEL_X86_CMASK_BIT), /* cnt=3 */
|
|
Packit Service |
a1973e |
.uequiv = "THREAD:c=3",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_GE_4_UOPS_EXEC",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 4 uops were executed per thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (4 << INTEL_X86_CMASK_BIT), /* cnt=4 */
|
|
Packit Service |
a1973e |
.uequiv = "THREAD:c=4",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_CYCLES_GE_1",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 1 uop was executed from any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_CYCLES_GE_2",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 2 uops were executed from any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | (2 << INTEL_X86_CMASK_BIT), /* cnt=2 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=2",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_CYCLES_GE_3",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 3 uops were executed from any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | (3 << INTEL_X86_CMASK_BIT), /* cnt=3 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=3",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_CYCLES_GE_4",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where at least 4 uops were executed from any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | (4 << INTEL_X86_CMASK_BIT), /* cnt=4 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:c=4",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_CYCLES_NONE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles where no uop is executed on any thread",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | INTEL_X86_MOD_INV, /* inv=1 */
|
|
Packit Service |
a1973e |
.uequiv = "CORE:i",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_uops_executed_port[]={
|
|
Packit Service |
a1973e |
{ .uname = "PORT_0",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 0",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_1",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 1",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_2",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 2",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_3",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 3",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_4",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 4",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_5",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 5",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_6",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 6",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_7",
|
|
Packit Service |
a1973e |
.udesc = "Cycles which a Uop is executed on port 7",
|
|
Packit Service |
a1973e |
.ucode = 0x8000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_0_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_0:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_1_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_1:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_2_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x400 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_2:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_3_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x800 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_3:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_4_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x1000 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_4:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_5_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x2000 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_5:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_6_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x4000 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_6:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PORT_7_CORE",
|
|
Packit Service |
a1973e |
.udesc = "tbd",
|
|
Packit Service |
a1973e |
.ucode = 0x8000 | INTEL_X86_MOD_ANY, /* any=1 */
|
|
Packit Service |
a1973e |
.uequiv = "PORT_7:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_uops_issued[]={
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.udesc = "Number of Uops issued by the Resource Allocation Table (RAT) to the Reservation Station (RS)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL",
|
|
Packit Service |
a1973e |
.udesc = "Number of Uops issued by the Resource Allocation Table (RAT) to the Reservation Station (RS)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "ANY",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "FLAGS_MERGE",
|
|
Packit Service |
a1973e |
.udesc = "Number of flags-merge uops being allocated. Such uops adds delay",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SLOW_LEA",
|
|
Packit Service |
a1973e |
.udesc = "Number of slow LEA or similar uops allocated. Such uop has 3 sources regardless if result of LEA instruction or not",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SINGLE_MUL",
|
|
Packit Service |
a1973e |
.udesc = "Number of Multiply packed/scalar single precision uops allocated",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Counts the number of cycles no uops issued by this thread",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT), /* inv=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "ANY:c=1:i=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.ucntmsk = 0xf,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_STALL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Counts the number of cycles no uops issued on this core",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_ANY | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT), /* any=1 inv=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "ANY:c=1:i=1:t=1",
|
|
Packit Service |
a1973e |
.ucntmsk = 0xf,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_T | _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_uops_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "ALL",
|
|
Packit Service |
a1973e |
.udesc = "All uops that actually retired",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.udesc = "All uops that actually retired",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uequiv = "ALL",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "RETIRE_SLOTS",
|
|
Packit Service |
a1973e |
.udesc = "number of retirement slots used non PEBS",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles no executable uops retired (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT), /* inv=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "ALL:i=1:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "TOTAL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles using always true condition applied to PEBS uops retired event",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (10 << INTEL_X86_CMASK_BIT), /* inv=1 cnt=10 */
|
|
Packit Service |
a1973e |
.uequiv = "ALL:i=1:c=10",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CORE_STALL_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles no executable uops retired on core (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | (1 << INTEL_X86_CMASK_BIT), /* inv=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "ALL:i=1:c=1:t=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STALL_OCCURRENCES",
|
|
Packit Service |
a1973e |
.udesc = "Number of transitions from stalled to unstalled execution (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | INTEL_X86_MOD_INV | INTEL_X86_MOD_EDGE| (1 << INTEL_X86_CMASK_BIT), /* inv=1 edge=1 cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "ALL:c=1:i=1:e=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_I | _INTEL_X86_ATTR_C | _INTEL_X86_ATTR_E,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_offcore_response[]={
|
|
Packit Service |
a1973e |
{ .uname = "DMND_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of demand and DCU prefetch data reads of full and partial cachelines as well as demand data page table entry cacheline reads. Does not count L2 data read prefetches or instruction fetches",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (0 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DMND_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of demand and DCU prefetch reads for ownership (RFO) requests generated by a write to data cacheline. Does not count L2 RFO prefetches",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (1 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DMND_IFETCH",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of demand and DCU prefetch instruction cacheline reads. Does not count L2 code read prefetches",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (2 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "WB",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of writebacks (modified to exclusive) transactions",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (3 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of data cacheline reads generated by L2 prefetchers",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (4 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of RFO requests generated by L2 prefetchers",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (5 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_IFETCH",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of code reads generated by L2 prefetchers",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (6 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_LLC_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of L3 prefetcher requests to L2 for loads",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (7 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_LLC_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of RFO requests generated by L2 prefetcher",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (8 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PF_LLC_IFETCH",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of L2 prefetcher requests to L3 for instruction fetches",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (9 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "BUS_LOCKS",
|
|
Packit Service |
a1973e |
.udesc = "Request: number bus lock and split lock requests",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (10 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "STRM_ST",
|
|
Packit Service |
a1973e |
.udesc = "Request: number of streaming store requests",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (11 + 8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "OTHER",
|
|
Packit Service |
a1973e |
.udesc = "Request: counts one of the following transaction types, including L3 invalidate, I/O, full or partial writes, WC or non-temporal stores, CLFLUSH, Fences, lock, unlock, split lock",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (15+8),
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_IFETCH",
|
|
Packit Service |
a1973e |
.udesc = "Request: combination of PF_IFETCH | DMND_IFETCH | PF_LLC_IFETCH",
|
|
Packit Service |
a1973e |
.uequiv = "PF_IFETCH:DMND_IFETCH:PF_LLC_IFETCH",
|
|
Packit Service |
a1973e |
.ucode = 0x24100,
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_REQUEST",
|
|
Packit Service |
a1973e |
.udesc = "Request: combination of all request umasks",
|
|
Packit Service |
a1973e |
.uequiv = "DMND_DATA_RD:DMND_RFO:DMND_IFETCH:WB:PF_DATA_RD:PF_RFO:PF_IFETCH:PF_LLC_DATA_RD:PF_LLC_RFO:PF_LLC_IFETCH:BUS_LOCKS:STRM_ST:OTHER",
|
|
Packit Service |
a1973e |
.ucode = 0x8fff00,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_DATA",
|
|
Packit Service |
a1973e |
.udesc = "Request: combination of DMND_DATA | PF_DATA_RD | PF_LLC_DATA_RD",
|
|
Packit Service |
a1973e |
.uequiv = "DMND_DATA_RD:PF_DATA_RD:PF_LLC_DATA_RD",
|
|
Packit Service |
a1973e |
.ucode = 0x9100,
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ANY_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Request: combination of DMND_RFO | PF_RFO | PF_LLC_RFO",
|
|
Packit Service |
a1973e |
.uequiv = "DMND_RFO:PF_RFO:PF_LLC_RFO",
|
|
Packit Service |
a1973e |
.ucode = 0x10300,
|
|
Packit Service |
a1973e |
.grpid = 0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
{ .uname = "ANY_RESPONSE",
|
|
Packit Service |
a1973e |
.udesc = "Response: count any response type",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (16+8),
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_EXCL_GRP_GT,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NO_SUPP",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts number of times supplier information is not available",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (17+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HITM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in M-state (initial lookup)",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (18+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_HITM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in M-state (initial lookup)",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (18+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITM",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HITE",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in E-state",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (19+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_HITE",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in E-state",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (19+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITE",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HITS",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in S-state",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (20+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_HITS",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in S-state",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (20+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITS",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HITF",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in F-state",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (21+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_HITF",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in F-state",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (20+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITF",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HITMESF",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in any state (M, E, S, F)",
|
|
Packit Service |
a1973e |
.ucode = 0xfULL << (18+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITM:L3_HITE:L3_HITS:L3_HITF",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_HITMESF",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 hits in any state (M, E, S, F)",
|
|
Packit Service |
a1973e |
.ucode = 0xfULL << (18+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITMESF",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Alias for L3_HITMESF",
|
|
Packit Service |
a1973e |
.ucode = 0xfULL << (18+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITM:L3_HITE:L3_HITS:L3_HITF",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Alias for LLC_HITMESF",
|
|
Packit Service |
a1973e |
.ucode = 0xfULL << (18+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_HITM:L3_HITE:L3_HITS:L3_HITF",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_LOCAL",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to local DRAM",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (26+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_MISS_LOCAL",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to local DRAM",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (26+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_LOCAL",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "LLC_MISS_LOCAL_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to local DRAM",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (26+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_LOCAL",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to local DRAM",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (26+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_LOCAL",
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to local or remote DRAM",
|
|
Packit Service |
a1973e |
.ucode = 0xfULL << (26+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_LOCAL:L3_MISS_REMOTE_HOP0:L3_MISS_REMOTE_HOP1:L3_MISS_REMOTE_HOP2P",
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_HOP0",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote DRAM with 0 hop",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (27+8),
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_HOP0_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote DRAM with 0 hop",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (27+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_REMOTE_HOP0",
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_HOP1",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote DRAM with 1 hop",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (28+8),
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_HOP1_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote DRAM with 1 hop",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (28+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_REMOTE_HOP1",
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_HOP2P",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote DRAM with 2P hops",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (29+8),
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_HOP2P_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote DRAM with 2P hops",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (29+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_REMOTE_HOP2P",
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote node",
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_REMOTE_HOP0:L3_MISS_REMOTE_HOP1:L3_MISS_REMOTE_HOP2P",
|
|
Packit Service |
a1973e |
.ucode = 0x7ULL << (27+8),
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "L3_MISS_REMOTE_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 misses to remote node",
|
|
Packit Service |
a1973e |
.ucode = 0x7ULL << (27+8),
|
|
Packit Service |
a1973e |
.uequiv = "L3_MISS_REMOTE",
|
|
Packit Service |
a1973e |
.umodel = PFM_PMU_INTEL_BDW_EP,
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SPL_HIT",
|
|
Packit Service |
a1973e |
.udesc = "Supplier: counts L3 supplier hit",
|
|
Packit Service |
a1973e |
.ucode = 0x1ULL << (30+8),
|
|
Packit Service |
a1973e |
.grpid = 1,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_NONE",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times no snoop-related information is available",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (31+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_NOT_NEEDED",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts the number of times no snoop was needed to satisfy the request",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (32+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_MISS",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times a snoop was needed and it missed all snooped caches",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (33+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_NO_FWD",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times a snoop was needed and it hit in at leas one snooped cache",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (34+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_FWD",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times a snoop was needed and data was forwarded from a remote socket",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (35+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "HITM",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times a snoop was needed and it hitM-ed in local or remote cache",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (36+8),
|
|
Packit Service |
a1973e |
.uequiv = "SNP_HITM",
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_HITM",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times a snoop was needed and it hitM-ed in local or remote cache",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (36+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NON_DRAM",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: counts number of times target was a non-DRAM system address. This includes MMIO transactions",
|
|
Packit Service |
a1973e |
.ucode = 1ULL << (37+8),
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SNP_ANY",
|
|
Packit Service |
a1973e |
.udesc = "Snoop: any snoop reason",
|
|
Packit Service |
a1973e |
.ucode = 0x7fULL << (31+8),
|
|
Packit Service |
a1973e |
.uequiv = "SNP_NONE:SNP_NOT_NEEDED:SNP_MISS:SNP_NO_FWD:SNP_FWD:HITM:NON_DRAM",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
.grpid = 2,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_hle_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "START",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution started",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "COMMIT",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution successfully committed",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution aborted due to any reasons (multiple categories may count as one) (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC1",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution aborted due to various memory events",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC2",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution aborted due to uncommon conditions",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC3",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution aborted due to HLE-unfriendly instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC4",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution aborted due to incompatible memory type",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC5",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an HLE execution aborted due to none of the other 4 reasons (e.g., interrupt)",
|
|
Packit Service |
a1973e |
.ucode = 0x8000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_rtm_retired[]={
|
|
Packit Service |
a1973e |
{ .uname = "START",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution started",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "COMMIT",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution successfully committed",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution aborted due to any reasons (multiple categories may count as one) (Precise Event)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC1",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution aborted due to various memory events",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC2",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution aborted due to uncommon conditions",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC3",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution aborted due to RTM-unfriendly instructions",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC4",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution aborted due to incompatible memory type",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORTED_MISC5",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an RTM execution aborted due to none of the other 4 reasons (e.g., interrupt)",
|
|
Packit Service |
a1973e |
.ucode = 0x8000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_tx_mem[]={
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_CONFLICT",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a transactional abort was signaled due to data conflict on a transactionally accessed address",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_CAPACITY",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a transactional abort was signaled due to data capacity limitation",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_HLE_STORE_TO_ELIDED_LOCK",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a HLE transactional execution aborted due to a non xrelease prefixed instruction writing to an elided lock in the elision buffer",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_HLE_ELISION_BUFFER_NOT_EMPTY",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a HLE transactional execution aborted due to NoAllocatedElisionBuffer being non-zero",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_HLE_ELISION_BUFFER_MISMATCH",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a HLE transaction execution aborted due to xrelease lock not satisfying the address and value requirements in the elision buffer",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_HLE_ELISION_BUFFER_UNSUPPORTED_ALIGNMENT",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a HLE transaction execution aborted due to an unsupported read alignment from the elision buffer",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ABORT_HLE_ELISION_BUFFER_FULL",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a HLE clock could not be elided due to ElisionBufferAvailable being zero",
|
|
Packit Service |
a1973e |
.ucode = 0x4000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_tx_exec[]={
|
|
Packit Service |
a1973e |
{ .uname = "MISC1",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a class of instructions that may cause a transactional abort was executed. Since this is the count of execution, it may not always cause a transactional abort",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MISC2",
|
|
Packit Service |
a1973e |
.udesc = "Number of times a class of instructions that may cause a transactional abort was executed inside a transactional region",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MISC3",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an instruction execution caused the supported nest count to be exceeded",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MISC4",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an instruction a xbegin instruction was executed inside HLE transactional region",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "MISC5",
|
|
Packit Service |
a1973e |
.udesc = "Number of times an instruction with HLE xacquire prefix was executed inside a RTM transactional region",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_offcore_requests_outstanding[]={
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DATA_RD_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with cacheable data read transactions in the superQ (use with HT off only)",
|
|
Packit Service |
a1973e |
.uequiv = "ALL_DATA_RD:c=1",
|
|
Packit Service |
a1973e |
.ucode = 0x800 | (0x1 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_CODE_RD_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with demand code reads transactions in the superQ (use with HT off only)",
|
|
Packit Service |
a1973e |
.uequiv = "DEMAND_CODE_RD:c=1",
|
|
Packit Service |
a1973e |
.ucode = 0x200 | (0x1 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with demand data read transactions in the superQ (use with HT off only)",
|
|
Packit Service |
a1973e |
.uequiv = "DEMAND_DATA_RD:c=1",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (0x1 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ALL_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Cacheable data read transactions in the superQ every cycle (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_CODE_RD",
|
|
Packit Service |
a1973e |
.udesc = "Code read transactions in the superQ every cycle (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD",
|
|
Packit Service |
a1973e |
.udesc = "Demand data read transactions in the superQ every cycle (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_DATA_RD_GE_6",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with at lesat 6 offcore outstanding demand data read requests in the uncore queue",
|
|
Packit Service |
a1973e |
.uequiv = "DEMAND_DATA_RD:c=6",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (6 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_RFO",
|
|
Packit Service |
a1973e |
.udesc = "Outstanding RFO (store) transactions in the superQ every cycle (use with HT off only)",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DEMAND_RFO_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with outstanding RFO (store) transactions in the superQ (use with HT off only)",
|
|
Packit Service |
a1973e |
.uequiv = "DEMAND_RFO:c=1",
|
|
Packit Service |
a1973e |
.ucode = 0x400 | (0x1 << INTEL_X86_CMASK_BIT),
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_ild_stall[]={
|
|
Packit Service |
a1973e |
{ .uname = "LCP",
|
|
Packit Service |
a1973e |
.udesc = "Stall caused by changing prefix length of the instruction",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_page_walker_loads[]={
|
|
Packit Service |
a1973e |
{ .uname = "DTLB_L1",
|
|
Packit Service |
a1973e |
.udesc = "Number of DTLB page walker loads that hit in the L1D and line fill buffer",
|
|
Packit Service |
a1973e |
.ucode = 0x1100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ITLB_L1",
|
|
Packit Service |
a1973e |
.udesc = "Number of ITLB page walker loads that hit in the L1I and line fill buffer",
|
|
Packit Service |
a1973e |
.ucode = 0x2100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DTLB_L2",
|
|
Packit Service |
a1973e |
.udesc = "Number of DTLB page walker loads that hit in the L2",
|
|
Packit Service |
a1973e |
.ucode = 0x1200,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ITLB_L2",
|
|
Packit Service |
a1973e |
.udesc = "Number of ITLB page walker loads that hit in the L2",
|
|
Packit Service |
a1973e |
.ucode = 0x2200,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DTLB_L3",
|
|
Packit Service |
a1973e |
.udesc = "Number of DTLB page walker loads that hit in the L3",
|
|
Packit Service |
a1973e |
.ucode = 0x1400,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ITLB_L3",
|
|
Packit Service |
a1973e |
.udesc = "Number of ITLB page walker loads that hit in the L3",
|
|
Packit Service |
a1973e |
.ucode = 0x2400,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DTLB_MEMORY",
|
|
Packit Service |
a1973e |
.udesc = "Number of DTLB page walker loads that hit memory",
|
|
Packit Service |
a1973e |
.ucode = 0x1800,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_lsd[]={
|
|
Packit Service |
a1973e |
{ .uname = "UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops delivered by the Loop Stream Detector (LSD)",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ACTIVE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with uops delivered by the LSD but which did not come from decoder",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (1 << INTEL_X86_CMASK_BIT), /* cnt=1 */
|
|
Packit Service |
a1973e |
.uequiv = "UOPS:c=1",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CYCLES_4_UOPS",
|
|
Packit Service |
a1973e |
.udesc = "Cycles with 4 uops delivered by the LSD but which did not come from decoder",
|
|
Packit Service |
a1973e |
.ucode = 0x100 | (4 << INTEL_X86_CMASK_BIT), /* cnt=4 */
|
|
Packit Service |
a1973e |
.uequiv = "UOPS:c=4",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
.modhw = _INTEL_X86_ATTR_C,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_dsb2mite_switches[]={
|
|
Packit Service |
a1973e |
{ .uname = "PENALTY_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Number of DSB to MITE switch true penalty cycles",
|
|
Packit Service |
a1973e |
.ucode = 0x0200,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_ept[]={
|
|
Packit Service |
a1973e |
{ .uname = "WALK_CYCLES",
|
|
Packit Service |
a1973e |
.udesc = "Cycles for an extended page table walk",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_arith[]={
|
|
Packit Service |
a1973e |
{ .uname = "FPU_DIV_ACTIVE",
|
|
Packit Service |
a1973e |
.udesc = "Cycles when divider is busy execuing divide operations",
|
|
Packit Service |
a1973e |
.ucode = 0x0100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_fp_arith[]={
|
|
Packit Service |
a1973e |
{ .uname = "SCALAR_DOUBLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of scalar double precision floating-point arithmetic instructions (multiply by 1 to get flops)",
|
|
Packit Service |
a1973e |
.ucode = 0x0100,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SCALAR_SINGLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of scalar single precision floating-point arithmetic instructions (multiply by 1 to get flops)",
|
|
Packit Service |
a1973e |
.ucode = 0x0200,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SCALAR",
|
|
Packit Service |
a1973e |
.udesc = "Number of SSE/AVX computational scalar floating-point instructions retired. Applies to SSE* and AVX* scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RSQRT RCP SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element",
|
|
Packit Service |
a1973e |
.ucode = 0x0300,
|
|
Packit Service |
a1973e |
.uequiv = "SCALAR_DOUBLE:SCALAR_SINGLE",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "128B_PACKED_DOUBLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of scalar 128-bit packed double precision floating-point arithmetic instructions (multiply by 2 to get flops)",
|
|
Packit Service |
a1973e |
.ucode = 0x0400,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "128B_PACKED_SINGLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of scalar 128-bit packed single precision floating-point arithmetic instructions (multiply by 4 to get flops)",
|
|
Packit Service |
a1973e |
.ucode = 0x0800,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "256B_PACKED_DOUBLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of scalar 256-bit packed double precision floating-point arithmetic instructions (multiply by 4 to get flops)",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "256B_PACKED_SINGLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of scalar 256-bit packed single precision floating-point arithmetic instructions (multiply by 8 to get flops)",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PACKED",
|
|
Packit Service |
a1973e |
.udesc = "Number of SSE/AVX computational packed floating-point instructions retired. Applies to SSE* and AVX*, packed, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RSQRT RCP SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element",
|
|
Packit Service |
a1973e |
.ucode = 0x3c00,
|
|
Packit Service |
a1973e |
.uequiv = "128B_PACKED_DOUBLE:128B_PACKED_SINGLE:256B_PACKED_SINGLE:256B_PACKED_DOUBLE",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SINGLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of SSE/AVX computational single precision floating-point instructions retired. Applies to SSE* and AVX*scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RCP RSQRT SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element",
|
|
Packit Service |
a1973e |
.ucode = 0x2a00,
|
|
Packit Service |
a1973e |
.uequiv = "256B_PACKED_SINGLE:128B_PACKED_SINGLE:SCALAR_SINGLE",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DOUBLE",
|
|
Packit Service |
a1973e |
.udesc = "Number of SSE/AVX computational double precision floating-point instructions retired. Applies to SSE* and AVX*scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element",
|
|
Packit Service |
a1973e |
.ucode = 0x1500,
|
|
Packit Service |
a1973e |
.uequiv = "SCALAR_DOUBLE:128B_PACKED_DOUBLE:256B_PACKED_DOUBLE",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_offcore_requests_buffer[]={
|
|
Packit Service |
a1973e |
{ .uname = "SQ_FULL",
|
|
Packit Service |
a1973e |
.udesc = "Number of cycles the offcore requests buffer is full",
|
|
Packit Service |
a1973e |
.ucode = 0x0100,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_umask_t bdw_uops_dispatches_cancelled[]={
|
|
Packit Service |
a1973e |
{ .uname = "SIMD_PRF",
|
|
Packit Service |
a1973e |
.udesc = "Number of uops cancelled after they were dispatched from the scheduler to the execution units when the total number of physical register read ports exceeds the read bandwidth of the register file. This umask applies to instructions: DPPS, DPPS, VPCMPESTRI, PCMPESTRI, VPCMPESTRM, PCMPESTRM, VFMADD*, VFMADDSUB*, VFMSUB*, VMSUBADD*, VFNMADD*, VFNMSUB*",
|
|
Packit Service |
a1973e |
.ucode = 0x0300,
|
|
Packit Service |
a1973e |
.uflags= INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static const intel_x86_entry_t intel_bdw_pe[]={
|
|
Packit Service |
a1973e |
{ .name = "UNHALTED_CORE_CYCLES",
|
|
Packit Service |
a1973e |
.desc = "Count core clock cycles whenever the clock signal on the specific core is running (not halted)",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x20000000full,
|
|
Packit Service |
a1973e |
.code = 0x3c,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNHALTED_REFERENCE_CYCLES",
|
|
Packit Service |
a1973e |
.desc = "Unhalted reference cycles",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_FIXED3_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x400000000ull,
|
|
Packit Service |
a1973e |
.code = 0x0300, /* pseudo encoding */
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_FIXED,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "INSTRUCTION_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Number of instructions at retirement",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x10000000full,
|
|
Packit Service |
a1973e |
.code = 0xc0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "INSTRUCTIONS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "This is an alias for INSTRUCTION_RETIRED",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.equiv = "INSTRUCTION_RETIRED",
|
|
Packit Service |
a1973e |
.cntmsk = 0x10000000full,
|
|
Packit Service |
a1973e |
.code = 0xc0,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "BRANCH_INSTRUCTIONS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Count branch instructions at retirement. Specifically, this event counts the retirement of the last micro-op of a branch instruction",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.equiv = "BR_INST_RETIRED:ALL_BRANCHES",
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0xc4,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MISPREDICTED_BRANCH_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Count mispredicted branch instructions at retirement. Specifically, this event counts at retirement of the last micro-op of a branch instruction in the architectural path of the execution and experienced misprediction in the branch prediction hardware",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.equiv = "BR_MISP_RETIRED:ALL_BRANCHES",
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0xc5,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "BACLEARS",
|
|
Packit Service |
a1973e |
.desc = "Branch re-steered",
|
|
Packit Service |
a1973e |
.code = 0xe6,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_baclears),
|
|
Packit Service |
a1973e |
.umasks = bdw_baclears
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "BR_INST_EXEC",
|
|
Packit Service |
a1973e |
.desc = "Branch instructions executed",
|
|
Packit Service |
a1973e |
.code = 0x88,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_br_inst_exec),
|
|
Packit Service |
a1973e |
.umasks = bdw_br_inst_exec
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "BR_INST_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Branch instructions retired (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xc4,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_br_inst_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_br_inst_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "BR_MISP_EXEC",
|
|
Packit Service |
a1973e |
.desc = "Mispredicted branches executed",
|
|
Packit Service |
a1973e |
.code = 0x89,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_br_misp_exec),
|
|
Packit Service |
a1973e |
.umasks = bdw_br_misp_exec
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "BR_MISP_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Mispredicted retired branches (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xc5,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_br_misp_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_br_misp_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "CPL_CYCLES",
|
|
Packit Service |
a1973e |
.desc = "Unhalted core cycles at a specific ring level",
|
|
Packit Service |
a1973e |
.code = 0x5c,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_cpl_cycles),
|
|
Packit Service |
a1973e |
.umasks = bdw_cpl_cycles
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "CPU_CLK_THREAD_UNHALTED",
|
|
Packit Service |
a1973e |
.desc = "Count core clock cycles whenever the clock signal on the specific core is running (not halted)",
|
|
Packit Service |
a1973e |
.code = 0x3c,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_cpu_clk_thread_unhalted),
|
|
Packit Service |
a1973e |
.umasks = bdw_cpu_clk_thread_unhalted
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "CPU_CLK_UNHALTED",
|
|
Packit Service |
a1973e |
.desc = "Count core clock cycles whenever the clock signal on the specific core is running (not halted)",
|
|
Packit Service |
a1973e |
.code = 0x3c,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.equiv = "CPU_CLK_THREAD_UNHALTED",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "CYCLE_ACTIVITY",
|
|
Packit Service |
a1973e |
.desc = "Stalled cycles",
|
|
Packit Service |
a1973e |
.code = 0xa3,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_cycle_activity),
|
|
Packit Service |
a1973e |
.umasks = bdw_cycle_activity
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "DTLB_LOAD_MISSES",
|
|
Packit Service |
a1973e |
.desc = "Data TLB load misses",
|
|
Packit Service |
a1973e |
.code = 0x8,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_dtlb_load_misses),
|
|
Packit Service |
a1973e |
.umasks = bdw_dtlb_load_misses
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "DTLB_STORE_MISSES",
|
|
Packit Service |
a1973e |
.desc = "Data TLB store misses",
|
|
Packit Service |
a1973e |
.code = 0x49,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_dtlb_load_misses),
|
|
Packit Service |
a1973e |
.umasks = bdw_dtlb_load_misses /* shared */
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "FP_ASSIST",
|
|
Packit Service |
a1973e |
.desc = "X87 floating-point assists",
|
|
Packit Service |
a1973e |
.code = 0xca,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_fp_assist),
|
|
Packit Service |
a1973e |
.umasks = bdw_fp_assist
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "HLE_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "HLE execution (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xc8,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_hle_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_hle_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "ICACHE",
|
|
Packit Service |
a1973e |
.desc = "Instruction Cache",
|
|
Packit Service |
a1973e |
.code = 0x80,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_icache),
|
|
Packit Service |
a1973e |
.umasks = bdw_icache
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "IDQ",
|
|
Packit Service |
a1973e |
.desc = "IDQ operations",
|
|
Packit Service |
a1973e |
.code = 0x79,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_idq),
|
|
Packit Service |
a1973e |
.umasks = bdw_idq
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "IDQ_UOPS_NOT_DELIVERED",
|
|
Packit Service |
a1973e |
.desc = "Uops not delivered",
|
|
Packit Service |
a1973e |
.code = 0x9c,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_idq_uops_not_delivered),
|
|
Packit Service |
a1973e |
.umasks = bdw_idq_uops_not_delivered
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "INST_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Number of instructions retired (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xc0,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_inst_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_inst_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "INT_MISC",
|
|
Packit Service |
a1973e |
.desc = "Miscellaneous interruptions",
|
|
Packit Service |
a1973e |
.code = 0xd,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_int_misc),
|
|
Packit Service |
a1973e |
.umasks = bdw_int_misc
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "ITLB",
|
|
Packit Service |
a1973e |
.desc = "Instruction TLB",
|
|
Packit Service |
a1973e |
.code = 0xae,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_itlb),
|
|
Packit Service |
a1973e |
.umasks = bdw_itlb
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "ITLB_MISSES",
|
|
Packit Service |
a1973e |
.desc = "Instruction TLB misses",
|
|
Packit Service |
a1973e |
.code = 0x85,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_itlb_misses),
|
|
Packit Service |
a1973e |
.umasks = bdw_itlb_misses
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L1D",
|
|
Packit Service |
a1973e |
.desc = "L1D cache",
|
|
Packit Service |
a1973e |
.code = 0x51,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l1d),
|
|
Packit Service |
a1973e |
.umasks = bdw_l1d
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L1D_PEND_MISS",
|
|
Packit Service |
a1973e |
.desc = "L1D pending misses",
|
|
Packit Service |
a1973e |
.code = 0x48,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l1d_pend_miss),
|
|
Packit Service |
a1973e |
.umasks = bdw_l1d_pend_miss
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L2_DEMAND_RQSTS",
|
|
Packit Service |
a1973e |
.desc = "Demand Data Read requests to L2",
|
|
Packit Service |
a1973e |
.code = 0x27,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l2_demand_rqsts),
|
|
Packit Service |
a1973e |
.umasks = bdw_l2_demand_rqsts
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L2_LINES_IN",
|
|
Packit Service |
a1973e |
.desc = "L2 lines allocated",
|
|
Packit Service |
a1973e |
.code = 0xf1,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l2_lines_in),
|
|
Packit Service |
a1973e |
.umasks = bdw_l2_lines_in
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L2_LINES_OUT",
|
|
Packit Service |
a1973e |
.desc = "L2 lines evicted",
|
|
Packit Service |
a1973e |
.code = 0xf2,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l2_lines_out),
|
|
Packit Service |
a1973e |
.umasks = bdw_l2_lines_out
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L2_RQSTS",
|
|
Packit Service |
a1973e |
.desc = "L2 requests",
|
|
Packit Service |
a1973e |
.code = 0x24,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l2_rqsts),
|
|
Packit Service |
a1973e |
.umasks = bdw_l2_rqsts
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "L2_TRANS",
|
|
Packit Service |
a1973e |
.desc = "L2 transactions",
|
|
Packit Service |
a1973e |
.code = 0xf0,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_l2_trans),
|
|
Packit Service |
a1973e |
.umasks = bdw_l2_trans
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "LD_BLOCKS",
|
|
Packit Service |
a1973e |
.desc = "Blocking loads",
|
|
Packit Service |
a1973e |
.code = 0x3,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_ld_blocks),
|
|
Packit Service |
a1973e |
.umasks = bdw_ld_blocks
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "LD_BLOCKS_PARTIAL",
|
|
Packit Service |
a1973e |
.desc = "Partial load blocks",
|
|
Packit Service |
a1973e |
.code = 0x7,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_ld_blocks_partial),
|
|
Packit Service |
a1973e |
.umasks = bdw_ld_blocks_partial
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "LOAD_HIT_PRE",
|
|
Packit Service |
a1973e |
.desc = "Load dispatches",
|
|
Packit Service |
a1973e |
.code = 0x4c,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_load_hit_pre),
|
|
Packit Service |
a1973e |
.umasks = bdw_load_hit_pre
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "LOCK_CYCLES",
|
|
Packit Service |
a1973e |
.desc = "Locked cycles in L1D and L2",
|
|
Packit Service |
a1973e |
.code = 0x63,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_lock_cycles),
|
|
Packit Service |
a1973e |
.umasks = bdw_lock_cycles
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "LONGEST_LAT_CACHE",
|
|
Packit Service |
a1973e |
.desc = "L3 cache",
|
|
Packit Service |
a1973e |
.code = 0x2e,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_longest_lat_cache),
|
|
Packit Service |
a1973e |
.umasks = bdw_longest_lat_cache
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MACHINE_CLEARS",
|
|
Packit Service |
a1973e |
.desc = "Machine clear asserted",
|
|
Packit Service |
a1973e |
.code = 0xc3,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_machine_clears),
|
|
Packit Service |
a1973e |
.umasks = bdw_machine_clears
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_LOAD_UOPS_L3_HIT_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "L3 hit load uops retired (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xd2,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_load_uops_l3_hit_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_load_uops_l3_hit_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_LOAD_UOPS_LLC_HIT_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "L3 hit load uops retired (Precise Event)",
|
|
Packit Service |
a1973e |
.equiv = "MEM_LOAD_UOPS_L3_HIT_RETIRED",
|
|
Packit Service |
a1973e |
.code = 0xd2,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_load_uops_l3_hit_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_load_uops_l3_hit_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_LOAD_UOPS_L3_MISS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Load uops retired that missed the L3 (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xd3,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_load_uops_l3_miss_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_load_uops_l3_miss_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_LOAD_UOPS_LLC_MISS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Load uops retired that missed the L3 (Precise Event)",
|
|
Packit Service |
a1973e |
.equiv = "MEM_LOAD_UOPS_L3_MISS_RETIRED",
|
|
Packit Service |
a1973e |
.code = 0xd3,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_load_uops_l3_miss_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_load_uops_l3_miss_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_LOAD_UOPS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Retired load uops (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xd1,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_load_uops_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_load_uops_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_TRANS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Memory transactions retired (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xcd,
|
|
Packit Service |
a1973e |
.cntmsk = 0x8,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS | _INTEL_X86_ATTR_LDLAT,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_trans_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_trans_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MEM_UOPS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Memory uops retired (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xd0,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_mem_uops_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_mem_uops_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MISALIGN_MEM_REF",
|
|
Packit Service |
a1973e |
.desc = "Misaligned memory references",
|
|
Packit Service |
a1973e |
.code = 0x5,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_misalign_mem_ref),
|
|
Packit Service |
a1973e |
.umasks = bdw_misalign_mem_ref
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "MOVE_ELIMINATION",
|
|
Packit Service |
a1973e |
.desc = "Move Elimination",
|
|
Packit Service |
a1973e |
.code = 0x58,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_move_elimination),
|
|
Packit Service |
a1973e |
.umasks = bdw_move_elimination
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "OFFCORE_REQUESTS",
|
|
Packit Service |
a1973e |
.desc = "Demand Data Read requests sent to uncore",
|
|
Packit Service |
a1973e |
.code = 0xb0,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_offcore_requests),
|
|
Packit Service |
a1973e |
.umasks = bdw_offcore_requests
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "OTHER_ASSISTS",
|
|
Packit Service |
a1973e |
.desc = "Software assist",
|
|
Packit Service |
a1973e |
.code = 0xc1,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_other_assists),
|
|
Packit Service |
a1973e |
.umasks = bdw_other_assists
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "RESOURCE_STALLS",
|
|
Packit Service |
a1973e |
.desc = "Cycles Allocation is stalled due to Resource Related reason",
|
|
Packit Service |
a1973e |
.code = 0xa2,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_resource_stalls),
|
|
Packit Service |
a1973e |
.umasks = bdw_resource_stalls
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "ROB_MISC_EVENTS",
|
|
Packit Service |
a1973e |
.desc = "ROB miscellaneous events",
|
|
Packit Service |
a1973e |
.code = 0xcc,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_rob_misc_events),
|
|
Packit Service |
a1973e |
.umasks = bdw_rob_misc_events
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "RS_EVENTS",
|
|
Packit Service |
a1973e |
.desc = "Reservation Station",
|
|
Packit Service |
a1973e |
.code = 0x5e,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_rs_events),
|
|
Packit Service |
a1973e |
.umasks = bdw_rs_events
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "RTM_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Restricted Transaction Memory execution (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xc9,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_rtm_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_rtm_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "TLB_FLUSH",
|
|
Packit Service |
a1973e |
.desc = "TLB flushes",
|
|
Packit Service |
a1973e |
.code = 0xbd,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_tlb_flush),
|
|
Packit Service |
a1973e |
.umasks = bdw_tlb_flush
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UOPS_EXECUTED",
|
|
Packit Service |
a1973e |
.desc = "Uops executed",
|
|
Packit Service |
a1973e |
.code = 0xb1,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_uops_executed),
|
|
Packit Service |
a1973e |
.umasks = bdw_uops_executed
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "LSD",
|
|
Packit Service |
a1973e |
.desc = "Loop stream detector",
|
|
Packit Service |
a1973e |
.code = 0xa8,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_lsd),
|
|
Packit Service |
a1973e |
.umasks = bdw_lsd,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
{ .name = "UOPS_EXECUTED_PORT",
|
|
Packit Service |
a1973e |
.desc = "Uops dispatch to specific ports",
|
|
Packit Service |
a1973e |
.code = 0xa1,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_uops_executed_port),
|
|
Packit Service |
a1973e |
.umasks = bdw_uops_executed_port
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UOPS_ISSUED",
|
|
Packit Service |
a1973e |
.desc = "Uops issued",
|
|
Packit Service |
a1973e |
.code = 0xe,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_uops_issued),
|
|
Packit Service |
a1973e |
.umasks = bdw_uops_issued
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "ARITH",
|
|
Packit Service |
a1973e |
.desc = "Arithmetic uop",
|
|
Packit Service |
a1973e |
.code = 0x14,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_arith),
|
|
Packit Service |
a1973e |
.umasks = bdw_arith
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UOPS_RETIRED",
|
|
Packit Service |
a1973e |
.desc = "Uops retired (Precise Event)",
|
|
Packit Service |
a1973e |
.code = 0xc2,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.flags = INTEL_X86_PEBS,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_uops_retired),
|
|
Packit Service |
a1973e |
.umasks = bdw_uops_retired
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "TX_MEM",
|
|
Packit Service |
a1973e |
.desc = "Transactional memory aborts",
|
|
Packit Service |
a1973e |
.code = 0x54,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_tx_mem),
|
|
Packit Service |
a1973e |
.umasks = bdw_tx_mem,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "TX_EXEC",
|
|
Packit Service |
a1973e |
.desc = "Transactional execution",
|
|
Packit Service |
a1973e |
.code = 0x5d,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_tx_exec),
|
|
Packit Service |
a1973e |
.umasks = bdw_tx_exec
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "OFFCORE_REQUESTS_OUTSTANDING",
|
|
Packit Service |
a1973e |
.desc = "Outstanding offcore requests",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0x60,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_offcore_requests_outstanding),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_offcore_requests_outstanding,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "ILD_STALL",
|
|
Packit Service |
a1973e |
.desc = "Instruction Length Decoder stalls",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0x87,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_ild_stall),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_ild_stall,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "PAGE_WALKER_LOADS",
|
|
Packit Service |
a1973e |
.desc = "Page walker loads",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.code = 0xbc,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_page_walker_loads),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_page_walker_loads,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "DSB2MITE_SWITCHES",
|
|
Packit Service |
a1973e |
.desc = "Number of DSB to MITE switches",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0xab,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_dsb2mite_switches),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_dsb2mite_switches,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "EPT",
|
|
Packit Service |
a1973e |
.desc = "Extended page table",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0x4f,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_ept),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_ept,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "FP_ARITH",
|
|
Packit Service |
a1973e |
.desc = "Floating-point",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.code = 0xc7,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_fp_arith),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_fp_arith,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "OFFCORE_REQUESTS_BUFFER",
|
|
Packit Service |
a1973e |
.desc = "Offcore reqest buffer",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xff,
|
|
Packit Service |
a1973e |
.code = 0xb2,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_offcore_requests_buffer),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_offcore_requests_buffer,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UOPS_DISPATCHES_CANCELLED",
|
|
Packit Service |
a1973e |
.desc = "Micro-ops cancelled",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.code = 0xa0,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_uops_dispatches_cancelled),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_uops_dispatches_cancelled,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "SQ_MISC",
|
|
Packit Service |
a1973e |
.desc = "SuperQueue miscellaneous",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.code = 0xf4,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_sq_misc),
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdw_sq_misc,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "OFFCORE_RESPONSE_0",
|
|
Packit Service |
a1973e |
.desc = "Offcore response event (must provide at least one request type and either any_response or any combination of supplier + snoop)",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.code = 0x1b7,
|
|
Packit Service |
a1973e |
.flags= INTEL_X86_NHM_OFFCORE,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_offcore_response),
|
|
Packit Service |
a1973e |
.ngrp = 3,
|
|
Packit Service |
a1973e |
.umasks = bdw_offcore_response,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "OFFCORE_RESPONSE_1",
|
|
Packit Service |
a1973e |
.desc = "Offcore response event (must provide at least one request type and either any_response or any combination of supplier + snoop)",
|
|
Packit Service |
a1973e |
.modmsk = INTEL_V4_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.code = 0x1bb,
|
|
Packit Service |
a1973e |
.flags= INTEL_X86_NHM_OFFCORE,
|
|
Packit Service |
a1973e |
.numasks = LIBPFM_ARRAY_SIZE(bdw_offcore_response),
|
|
Packit Service |
a1973e |
.ngrp = 3,
|
|
Packit Service |
a1973e |
.umasks = bdw_offcore_response, /* identical to actual umasks list for this event */
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|