|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Copyright (c) 2012 Google, Inc
|
|
Packit |
577717 |
* Contributed by Stephane Eranian <eranian@gmail.com>
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
Packit |
577717 |
* of this software and associated documentation files (the "Software"), to deal
|
|
Packit |
577717 |
* in the Software without restriction, including without limitation the rights
|
|
Packit |
577717 |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
Packit |
577717 |
* of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
Packit |
577717 |
* subject to the following conditions:
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* The above copyright notice and this permission notice shall be included in all
|
|
Packit |
577717 |
* copies or substantial portions of the Software.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
Packit |
577717 |
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
Packit |
577717 |
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
Packit |
577717 |
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
Packit |
577717 |
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
Packit |
577717 |
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* This file is part of libpfm, a performance monitoring support library for
|
|
Packit |
577717 |
* applications on Linux.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* PMU: snbep_unc_cbo (Intel SandyBridge-EP C-Box uncore PMU)
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define CBO_FILT_MESIF(a, b, c, d) \
|
|
Packit |
577717 |
{ .uname = "STATE_"#a,\
|
|
Packit |
577717 |
.udesc = #b" cacheline state",\
|
|
Packit |
577717 |
.ufilters[0] = 1ULL << (18 + (c)),\
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define CBO_FILT_MESIFS(d) \
|
|
Packit |
577717 |
CBO_FILT_MESIF(I, Invalid, 0, d), \
|
|
Packit |
577717 |
CBO_FILT_MESIF(S, Shared, 1, d), \
|
|
Packit |
577717 |
CBO_FILT_MESIF(E, Exclusive, 2, d), \
|
|
Packit |
577717 |
CBO_FILT_MESIF(M, Modified, 3, d), \
|
|
Packit |
577717 |
CBO_FILT_MESIF(F, Forward, 4, d), \
|
|
Packit |
577717 |
{ .uname = "STATE_MESIF",\
|
|
Packit |
577717 |
.udesc = "Any cache line state",\
|
|
Packit |
577717 |
.ufilters[0] = 0x1fULL << 18,\
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL, \
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define CBO_FILT_OPC(d) \
|
|
Packit |
577717 |
{ .uname = "OPC_RFO",\
|
|
Packit |
577717 |
.udesc = "Demand data RFO (combine with any OPCODE umask)",\
|
|
Packit |
577717 |
.ufilters[0] = 0x180ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_CRD",\
|
|
Packit |
577717 |
.udesc = "Demand code read (combine with any OPCODE umask)",\
|
|
Packit |
577717 |
.ufilters[0] = 0x181ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_DRD",\
|
|
Packit |
577717 |
.udesc = "Demand data read (combine with any OPCODE umask)",\
|
|
Packit |
577717 |
.ufilters[0] = 0x182ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PRD",\
|
|
Packit |
577717 |
.udesc = "Partial reads (UC) (combine with any OPCODE umask)",\
|
|
Packit |
577717 |
.ufilters[0] = 0x187ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_WCILF",\
|
|
Packit |
577717 |
.udesc = "Full Stream store (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x18cULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_WCIL",\
|
|
Packit |
577717 |
.udesc = "Partial Stream store (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x18dULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PF_RFO",\
|
|
Packit |
577717 |
.udesc = "Prefetch RFO into LLC but do not pass to L2 (includes hints) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x190ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PF_CODE",\
|
|
Packit |
577717 |
.udesc = "Prefetch code into LLC but do not pass to L2 (includes hints) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x191ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PF_DATA",\
|
|
Packit |
577717 |
.udesc = "Prefetch data into LLC but do not pass to L2 (includes hints) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x192ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCIWILF",\
|
|
Packit |
577717 |
.udesc = "PCIe write (non-allocating) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x194ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCIPRD",\
|
|
Packit |
577717 |
.udesc = "PCIe UC read (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x195ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCIITOM",\
|
|
Packit |
577717 |
.udesc = "PCIe write (allocating) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x19cULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCIRDCUR",\
|
|
Packit |
577717 |
.udesc = "PCIe read current (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x19eULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_WBMTOI",\
|
|
Packit |
577717 |
.udesc = "Request writeback modified invalidate line (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x1c4ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_WBMTOE",\
|
|
Packit |
577717 |
.udesc = "Request writeback modified set to exclusive (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x1c5ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_ITOM",\
|
|
Packit |
577717 |
.udesc = "Request invalidate line (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x1c8ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCINSRD",\
|
|
Packit |
577717 |
.udesc = "PCIe non-snoop read (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x1e4ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCINSWR",\
|
|
Packit |
577717 |
.udesc = "PCIe non-snoop write (partial) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x1e5ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}, \
|
|
Packit |
577717 |
{ .uname = "OPC_PCINSWRF",\
|
|
Packit |
577717 |
.udesc = "PCIe non-snoop write (full) (combine with any OPCODE umask)", \
|
|
Packit |
577717 |
.ufilters[0] = 0x1e6ULL << 23, \
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO, \
|
|
Packit |
577717 |
.grpid = d, \
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_llc_lookup[]={
|
|
Packit |
577717 |
{ .uname = "ANY",
|
|
Packit |
577717 |
.udesc = "Any request",
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
.ucode = 0x1f00,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "DATA_READ",
|
|
Packit |
577717 |
.udesc = "Data read requests",
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit |
577717 |
.ucode = 0x300,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "WRITE",
|
|
Packit |
577717 |
.udesc = "Write requests. Includes all write transactions (cached, uncached)",
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
.ucode = 0x500,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "REMOTE_SNOOP",
|
|
Packit |
577717 |
.udesc = "External snoop request",
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
.ucode = 0x900,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID",
|
|
Packit |
577717 |
.udesc = "Match a given RTID destination NID (must provide nf=X modifier)",
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_GRP_DFL_NONE,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.grpid = 1,
|
|
Packit |
577717 |
.ucode = 0x4100,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
CBO_FILT_MESIFS(2),
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_llc_victims[]={
|
|
Packit |
577717 |
{ .uname = "M_STATE",
|
|
Packit |
577717 |
.udesc = "Lines in M state",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "E_STATE",
|
|
Packit |
577717 |
.udesc = "Lines in E state",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "S_STATE",
|
|
Packit |
577717 |
.udesc = "Lines in S state",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "MISS",
|
|
Packit |
577717 |
.udesc = "TBD",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID",
|
|
Packit |
577717 |
.udesc = "Victimized Lines matching the NID filter (must provide nf=X modifier)",
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.ucode = 0x4000,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_misc[]={
|
|
Packit |
577717 |
{ .uname = "RSPI_WAS_FSE",
|
|
Packit |
577717 |
.udesc = "Silent snoop eviction",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "WC_ALIASING",
|
|
Packit |
577717 |
.udesc = "Write combining aliasing",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "STARTED",
|
|
Packit |
577717 |
.udesc = "TBD",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "RFO_HIT_S",
|
|
Packit |
577717 |
.udesc = "RFO hits in S state",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_ring_ad_used[]={
|
|
Packit |
577717 |
{ .uname = "UP_EVEN",
|
|
Packit |
577717 |
.udesc = "Up and Even ring polarity filter",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "UP_ODD",
|
|
Packit |
577717 |
.udesc = "Up and odd ring polarity filter",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "DOWN_EVEN",
|
|
Packit |
577717 |
.udesc = "Down and even ring polarity filter",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "DOWN_ODD",
|
|
Packit |
577717 |
.udesc = "Down and odd ring polarity filter",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_ring_bounces[]={
|
|
Packit |
577717 |
{ .uname = "AK_CORE",
|
|
Packit |
577717 |
.udesc = "Acknowledgment to core",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "BL_CORE",
|
|
Packit |
577717 |
.udesc = "Data response to core",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "IV_CORE",
|
|
Packit |
577717 |
.udesc = "Snoops of processor cache",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_ring_iv_used[]={
|
|
Packit |
577717 |
{ .uname = "ANY",
|
|
Packit |
577717 |
.udesc = "Any filter",
|
|
Packit |
577717 |
.ucode = 0xf00,
|
|
Packit |
577717 |
.uflags = INTEL_X86_DFL,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_rxr_ext_starved[]={
|
|
Packit |
577717 |
{ .uname = "IRQ",
|
|
Packit |
577717 |
.udesc = "Irq externally starved, therefore blocking the IPQ",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "IPQ",
|
|
Packit |
577717 |
.udesc = "IPQ externally starved, therefore blocking the IRQ",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "ISMQ",
|
|
Packit |
577717 |
.udesc = "ISMQ externally starved, therefore blocking both IRQ and IPQ",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "ISMQ_BIDS",
|
|
Packit |
577717 |
.udesc = "Number of time the ISMQ bids",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_rxr_inserts[]={
|
|
Packit |
577717 |
{ .uname = "IPQ",
|
|
Packit |
577717 |
.udesc = "IPQ",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "IRQ",
|
|
Packit |
577717 |
.udesc = "IRQ",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "IRQ_REJECTED",
|
|
Packit |
577717 |
.udesc = "IRQ rejected",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "VFIFO",
|
|
Packit |
577717 |
.udesc = "Counts the number of allocated into the IRQ ordering FIFO",
|
|
Packit |
577717 |
.ucode = 0x1000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_rxr_ipq_retry[]={
|
|
Packit |
577717 |
{ .uname = "ADDR_CONFLICT",
|
|
Packit |
577717 |
.udesc = "Address conflict",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "ANY",
|
|
Packit |
577717 |
.udesc = "Any Reject",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "FULL",
|
|
Packit |
577717 |
.udesc = "No Egress credits",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "QPI_CREDITS",
|
|
Packit |
577717 |
.udesc = "No QPI credits",
|
|
Packit |
577717 |
.ucode = 0x1000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_rxr_irq_retry[]={
|
|
Packit |
577717 |
{ .uname = "ADDR_CONFLICT",
|
|
Packit |
577717 |
.udesc = "Address conflict",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "ANY",
|
|
Packit |
577717 |
.udesc = "Any reject",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "FULL",
|
|
Packit |
577717 |
.udesc = "No Egress credits",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "QPI_CREDITS",
|
|
Packit |
577717 |
.udesc = "No QPI credits",
|
|
Packit |
577717 |
.ucode = 0x1000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "RTID",
|
|
Packit |
577717 |
.udesc = "No RTIDs",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_rxr_ismq_retry[]={
|
|
Packit |
577717 |
{ .uname = "ANY",
|
|
Packit |
577717 |
.udesc = "Any reject",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "FULL",
|
|
Packit |
577717 |
.udesc = "No Egress credits",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "IIO_CREDITS",
|
|
Packit |
577717 |
.udesc = "No IIO credits",
|
|
Packit |
577717 |
.ucode = 0x2000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "QPI_CREDITS",
|
|
Packit |
577717 |
.udesc = "NO QPI credits",
|
|
Packit |
577717 |
.ucode = 0x1000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "RTID",
|
|
Packit |
577717 |
.udesc = "No RTIDs",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_tor_inserts[]={
|
|
Packit |
577717 |
{ .uname = "EVICTION",
|
|
Packit |
577717 |
.udesc = "Number of Evictions transactions inserted into TOR",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "MISS_ALL",
|
|
Packit |
577717 |
.udesc = "Number of miss requests inserted into the TOR",
|
|
Packit |
577717 |
.ucode = 0xa00,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "MISS_OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of miss transactions inserted into the TOR that match an opcode (must provide opc_* umask)",
|
|
Packit |
577717 |
.ucode = 0x300,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_ALL",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched transactions inserted into the TOR (must provide nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4800,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_EVICTION",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched eviction transactions inserted into the TOR (must provide nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4400,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_MISS_ALL",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched miss transactions that were inserted into the TOR (must provide nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4a00,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_MISS_OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of NID and opcode matched miss transactions inserted into the TOR (must provide opc_* umask and nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4300,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of transactions inserted into the TOR that match a NID and opcode (must provide opc_* umask and nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4100,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_WB",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched write back transactions inserted into the TOR (must provide nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x5000,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of transactions inserted into the TOR that match an opcode (must provide opc_* umask)",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "WB",
|
|
Packit |
577717 |
.udesc = "Number of write transactions inserted into the TOR",
|
|
Packit |
577717 |
.ucode = 0x1000,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
CBO_FILT_OPC(1)
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_tor_occupancy[]={
|
|
Packit |
577717 |
{ .uname = "ALL",
|
|
Packit |
577717 |
.udesc = "All valid TOR entries",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "EVICTION",
|
|
Packit |
577717 |
.udesc = "Number of outstanding eviction transactions in the TOR",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "MISS_ALL",
|
|
Packit |
577717 |
.udesc = "Number of outstanding miss requests in the TOR",
|
|
Packit |
577717 |
.ucode = 0xa00,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "MISS_OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of TOR entries that match a NID and an opcode (must provide opc_* umask)",
|
|
Packit |
577717 |
.ucode = 0x300,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_ALL",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched outstanding requests in the TOR (must provide nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4800,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_EVICTION",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched outstanding requests in the TOR (must provide a nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4400,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_MISS_ALL",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched outstanding miss requests in the TOR (must provide a nf=X modifier)",
|
|
Packit |
577717 |
.ucode = 0x4a00,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_MISS_OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched outstanding miss requests in the TOR that an opcode (must provide nf=X modifier and opc_* umask)",
|
|
Packit |
577717 |
.ucode = 0x4300,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "NID_OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of NID-matched TOR entries that an opcode (must provide nf=X modifier and opc_* umask)",
|
|
Packit |
577717 |
.ucode = 0x4100,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.umodmsk_req = _SNBEP_UNC_ATTR_NF,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "OPCODE",
|
|
Packit |
577717 |
.udesc = "Number of TOR entries that match an opcode (must provide opc_* umask)",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.grpid = 0,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
CBO_FILT_OPC(1)
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_umask_t snbep_unc_c_txr_inserts[]={
|
|
Packit |
577717 |
{ .uname = "AD_CACHE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Cachebo to AD ring",
|
|
Packit |
577717 |
.ucode = 0x100,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "AK_CACHE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Cachebo to AK ring",
|
|
Packit |
577717 |
.ucode = 0x200,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "BL_CACHE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Cachebo to BL ring",
|
|
Packit |
577717 |
.ucode = 0x400,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "IV_CACHE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Cachebo to IV ring",
|
|
Packit |
577717 |
.ucode = 0x800,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "AD_CORE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Corebo to AD ring",
|
|
Packit |
577717 |
.ucode = 0x1000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "AK_CORE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Corebo to AK ring",
|
|
Packit |
577717 |
.ucode = 0x2000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .uname = "BL_CORE",
|
|
Packit |
577717 |
.udesc = "Counts the number of ring transactions from Corebo to BL ring",
|
|
Packit |
577717 |
.ucode = 0x4000,
|
|
Packit |
577717 |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const intel_x86_entry_t intel_snbep_unc_c_pe[]={
|
|
Packit |
577717 |
{ .name = "UNC_C_CLOCKTICKS",
|
|
Packit |
577717 |
.desc = "C-box Uncore clockticks",
|
|
Packit |
577717 |
.modmsk = 0x0,
|
|
Packit |
577717 |
.cntmsk = 0xf,
|
|
Packit |
577717 |
.code = 0x00,
|
|
Packit |
577717 |
.flags = INTEL_X86_FIXED,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_COUNTER0_OCCUPANCY",
|
|
Packit |
577717 |
.desc = "Counter 0 occupancy. Counts the occupancy related information by filtering CB0 occupancy count captured in counter 0.",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0xe,
|
|
Packit |
577717 |
.code = 0x1f,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_ISMQ_DRD_MISS_OCC",
|
|
Packit |
577717 |
.desc = "TBD",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x21,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_LLC_LOOKUP",
|
|
Packit |
577717 |
.desc = "Cache lookups. Counts number of times the LLC is accessed from L2 for code, data, prefetches (Must set filter mask bit 0 and select )",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_NID_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x34,
|
|
Packit |
577717 |
.ngrp = 3,
|
|
Packit |
577717 |
.flags = INTEL_X86_NO_AUTOENCODE,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_llc_lookup),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_llc_lookup,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_LLC_VICTIMS",
|
|
Packit |
577717 |
.desc = "Lines victimized",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_NID_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x37,
|
|
Packit |
577717 |
.flags = INTEL_X86_NO_AUTOENCODE,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_llc_victims),
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_llc_victims,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_MISC",
|
|
Packit |
577717 |
.desc = "Miscellaneous C-Box events",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x39,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_misc),
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_misc,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RING_AD_USED",
|
|
Packit |
577717 |
.desc = "Address ring in use. Counts number of cycles ring is being used at this ring stop",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0xc,
|
|
Packit |
577717 |
.code = 0x1b,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_ring_ad_used),
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_ring_ad_used,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RING_AK_USED",
|
|
Packit |
577717 |
.desc = "Acknowledgment ring in use. Counts number of cycles ring is being used at this ring stop",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0xc,
|
|
Packit |
577717 |
.code = 0x1c,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_ring_ad_used), /* identical to RING_AD_USED */
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_ring_ad_used,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RING_BL_USED",
|
|
Packit |
577717 |
.desc = "Bus or Data ring in use. Counts number of cycles ring is being used at this ring stop",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0xc,
|
|
Packit |
577717 |
.code = 0x1d,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_ring_ad_used), /* identical to RING_AD_USED */
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_ring_ad_used,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RING_BOUNCES",
|
|
Packit |
577717 |
.desc = "Number of LLC responses that bounced in the ring",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x05,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_ring_bounces),
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_ring_bounces,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RING_IV_USED",
|
|
Packit |
577717 |
.desc = "Invalidate ring in use. Counts number of cycles ring is being used at this ring stop",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0xc,
|
|
Packit |
577717 |
.code = 0x1e,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_ring_iv_used),
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_ring_iv_used,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RING_SRC_THRTL",
|
|
Packit |
577717 |
.desc = "TDB",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x07,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RXR_EXT_STARVED",
|
|
Packit |
577717 |
.desc = "Ingress arbiter blocking cycles",
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.code = 0x12,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_rxr_ext_starved),
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.umasks = snbep_unc_c_rxr_ext_starved,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RXR_INSERTS",
|
|
Packit |
577717 |
.desc = "Ingress Allocations",
|
|
Packit |
577717 |
.code = 0x13,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_rxr_inserts),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_rxr_inserts
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RXR_IPQ_RETRY",
|
|
Packit |
577717 |
.desc = "Probe Queue Retries",
|
|
Packit |
577717 |
.code = 0x31,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_rxr_ipq_retry),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_rxr_ipq_retry
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RXR_IRQ_RETRY",
|
|
Packit |
577717 |
.desc = "Ingress Request Queue Rejects",
|
|
Packit |
577717 |
.code = 0x32,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_rxr_irq_retry),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_rxr_irq_retry
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RXR_ISMQ_RETRY",
|
|
Packit |
577717 |
.desc = "ISMQ Retries",
|
|
Packit |
577717 |
.code = 0x33,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_rxr_ismq_retry),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_rxr_ismq_retry
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_RXR_OCCUPANCY",
|
|
Packit |
577717 |
.desc = "Ingress Occupancy",
|
|
Packit |
577717 |
.code = 0x11,
|
|
Packit |
577717 |
.cntmsk = 0x1,
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_rxr_inserts),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_rxr_inserts, /* identical to snbep_unc_c_rxr_inserts */
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_TOR_INSERTS",
|
|
Packit |
577717 |
.desc = "TOR Inserts",
|
|
Packit |
577717 |
.code = 0x35,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.ngrp = 2,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_NID_ATTRS,
|
|
Packit |
577717 |
.flags = INTEL_X86_NO_AUTOENCODE,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_tor_inserts),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_tor_inserts
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_TOR_OCCUPANCY",
|
|
Packit |
577717 |
.desc = "TOR Occupancy",
|
|
Packit |
577717 |
.code = 0x36,
|
|
Packit |
577717 |
.cntmsk = 0x1,
|
|
Packit |
577717 |
.ngrp = 2,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_NID_ATTRS,
|
|
Packit |
577717 |
.flags = INTEL_X86_NO_AUTOENCODE,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_tor_occupancy),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_tor_occupancy
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_TXR_ADS_USED",
|
|
Packit |
577717 |
.desc = "Egress events",
|
|
Packit |
577717 |
.code = 0x04,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
{ .name = "UNC_C_TXR_INSERTS",
|
|
Packit |
577717 |
.desc = "Egress allocations",
|
|
Packit |
577717 |
.code = 0x02,
|
|
Packit |
577717 |
.cntmsk = 0x3,
|
|
Packit |
577717 |
.ngrp = 1,
|
|
Packit |
577717 |
.modmsk = SNBEP_UNC_CBO_ATTRS,
|
|
Packit |
577717 |
.numasks = LIBPFM_ARRAY_SIZE(snbep_unc_c_txr_inserts),
|
|
Packit |
577717 |
.umasks = snbep_unc_c_txr_inserts
|
|
Packit |
577717 |
},
|
|
Packit |
577717 |
};
|