Blame src/libpfm4/lib/events/intel_bdx_unc_cbo_events.h

Packit 577717
/*
Packit 577717
 * Copyright (c) 2017 Google Inc. All rights reserved
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: bdx_unc_cbo
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 << (17 + (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
   CBO_FILT_MESIF(D, Debug, 5, d), \
Packit 577717
   { .uname  = "STATE_MP",\
Packit 577717
     .udesc  = "Cacheline is modified but never written, was forwarded in modified state",\
Packit 577717
     .ufilters[0] = 0x1ULL << (17+6),\
Packit 577717
     .grpid = d, \
Packit 577717
     .uflags = INTEL_X86_NCOMBO, \
Packit 577717
   }, \
Packit 577717
   { .uname  = "STATE_MESIFD",\
Packit 577717
     .udesc  = "Any cache line state",\
Packit 577717
     .ufilters[0] = 0x7fULL << 17,\
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[1] = 0x180ULL << 20, \
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[1] = 0x181ULL << 20, \
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[1] = 0x182ULL << 20, \
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[1] = 0x187ULL << 20, \
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[1] = 0x18cULL << 20, \
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[1] = 0x18dULL << 20, \
Packit 577717
     .uflags = INTEL_X86_NCOMBO, \
Packit 577717
     .grpid = d, \
Packit 577717
   }, \
Packit 577717
   { .uname  = "OPC_WIL",\
Packit 577717
     .udesc  = "Write Invalidate Line (Partial) (combine with any OPCODE umask)", \
Packit 577717
     .ufilters[1] = 0x18fULL << 20, \
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[1] = 0x190ULL << 20, \
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[1] = 0x191ULL << 20, \
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[1] = 0x192ULL << 20, \
Packit 577717
     .uflags = INTEL_X86_NCOMBO, \
Packit 577717
     .grpid = d, \
Packit 577717
   }, \
Packit 577717
   { .uname  = "OPC_PCIWIL",\
Packit 577717
     .udesc  = "PCIe write (partial, non-allocating) - partial line MMIO write transactions from IIO (P2P). Not used for coherent transacions. Uncacheable. (combine with any OPCODE umask)", \
Packit 577717
     .ufilters[1] = 0x193ULL << 20, \
Packit 577717
     .uflags = INTEL_X86_NCOMBO, \
Packit 577717
     .grpid = d, \
Packit 577717
   }, \
Packit 577717
   { .uname  = "OPC_PCIWIF",\
Packit 577717
     .udesc  = "PCIe write (full, non-allocating) - full line MMIO write transactions from IIO (P2P). Not used for coherent transacions. Uncacheable. (combine with any OPCODE umask)", \
Packit 577717
     .ufilters[1] = 0x194ULL << 20, \
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[1] = 0x19cULL << 20, \
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[1] = 0x19eULL << 20, \
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[1] = 0x1c4ULL << 20, \
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[1] = 0x1c5ULL << 20, \
Packit 577717
     .uflags = INTEL_X86_NCOMBO, \
Packit 577717
     .grpid = d, \
Packit 577717
   }, \
Packit 577717
   { .uname  = "OPC_ITOM",\
Packit 577717
     .udesc  = "Request invalidate line. Request exclusive ownership of the line  (combine with any OPCODE umask)", \
Packit 577717
     .ufilters[1] = 0x1c8ULL << 20, \
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[1] = 0x1e4ULL << 20, \
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[1] = 0x1e5ULL << 20, \
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[1] = 0x1e6ULL << 20, \
Packit 577717
     .uflags = INTEL_X86_NCOMBO, \
Packit 577717
     .grpid = d, \
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_llc_lookup[]={
Packit 577717
	{ .uname = "ANY",
Packit 577717
	  .ucode = 0x1100,
Packit 577717
	  .udesc = "Cache Lookups -- Any Request",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "DATA_READ",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "Cache Lookups -- Data Read Request",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID",
Packit 577717
	  .ucode = 0x4100,
Packit 577717
	  .udesc = "Cache Lookups -- Lookups that Match NID",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .grpid  = 1,
Packit 577717
	  .uflags = INTEL_X86_GRP_DFL_NONE
Packit 577717
	},
Packit 577717
	{ .uname = "READ",
Packit 577717
	  .ucode = 0x2100,
Packit 577717
	  .udesc = "Cache Lookups -- Any Read Request",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "REMOTE_SNOOP",
Packit 577717
	  .ucode = 0x900,
Packit 577717
	  .udesc = "Cache Lookups -- External Snoop Request",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "WRITE",
Packit 577717
	  .ucode = 0x500,
Packit 577717
	  .udesc = "Cache Lookups -- Write Requests",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	CBO_FILT_MESIFS(2),
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_llc_victims[]={
Packit 577717
	{ .uname = "F_STATE",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Lines in Forward state",
Packit 577717
	  .grpid = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "I_STATE",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Lines in S State",
Packit 577717
	  .grpid = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "S_STATE",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Lines in S state",
Packit 577717
	  .grpid = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "E_STATE",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Lines in E state",
Packit 577717
	  .grpid = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "M_STATE",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Lines in M state",
Packit 577717
	  .grpid = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Lines Victimized",
Packit 577717
	  .grpid = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "Lines Victimized -- Victimized Lines that Match NID",
Packit 577717
	  .uflags = INTEL_X86_GRP_DFL_NONE,
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .grpid = 1,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_misc[]={
Packit 577717
	{ .uname = "CVZERO_PREFETCH_MISS",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Cbo Misc -- DRd hitting non-M with raw CV=0",
Packit 577717
	},
Packit 577717
	{ .uname = "CVZERO_PREFETCH_VICTIM",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Cbo Misc -- Clean Victim with raw CV=0",
Packit 577717
	},
Packit 577717
	{ .uname = "RFO_HIT_S",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Cbo Misc -- RFO HitS",
Packit 577717
	},
Packit 577717
	{ .uname = "RSPI_WAS_FSE",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Cbo Misc -- Silent Snoop Eviction",
Packit 577717
	},
Packit 577717
	{ .uname = "STARTED",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Cbo Misc -- ",
Packit 577717
	},
Packit 577717
	{ .uname = "WC_ALIASING",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Cbo Misc -- Write Combining Aliasing",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_ring_ad_used[]={
Packit 577717
	{ .uname = "ALL",
Packit 577717
	  .ucode = 0xf00,
Packit 577717
	  .udesc = "AD Ring In Use -- All",
Packit 577717
	},
Packit 577717
	{ .uname = "CCW",
Packit 577717
	  .ucode = 0xc00,
Packit 577717
	  .udesc = "AD Ring In Use -- Down",
Packit 577717
	},
Packit 577717
	{ .uname = "CW",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "AD Ring In Use -- Up",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_EVEN",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "AD Ring In Use -- Down and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_ODD",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "AD Ring In Use -- Down and Odd",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_EVEN",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "AD Ring In Use -- Up and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_ODD",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "AD Ring In Use -- Up and Odd",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_ring_ak_used[]={
Packit 577717
	{ .uname = "ALL",
Packit 577717
	  .ucode = 0xf00,
Packit 577717
	  .udesc = "AK Ring In Use -- All",
Packit 577717
	},
Packit 577717
	{ .uname = "CCW",
Packit 577717
	  .ucode = 0xc00,
Packit 577717
	  .udesc = "AK Ring In Use -- Down",
Packit 577717
	},
Packit 577717
	{ .uname = "CW",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "AK Ring In Use -- Up",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_EVEN",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "AK Ring In Use -- Down and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_ODD",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "AK Ring In Use -- Down and Odd",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_EVEN",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "AK Ring In Use -- Up and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_ODD",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "AK Ring In Use -- Up and Odd",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_ring_bl_used[]={
Packit 577717
	{ .uname = "ALL",
Packit 577717
	  .ucode = 0xf00,
Packit 577717
	  .udesc = "BL Ring in Use -- Down",
Packit 577717
	},
Packit 577717
	{ .uname = "CCW",
Packit 577717
	  .ucode = 0xc00,
Packit 577717
	  .udesc = "BL Ring in Use -- Down",
Packit 577717
	},
Packit 577717
	{ .uname = "CW",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "BL Ring in Use -- Up",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_EVEN",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "BL Ring in Use -- Down and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_ODD",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "BL Ring in Use -- Down and Odd",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_EVEN",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "BL Ring in Use -- Up and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_ODD",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "BL Ring in Use -- Up and Odd",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_ring_bounces[]={
Packit 577717
	{ .uname = "AD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- AD",
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- AK",
Packit 577717
	},
Packit 577717
	{ .uname = "BL",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- BL",
Packit 577717
	},
Packit 577717
	{ .uname = "IV",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- Snoops of processors cachee.",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_ring_iv_used[]={
Packit 577717
	{ .uname = "ANY",
Packit 577717
	  .ucode = 0xf00,
Packit 577717
	  .udesc = "BL Ring in Use -- Any",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
	},
Packit 577717
	{ .uname = "DN",
Packit 577717
	  .ucode = 0xc00,
Packit 577717
	  .udesc = "BL Ring in Use -- Any",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN",
Packit 577717
	  .ucode = 0xcc00,
Packit 577717
	  .udesc = "BL Ring in Use -- Down",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "UP",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "BL Ring in Use -- Any",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_ext_starved[]={
Packit 577717
	{ .uname = "IPQ",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Arbiter Blocking Cycles -- IRQ",
Packit 577717
	},
Packit 577717
	{ .uname = "IRQ",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Arbiter Blocking Cycles -- IPQ",
Packit 577717
	},
Packit 577717
	{ .uname = "ISMQ_BIDS",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Ingress Arbiter Blocking Cycles -- ISMQ_BID",
Packit 577717
	},
Packit 577717
	{ .uname = "PRQ",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Ingress Arbiter Blocking Cycles -- PRQ",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_inserts[]={
Packit 577717
	{ .uname = "IPQ",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Ingress Allocations -- IPQ",
Packit 577717
	},
Packit 577717
	{ .uname = "IRQ",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Allocations -- IRQ",
Packit 577717
	},
Packit 577717
	{ .uname = "IRQ_REJ",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Allocations -- IRQ Rejected",
Packit 577717
	},
Packit 577717
	{ .uname = "PRQ",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Ingress Allocations -- PRQ",
Packit 577717
	},
Packit 577717
	{ .uname = "PRQ_REJ",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Ingress Allocations -- PRQ",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_ipq_retry[]={
Packit 577717
	{ .uname = "ADDR_CONFLICT",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Probe Queue Retries -- Address Conflict",
Packit 577717
	},
Packit 577717
	{ .uname = "ANY",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Probe Queue Retries -- Any Reject",
Packit 577717
	  .uflags = INTEL_X86_DFL,
Packit 577717
	},
Packit 577717
	{ .uname = "FULL",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Probe Queue Retries -- No Egress Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "QPI_CREDITS",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Probe Queue Retries -- No QPI Credits",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_ipq_retry2[]={
Packit 577717
	{ .uname = "AD_SBO",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Probe Queue Retries -- No AD Sbo Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "TARGET",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "Probe Queue Retries -- Target Node Filter",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_irq_retry[]={
Packit 577717
	{ .uname = "ADDR_CONFLICT",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- Address Conflict",
Packit 577717
	},
Packit 577717
	{ .uname = "ANY",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- Any Reject",
Packit 577717
	  .uflags = INTEL_X86_DFL,
Packit 577717
	},
Packit 577717
	{ .uname = "FULL",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- No Egress Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "IIO_CREDITS",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- No IIO Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "NID",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- ",
Packit 577717
	},
Packit 577717
	{ .uname = "QPI_CREDITS",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- No QPI Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "RTID",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- No RTIDs",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_irq_retry2[]={
Packit 577717
	{ .uname = "AD_SBO",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- No AD Sbo Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_SBO",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- No BL Sbo Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "TARGET",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "Ingress Request Queue Rejects -- Target Node Filter",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_ismq_retry[]={
Packit 577717
	{ .uname = "ANY",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "ISMQ Retries -- Any Reject",
Packit 577717
	  .uflags = INTEL_X86_DFL,
Packit 577717
	},
Packit 577717
	{ .uname = "FULL",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "ISMQ Retries -- No Egress Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "IIO_CREDITS",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "ISMQ Retries -- No IIO Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "NID",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "ISMQ Retries -- ",
Packit 577717
	},
Packit 577717
	{ .uname = "QPI_CREDITS",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "ISMQ Retries -- No QPI Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "RTID",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "ISMQ Retries -- No RTIDs",
Packit 577717
	},
Packit 577717
	{ .uname = "WB_CREDITS",
Packit 577717
	  .ucode = 0x8000,
Packit 577717
	  .udesc = "ISMQ Retries -- ",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_ismq_retry2[]={
Packit 577717
	{ .uname = "AD_SBO",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "ISMQ Request Queue Rejects -- No AD Sbo Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_SBO",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "ISMQ Request Queue Rejects -- No BL Sbo Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "TARGET",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "ISMQ Request Queue Rejects -- Target Node Filter",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_rxr_occupancy[]={
Packit 577717
	{ .uname = "IPQ",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Ingress Occupancy -- IPQ",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "IRQ",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Occupancy -- IRQ",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "IRQ_REJ",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Occupancy -- IRQ Rejected",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "PRQ_REJ",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Ingress Occupancy -- PRQ Rejects",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_sbo_credits_acquired[]={
Packit 577717
	{ .uname = "AD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "SBo Credits Acquired -- For AD Ring",
Packit 577717
	},
Packit 577717
	{ .uname = "BL",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "SBo Credits Acquired -- For BL Ring",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_sbo_credit_occupancy[]={
Packit 577717
	{ .uname = "AD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "SBo Credits Occupancy -- For AD Ring",
Packit 577717
	},
Packit 577717
	{ .uname = "BL",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "SBo Credits Occupancy -- For BL Ring",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_tor_inserts[]={
Packit 577717
	{ .uname = "ALL",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "All",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "EVICTION",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Evictions",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "LOCAL",
Packit 577717
	  .ucode = 0x2800,
Packit 577717
	  .udesc = "Local Memory",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "LOCAL_OPCODE",
Packit 577717
	  .ucode = 0x2100,
Packit 577717
	  .udesc = "Local Memory - Opcode Matched",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_LOCAL",
Packit 577717
	  .ucode = 0x2a00,
Packit 577717
	  .udesc = "Misses to Local Memory",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_LOCAL_OPCODE",
Packit 577717
	  .ucode = 0x2300,
Packit 577717
	  .udesc = "Misses to Local Memory - Opcode Matched",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_OPCODE",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "Miss Opcode Match",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_REMOTE",
Packit 577717
	  .ucode = 0x8a00,
Packit 577717
	  .udesc = "Misses to Remote Memory",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_REMOTE_OPCODE",
Packit 577717
	  .ucode = 0x8300,
Packit 577717
	  .udesc = "Misses to Remote Memory - Opcode Matched",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_ALL",
Packit 577717
	  .ucode = 0x4800,
Packit 577717
	  .udesc = "NID Matched",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_EVICTION",
Packit 577717
	  .ucode = 0x4400,
Packit 577717
	  .udesc = "NID Matched Evictions",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_MISS_ALL",
Packit 577717
	  .ucode = 0x4a00,
Packit 577717
	  .udesc = "NID Matched Miss All",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_MISS_OPCODE",
Packit 577717
	  .ucode = 0x4300,
Packit 577717
	  .udesc = "NID and Opcode Matched Miss",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_OPCODE",
Packit 577717
	  .ucode = 0x4100,
Packit 577717
	  .udesc = "NID and Opcode Matched",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_WB",
Packit 577717
	  .ucode = 0x5000,
Packit 577717
	  .udesc = "NID Matched Writebacks",
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "OPCODE",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Opcode Match",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "REMOTE",
Packit 577717
	  .ucode = 0x8800,
Packit 577717
	  .udesc = "Remote Memory",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "REMOTE_OPCODE",
Packit 577717
	  .ucode = 0x8100,
Packit 577717
	  .udesc = "Remote Memory - Opcode Matched",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "WB",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Writebacks",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
 	CBO_FILT_OPC(1)
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_tor_occupancy[]={
Packit 577717
	{ .uname = "ALL",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Any",
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "EVICTION",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Evictions",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "LOCAL",
Packit 577717
	  .ucode = 0x2800,
Packit 577717
	  .udesc  = "Number of transactions in the TOR that are satisfied by locally homed memory",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "LOCAL_OPCODE",
Packit 577717
	  .ucode = 0x2100,
Packit 577717
	  .udesc = "Local Memory - Opcode Matched",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_ALL",
Packit 577717
	  .ucode = 0xa00,
Packit 577717
	  .udesc = "Miss All",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_LOCAL",
Packit 577717
	  .ucode = 0x2a00,
Packit 577717
	  .udesc  = "Number of miss transactions in the TOR that are satisfied by locally homed memory",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_LOCAL_OPCODE",
Packit 577717
	  .ucode = 0x2300,
Packit 577717
	  .udesc  = "Number of miss opcode-matched transactions inserted into the TOR that are satisfied by locally homed memory",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_OPCODE",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc  = "Number of miss transactions inserted into the TOR that match an opcode (must provide opc_* umask)",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_REMOTE_OPCODE",
Packit 577717
	  .ucode = 0x8300,
Packit 577717
	  .udesc  = "Number of miss opcode-matched transactions inserted into the TOR that are satisfied by remote caches or memory",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_ALL",
Packit 577717
	  .ucode = 0x4800,
Packit 577717
	  .udesc  = "Number of NID-matched transactions inserted into the TOR (must provide nf=X modifier)",
Packit 577717
	  .grpid  = 0,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_EVICTION",
Packit 577717
	  .ucode = 0x4400,
Packit 577717
	  .udesc  = "Number of NID-matched eviction transactions inserted into the TOR (must provide nf=X modifier)",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_MISS_ALL",
Packit 577717
	  .ucode = 0x4a00,
Packit 577717
	  .udesc  = "Number of NID-matched miss transactions that were inserted into the TOR (must provide nf=X modifier)",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_MISS_OPCODE",
Packit 577717
	  .ucode = 0x4300,
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
	  .grpid  = 0,
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_OPCODE",
Packit 577717
	  .ucode = 0x4100,
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
	  .grpid  = 0,
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "NID_WB",
Packit 577717
	  .ucode = 0x5000,
Packit 577717
	  .udesc  = "Number of NID-matched write back transactions inserted into the TOR (must provide nf=X modifier)",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .umodmsk_req = _SNBEP_UNC_ATTR_NF1,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "OPCODE",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc  = "Number of transactions inserted into the TOR that match an opcode (must provide opc_* umask)",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "REMOTE",
Packit 577717
	  .ucode = 0x8800,
Packit 577717
	  .udesc  = "Number of transactions inserted into the TOR that are satisfied by remote caches or memory",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "REMOTE_OPCODE",
Packit 577717
	  .ucode = 0x8100,
Packit 577717
	  .udesc  = "Number of opcode-matched transactions inserted into the TOR that are satisfied by remote caches or memory",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "WB",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc  = "Number of write transactions inserted into the TOR",
Packit 577717
	  .grpid  = 0,
Packit 577717
	  .uflags = INTEL_X86_NCOMBO | INTEL_X86_EXCL_GRP_GT,
Packit 577717
	},
Packit 577717
	{ .uname = "MISS_REMOTE",
Packit 577717
	  .ucode = 0x8a00,
Packit 577717
	  .udesc  = "Number of miss transactions inserted into the TOR that are satisfied by remote caches or memory",
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 intel_x86_umask_t bdx_unc_c_txr_ads_used[]={
Packit 577717
	{ .uname = "AD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Onto AD Ring",
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Onto AK Ring",
Packit 577717
	},
Packit 577717
	{ .uname = "BL",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Onto BL Ring",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_c_txr_inserts[]={
Packit 577717
	{ .uname = "AD_CACHE",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Egress Allocations -- AD - Cachebo",
Packit 577717
	},
Packit 577717
	{ .uname = "AD_CORE",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Egress Allocations -- AD - Corebo",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_CACHE",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Egress Allocations -- AK - Cachebo",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_CORE",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Egress Allocations -- AK - Corebo",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CACHE",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Egress Allocations -- BL - Cacheno",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CORE",
Packit 577717
	  .ucode = 0x4000,
Packit 577717
	  .udesc = "Egress Allocations -- BL - Corebo",
Packit 577717
	},
Packit 577717
	{ .uname = "IV_CACHE",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Egress Allocations -- IV - Cachebo",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
Packit 577717
static intel_x86_entry_t intel_bdx_unc_c_pe[]={
Packit 577717
  { .name   = "UNC_C_BOUNCE_CONTROL",
Packit 577717
    .code   = 0xa,
Packit 577717
    .desc   = "TBD",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_CLOCKTICKS",
Packit 577717
    .code   = 0x0,
Packit 577717
    .desc   = "Clock ticks",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_COUNTER0_OCCUPANCY",
Packit 577717
    .code   = 0x1f,
Packit 577717
    .desc   = "Since occupancy counts can only be captured in the Cbos 0 counter, this event allows a user to capture occupancy related information by filtering the Cb0 occupancy count captured in Counter 0. The filtering available is found in the control register - threshold, invert and edge detect.   E.g. setting threshold to 1 can effectively monitor how many cycles the monitored queue has an entryy.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_FAST_ASSERTED",
Packit 577717
    .code   = 0x9,
Packit 577717
    .desc   = "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0x3,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_LLC_LOOKUP",
Packit 577717
    .code   = 0x34,
Packit 577717
    .desc   = "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.",
Packit 577717
    .modmsk = BDX_UNC_CBO_NID_ATTRS,
Packit 577717
    .flags  = INTEL_X86_NO_AUTOENCODE,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 3,
Packit 577717
    .umasks = bdx_unc_c_llc_lookup,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_llc_lookup),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_LLC_VICTIMS",
Packit 577717
    .code   = 0x37,
Packit 577717
    .desc   = "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.",
Packit 577717
    .modmsk = BDX_UNC_CBO_NID_ATTRS,
Packit 577717
    .flags  = INTEL_X86_NO_AUTOENCODE,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 2,
Packit 577717
    .umasks = bdx_unc_c_llc_victims,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_llc_victims),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_MISC",
Packit 577717
    .code   = 0x39,
Packit 577717
    .desc   = "Miscellaneous events in the Cbo.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_misc,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_misc),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RING_AD_USED",
Packit 577717
    .code   = 0x1b,
Packit 577717
    .desc   = "Counts the number of cycles that the AD ring is being used at this ring stop.  This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.  We really have two rings in BDX -- a clockwise ring and a counter-clockwise ring.  On the left side of the ring, the UP direction is on the clockwise ring and DN is on the counter-clockwise ring.  On the right side of the ring, this is reversed.  The first half of the CBos are on the left side of the ring, and the 2nd half are on the right side of the ring.  In other words (for example), in a 4c part, Cbo 0 UP AD is NOT the same ring as CBo 2 UP AD because they are on opposite sides of the rhe ring.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_ring_ad_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_ring_ad_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RING_AK_USED",
Packit 577717
    .code   = 0x1c,
Packit 577717
    .desc   = "Counts the number of cycles that the AK ring is being used at this ring stop.  This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.We really have two rings in BDX -- a clockwise ring and a counter-clockwise ring.  On the left side of the ring, the UP direction is on the clockwise ring and DN is on the counter-clockwise ring.  On the right side of the ring, this is reversed.  The first half of the CBos are on the left side of the ring, and the 2nd half are on the right side of the ring.  In other words (for example), in a 4c part, Cbo 0 UP AD is NOT the same ring as CBo 2 UP AD because they are on opposite sides of the rhe ring.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_ring_ak_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_ring_ak_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RING_BL_USED",
Packit 577717
    .code   = 0x1d,
Packit 577717
    .desc   = "Counts the number of cycles that the BL ring is being used at this ring stop.  This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.We really have two rings in BDX -- a clockwise ring and a counter-clockwise ring.  On the left side of the ring, the UP direction is on the clockwise ring and DN is on the counter-clockwise ring.  On the right side of the ring, this is reversed.  The first half of the CBos are on the left side of the ring, and the 2nd half are on the right side of the ring.  In other words (for example), in a 4c part, Cbo 0 UP AD is NOT the same ring as CBo 2 UP AD because they are on opposite sides of the rhe ring.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_ring_bl_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_ring_bl_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RING_BOUNCES",
Packit 577717
    .code   = 0x5,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_ring_bounces,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_ring_bounces),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RING_IV_USED",
Packit 577717
    .code   = 0x1e,
Packit 577717
    .desc   = "Counts the number of cycles that the IV ring is being used at this ring stop.  This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.  There is only 1 IV ring in BDX  Therefore, if one wants to monitor the Even ring, they should select both UP_EVEN and DN_EVEN.  To monitor the Odd ring, they should select both UP_ODD and DN_ DN_ODD.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_ring_iv_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_ring_iv_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RING_SRC_THRTL",
Packit 577717
    .code   = 0x7,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_EXT_STARVED",
Packit 577717
    .code   = 0x12,
Packit 577717
    .desc   = "Counts cycles in external starvation.  This occurs when one of the ingress queues is being starved by the other queues.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_ext_starved,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_ext_starved),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_INSERTS",
Packit 577717
    .code   = 0x13,
Packit 577717
    .desc   = "Counts number of allocations per cycle into the specified Ingress queue.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_inserts,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_inserts),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_IPQ_RETRY",
Packit 577717
    .code   = 0x31,
Packit 577717
    .desc   = "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_ipq_retry,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_ipq_retry),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_IPQ_RETRY2",
Packit 577717
    .code   = 0x28,
Packit 577717
    .desc   = "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_ipq_retry2,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_ipq_retry2),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_IRQ_RETRY",
Packit 577717
    .code   = 0x32,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_irq_retry,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_irq_retry),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_IRQ_RETRY2",
Packit 577717
    .code   = 0x29,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_irq_retry2,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_irq_retry2),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_ISMQ_RETRY",
Packit 577717
    .code   = 0x33,
Packit 577717
    .desc   = "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_ismq_retry,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_ismq_retry),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_ISMQ_RETRY2",
Packit 577717
    .code   = 0x2a,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_ismq_retry2,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_ismq_retry2),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_RXR_OCCUPANCY",
Packit 577717
    .code   = 0x11,
Packit 577717
    .desc   = "Counts number of entries in the specified Ingress queue in each cycle.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0x1,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_rxr_occupancy,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_rxr_occupancy),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_SBO_CREDITS_ACQUIRED",
Packit 577717
    .code   = 0x3d,
Packit 577717
    .desc   = "Number of Sbo credits acquired in a given cycle, per ring.  Each Cbo is assigned an Sbo it can communicate with.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_sbo_credits_acquired,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_sbo_credits_acquired),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_SBO_CREDIT_OCCUPANCY",
Packit 577717
    .code   = 0x3e,
Packit 577717
    .desc   = "Number of Sbo credits in use in a given cycle, per ring.  Each Cbo is assigned an Sbo it can communicate with.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0x1,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_sbo_credit_occupancy,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_sbo_credit_occupancy),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_TOR_INSERTS",
Packit 577717
    .code   = 0x35,
Packit 577717
    .desc   = "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent filters but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x1(0x182).",
Packit 577717
    .modmsk = BDX_UNC_CBO_NID_ATTRS | _SNBEP_UNC_ATTR_ISOC | _SNBEP_UNC_ATTR_NC,
Packit 577717
    .flags  = INTEL_X86_NO_AUTOENCODE,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 2,
Packit 577717
    .umasks = bdx_unc_c_tor_inserts,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_tor_inserts),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_TOR_OCCUPANCY",
Packit 577717
    .code   = 0x36,
Packit 577717
    .desc   = "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent filters but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x (0x182)",
Packit 577717
    .modmsk = BDX_UNC_CBO_NID_ATTRS | _SNBEP_UNC_ATTR_ISOC | _SNBEP_UNC_ATTR_NC,
Packit 577717
    .flags  = INTEL_X86_NO_AUTOENCODE,
Packit 577717
    .cntmsk = 0x1,
Packit 577717
    .ngrp   = 2,
Packit 577717
    .umasks = bdx_unc_c_tor_occupancy,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_tor_occupancy),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_TXR_ADS_USED",
Packit 577717
    .code   = 0x4,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_txr_ads_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_txr_ads_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_C_TXR_INSERTS",
Packit 577717
    .code   = 0x2,
Packit 577717
    .desc   = "Number of allocations into the Cbo Egress.  The Egress is used to queue up requests destined for the ring.",
Packit 577717
    .modmsk = BDX_UNC_CBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_c_txr_inserts,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_c_txr_inserts),
Packit 577717
  },
Packit 577717
};
Packit 577717