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

Packit Service a1973e
/*
Packit Service a1973e
 * Copyright (c) 2014 Google Inc. All rights reserved
Packit Service a1973e
 * Contributed by Stephane Eranian <eranian@gmail.com>
Packit Service a1973e
 *
Packit Service a1973e
 * Permission is hereby granted, free of charge, to any person obtaining a copy
Packit Service a1973e
 * of this software and associated documentation files (the "Software"), to deal
Packit Service a1973e
 * in the Software without restriction, including without limitation the rights
Packit Service a1973e
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
Packit Service a1973e
 * of the Software, and to permit persons to whom the Software is furnished to do so,
Packit Service a1973e
 * subject to the following conditions:
Packit Service a1973e
 *
Packit Service a1973e
 * The above copyright notice and this permission notice shall be included in all
Packit Service a1973e
 * copies or substantial portions of the Software.
Packit Service a1973e
 *
Packit Service a1973e
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
Packit Service a1973e
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
Packit Service a1973e
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
Packit Service a1973e
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
Packit Service a1973e
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
Packit Service a1973e
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit Service a1973e
 *
Packit Service a1973e
 * This file is part of libpfm, a performance monitoring support library for
Packit Service a1973e
 * applications on Linux.
Packit Service a1973e
 *
Packit Service a1973e
 * PMU: hswep_unc_ha (Intel Haswell-EP HA uncore PMU)
Packit Service a1973e
 */
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_directory_lookup[]={
Packit Service a1973e
  { .uname = "NO_SNP",
Packit Service a1973e
    .udesc  = "Snoop not needed",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SNOOP",
Packit Service a1973e
    .udesc  = "SNooop needed",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_bypass_imc[]={
Packit Service a1973e
  { .uname = "TAKEN",
Packit Service a1973e
    .udesc  = "Bypass taken",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "NOT_TAKEN",
Packit Service a1973e
    .udesc  = "Bypass not taken",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_directory_update[]={
Packit Service a1973e
  { .uname = "ANY",
Packit Service a1973e
    .udesc  = "Counts any directory update",
Packit Service a1973e
    .ucode  = 0x300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CLEAR",
Packit Service a1973e
    .udesc  = "Directory clears",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SET",
Packit Service a1973e
    .udesc  = "Directory set",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_hitme_hit[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "All requests",
Packit Service a1973e
    .ucode  = 0xff00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READ_OR_INVITOE",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RdCode, RdData, RdDataMigratory, RdInvOwn, RdCur or InvToE",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WBMTOI",
Packit Service a1973e
    .udesc  = "Number of hits with opcode WbToMtoI",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "ACKCNFLTWBI",
Packit Service a1973e
    .udesc  = "Number of hits with opcode AckCnfltWbI",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WBMTOE_OR_S",
Packit Service a1973e
    .udesc  = "Number of hits with opcode WbMtoE or WbMtoS",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "HOM",
Packit Service a1973e
    .udesc  = "Number of hits with HOM requests",
Packit Service a1973e
    .ucode  = 0xf00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPFWDI_REMOTE",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RspIFwd, RspIFwdWb for remore requests",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPFWDI_LOCAL",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RspIFwd, RspIFwdWb for local requests",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "INVALS",
Packit Service a1973e
    .udesc  = "Number of hits for invalidations",
Packit Service a1973e
    .ucode  = 0x2600,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPFWDS",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RsSFwd, RspSFwdWb",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "EVICTS",
Packit Service a1973e
    .udesc  = "Number of hits for allocations",
Packit Service a1973e
    .ucode  = 0x4200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "ALLOCS",
Packit Service a1973e
    .udesc  = "Number of hits for allocations",
Packit Service a1973e
    .ucode  = 0x7000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSP",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RspI, RspIWb, RspSWb, RspCnflt, RspCnfltWbI",
Packit Service a1973e
    .ucode  = 0x8000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_hitme_hit_pv_bits_set[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "All requests",
Packit Service a1973e
    .ucode  = 0xff00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READ_OR_INVITOE",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RdCode, RdData, RdDataMigratory, RdInvOwn, RdCur or InvToE",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WBMTOI",
Packit Service a1973e
    .udesc  = "Number of hits with opcode WbToMtoI",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "ACKCNFLTWBI",
Packit Service a1973e
    .udesc  = "Number of hits with opcode AckCnfltWbI",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WBMTOE_OR_S",
Packit Service a1973e
    .udesc  = "Number of hits with opcode WbMtoE or WbMtoS",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "HOM",
Packit Service a1973e
    .udesc  = "Number of hits with HOM requests",
Packit Service a1973e
    .ucode  = 0xf00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPFWDI_REMOTE",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RspIFwd, RspIFwdWb for remore requests",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPFWDI_LOCAL",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RspIFwd, RspIFwdWb for local requests",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPFWDS",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RsSFwd, RspSFwdWb",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSP",
Packit Service a1973e
    .udesc  = "Number of hits with opcode RspI, RspIWb, RspSWb, RspCnflt, RspCnfltWbI",
Packit Service a1973e
    .ucode  = 0x8000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_igr_no_credit_cycles[]={
Packit Service a1973e
  { .uname = "AD_QPI0",
Packit Service a1973e
    .udesc  = "AD to QPI link 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "AD_QPI1",
Packit Service a1973e
    .udesc  = "AD to QPI link 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BL_QPI0",
Packit Service a1973e
    .udesc  = "BL to QPI link 0",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BL_QPI1",
Packit Service a1973e
    .udesc  = "BL to QPI link 1",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "AD_QPI2",
Packit Service a1973e
    .udesc  = "AD to QPI link 2",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BL_QPI2",
Packit Service a1973e
    .udesc  = "BL to QPI link 2",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_imc_writes[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "Counts all writes",
Packit Service a1973e
    .ucode  = 0xf00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "FULL",
Packit Service a1973e
    .udesc  = "Counts full line non ISOCH",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PARTIAL",
Packit Service a1973e
    .udesc  = "Counts partial non-ISOCH",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "FULL_ISOCH",
Packit Service a1973e
    .udesc  = "Counts ISOCH full line",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PARTIAL_ISOCH",
Packit Service a1973e
    .udesc  = "Counts ISOCH partial",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_imc_reads[]={
Packit Service a1973e
  { .uname = "NORMAL",
Packit Service a1973e
    .udesc  = "Normal priority",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_requests[]={
Packit Service a1973e
  { .uname = "READS",
Packit Service a1973e
    .udesc  = "Counts incoming read requests. Good proxy for LLC read misses, incl. RFOs",
Packit Service a1973e
    .ucode  = 0x300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_LOCAL",
Packit Service a1973e
    .udesc  = "Counts incoming read requests coming from local socket. Good proxy for LLC read misses, incl. RFOs from the local socket",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_REMOTE",
Packit Service a1973e
    .udesc  = "Counts incoming read requests coming from remote socket. Good proxy for LLC read misses, incl. RFOs from the remote socket",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WRITES",
Packit Service a1973e
    .udesc  = "Counts incoming writes",
Packit Service a1973e
    .ucode  = 0xc00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WRITES_LOCAL",
Packit Service a1973e
    .udesc  = "Counts incoming writes from local socket",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WRITES_REMOTE",
Packit Service a1973e
    .udesc  = "Counts incoming writes from remote socket",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "INVITOE_LOCAL",
Packit Service a1973e
    .udesc  = "Counts InvItoE coming from local socket",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "INVITOE_REMOTE",
Packit Service a1973e
    .udesc  = "Counts InvItoE coming from remote socket",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_rpq_cycles_no_reg_credits[]={
Packit Service a1973e
  { .uname = "CHN0",
Packit Service a1973e
    .udesc  = "Channel 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CHN1",
Packit Service a1973e
    .udesc  = "Channel 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CHN2",
Packit Service a1973e
    .udesc  = "channel 2",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CHN3",
Packit Service a1973e
    .udesc  = "Chanel 3",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_tad_requests_g0[]={
Packit Service a1973e
  { .uname = "REGION0",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION1",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION2",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 2",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION3",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 3",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION4",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 4",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION5",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 5",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION6",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 6",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION7",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 7",
Packit Service a1973e
    .ucode  = 0x8000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_tad_requests_g1[]={
Packit Service a1973e
  { .uname = "REGION8",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 8",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION9",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 9",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION10",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 10",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REGION11",
Packit Service a1973e
    .udesc  = "Counts for TAD Region 11",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_snoop_resp[]={
Packit Service a1973e
  { .uname = "RSPI",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspI. RspI is returned when the remote cache does not have the data or when the remote cache silently evicts data (e.g. RFO hit non-modified line)",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPS",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspS. RspS is returned when the remote cache has the data but is not forwarding it. It is a way to let the requesting socket know that it cannot allocate the data in E-state",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPIFWD",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspIFwd. RspIFwd is returned when the remote cache agent forwards data and the requesting agent is able to acquire the data in E or M state. This is commonly returned with RFO transacations. It can be either HitM or HitFE",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPSFWD",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspSFwd. RspSFwd is returned when the remote cache agent forwards data  but holds on to its current copy. This is common for data and code reads that hit in a remote socket in E or F state",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSP_WB",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspIWB or RspSWB. This is returned when a non-RFO requests hits in M-state. Data and code reads can return either RspIWB or RspSWB depending on how the system has been configured. InvItoE transactions will also return RspIWB because they must acquire ownership",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSP_FWD_WB",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspxFwdxWB. This snoop response is only used in 4s systems. It is used when a snoop HITM in a remote caching agent and it directly forwards data to a requester and simultaneously returns data to the home to be written back to memory",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPCNFLCT",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspConflict. This is returned when a snoop finds an existing outstanding transaction in a remote caching agent when it CMAs that caching agent. This triggers the conflict resolution hardware. This covers both RspConflct and RspCnflctWBI",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_txr_ad_cycles_full[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "Counts cycles full from both schedulers",
Packit Service a1973e
    .ucode  = 0x300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SCHED0",
Packit Service a1973e
    .udesc  = "Counts cycles full from scheduler bank 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SCHED1",
Packit Service a1973e
    .udesc  = "Counts cycles full from scheduler bank 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_txr_bl_occupancy[]={
Packit Service a1973e
  { .uname = "SCHED0",
Packit Service a1973e
    .udesc  = "Counts cycles full from scheduler bank 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SCHED1",
Packit Service a1973e
    .udesc  = "Counts cycles full from scheduler bank 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_txr_ak_cycles_full[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "Counts cycles from both schedulers",
Packit Service a1973e
    .ucode  = 0x300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SCHED0",
Packit Service a1973e
    .udesc  = "Counts cycles from scheduler bank 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SCHED1",
Packit Service a1973e
    .udesc  = "Counts cycles from scheduler bank 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_txr_bl[]={
Packit Service a1973e
  { .uname = "DRS_CACHE",
Packit Service a1973e
    .udesc  = "Counts data being sent to the cache",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "DRS_CORE",
Packit Service a1973e
    .udesc  = "Counts data being sent directly to the requesting core",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "DRS_QPI",
Packit Service a1973e
    .udesc  = "Counts data being sent to a remote socket over QPI",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_osb[]={
Packit Service a1973e
  { .uname = "REMOTE",
Packit Service a1973e
    .udesc  = "Remote",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_LOCAL",
Packit Service a1973e
    .udesc  = "Local reads",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "INVITOE_LOCAL",
Packit Service a1973e
    .udesc  = "Local InvItoE",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CANCELLED",
Packit Service a1973e
    .udesc  = "Cancelled due to D2C or Other",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_LOCAL_USEFUL",
Packit Service a1973e
    .udesc  = "Local reads - useful",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REMOTE_USEFUL",
Packit Service a1973e
    .udesc  = "Remote - useful",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_osb_edr[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "All data returns",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_DFL | INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_LOCAL_I",
Packit Service a1973e
    .udesc  = "Reads to local I",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_REMOTE_I",
Packit Service a1973e
    .udesc  = "Reads to remote I",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_LOCAL_S",
Packit Service a1973e
    .udesc  = "Reads to local S",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_REMOTE_S",
Packit Service a1973e
    .udesc  = "Reads to remote S",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_ring_ad_used[]={
Packit Service a1973e
  { .uname = "CCW_EVEN",
Packit Service a1973e
    .udesc  = "Counter-clockwise and even ring polarity",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CCW_ODD",
Packit Service a1973e
    .udesc  = "Counter-clockwise and odd ring polarity",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CW_EVEN",
Packit Service a1973e
    .udesc  = "Clockwise and even ring polarity",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CW_ODD",
Packit Service a1973e
    .udesc  = "Clockwise and odd ring polarity",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CW",
Packit Service a1973e
    .udesc  = "Clockwise with any polarity",
Packit Service a1973e
    .ucode  = 0x3300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CCW",
Packit Service a1973e
    .udesc  = "Counter-clockwise with any polarity",
Packit Service a1973e
    .ucode  = 0xcc00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_snp_resp_recv_local[]={
Packit Service a1973e
  { .uname = "RSPI",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspI. RspI is returned when the remote cache does not have the data or when the remote cache silently evicts data (e.g. RFO hit non-modified line)",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPS",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspS. RspS is returned when the remote cache has the data but is not forwarding it. It is a way to let the requesting socket know that it cannot allocate the data in E-state",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPIFWD",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspIFwd. RspIFwd is returned when the remote cache agent forwards data and the requesting agent is able to acquire the data in E or M state. This is commonly returned with RFO transacations. It can be either HitM or HitFE",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPSFWD",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspSFwd. RspSFwd is returned when the remote cache agent forwards data  but holds on to its current copy. This is common for data and code reads that hit in a remote socket in E or F state",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSP_WB",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspIWB or RspSWB. This is returned when a non-RFO requests hits in M-state. Data and code reads can return either RspIWB or RspSWB depending on how the system has been configured. InvItoE transactions will also return RspIWB because they must acquire ownership",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSP_FWD_WB",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspxFwdxWB. This snoop response is only used in 4s systems. It is used when a snoop HITM in a remote caching agent and it directly forwards data to a requester and simultaneously returns data to the home to be written back to memory",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RSPCNFLCT",
Packit Service a1973e
    .udesc  = "Filters for snoop responses of RspConflict. This is returned when a snoop finds an existing outstanding transaction in a remote caching agent when it CMAs that caching agent. This triggers the conflict resolution hardware. This covers both RspConflct and RspCnflctWBI",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "OTHER",
Packit Service a1973e
    .udesc  = "Filters all other snoop responses",
Packit Service a1973e
    .ucode  = 0x8000,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_sbo0_credits_acquired[]={
Packit Service a1973e
  { .uname = "AD",
Packit Service a1973e
    .udesc  = "For AD ring",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BL",
Packit Service a1973e
    .udesc  = "For BL ring",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_snoops_rsp_after_data[]={
Packit Service a1973e
  { .uname = "LOCAL",
Packit Service a1973e
    .udesc  = "Local",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REMOTE",
Packit Service a1973e
    .udesc  = "Remote",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_snoops_cycles_ne[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "Local",
Packit Service a1973e
    .ucode  = 0x300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "LOCAL",
Packit Service a1973e
    .udesc  = "Local",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "REMOTE",
Packit Service a1973e
    .udesc  = "Remote",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_txr_ak[]={
Packit Service a1973e
  { .uname = "NDR",
Packit Service a1973e
    .udesc  = "Number of outbound NDR (non-data response) transactions send on the AK ring. AK NDR is used for messages to the local socket",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CRD_CBO",
Packit Service a1973e
    .udesc  = "Number of outbound CDR transactions send on the AK ring to CBO",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CRD_QPI",
Packit Service a1973e
    .udesc  = "Number of outbound CDR transactions send on the AK ring to QPI",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_stall_no_sbo_credit[]={
Packit Service a1973e
  { .uname = "SBO0_AD",
Packit Service a1973e
    .udesc  = "No credit for SBO0 AD Ring",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SBO1_AD",
Packit Service a1973e
    .udesc  = "No credit for SBO1 AD Ring",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SBO0_BL",
Packit Service a1973e
    .udesc  = "No credit for SBO0 BL Ring",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "SBO1_BL",
Packit Service a1973e
    .udesc  = "No credit for SBO1 BL Ring",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_tracker_occupancy[]={
Packit Service a1973e
  { .uname = "READS_LOCAL",
Packit Service a1973e
    .udesc  = "Local read requests",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READS_REMOTE",
Packit Service a1973e
    .udesc  = "Remote read requests",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WRITES_LOCAL",
Packit Service a1973e
    .udesc  = "Local write requests",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WRITES_REMOTE",
Packit Service a1973e
    .udesc  = "Remote write requests",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "INVITOE_LOCAL",
Packit Service a1973e
    .udesc  = "Local InvItoE requests",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "INVITOE_REMOTE",
Packit Service a1973e
    .udesc  = "Remote InvItoE requests",
Packit Service a1973e
    .ucode  = 0x8000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t hswep_unc_h_txr_starved[]={
Packit Service a1973e
  { .uname = "AK",
Packit Service a1973e
    .udesc  = "For AD ring",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BL",
Packit Service a1973e
    .udesc  = "For BL ring",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_entry_t intel_hswep_unc_h_pe[]={
Packit Service a1973e
  { .name   = "UNC_H_CLOCKTICKS",
Packit Service a1973e
    .desc   = "HA Uncore clockticks",
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .code = 0x00,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_CONFLICT_CYCLES",
Packit Service a1973e
    .desc = "Conflict Checks",
Packit Service a1973e
    .code = 0xb,
Packit Service a1973e
    .cntmsk = 0x2,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_DIRECT2CORE_COUNT",
Packit Service a1973e
    .desc = "Direct2Core Messages Sent",
Packit Service a1973e
    .code = 0x11,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_DIRECT2CORE_CYCLES_DISABLED",
Packit Service a1973e
    .desc = "Cycles when Direct2Core was Disabled",
Packit Service a1973e
    .code = 0x12,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_DIRECT2CORE_TXN_OVERRIDE",
Packit Service a1973e
    .desc = "Number of Reads that had Direct2Core Overridden",
Packit Service a1973e
    .code = 0x13,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_DIRECTORY_LOOKUP",
Packit Service a1973e
    .desc = "Directory Lookups",
Packit Service a1973e
    .code = 0xc,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_directory_lookup),
Packit Service a1973e
    .umasks  = hswep_unc_h_directory_lookup
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_DIRECTORY_UPDATE",
Packit Service a1973e
    .desc = "Directory Updates",
Packit Service a1973e
    .code = 0xd,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_directory_update),
Packit Service a1973e
    .umasks  = hswep_unc_h_directory_update
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_IGR_NO_CREDIT_CYCLES",
Packit Service a1973e
    .desc = "Cycles without QPI Ingress Credits",
Packit Service a1973e
    .code = 0x22,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_igr_no_credit_cycles),
Packit Service a1973e
    .umasks  = hswep_unc_h_igr_no_credit_cycles
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_IMC_RETRY",
Packit Service a1973e
    .desc = "Retry Events",
Packit Service a1973e
    .code = 0x1e,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_IMC_WRITES",
Packit Service a1973e
    .desc = "HA to IMC Full Line Writes Issued",
Packit Service a1973e
    .code = 0x1a,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_imc_writes),
Packit Service a1973e
    .umasks  = hswep_unc_h_imc_writes
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_IMC_READS",
Packit Service a1973e
    .desc = "HA to IMC normal priority reads issued",
Packit Service a1973e
    .code = 0x17,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_imc_reads),
Packit Service a1973e
    .umasks  = hswep_unc_h_imc_reads
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_REQUESTS",
Packit Service a1973e
    .desc = "Read and Write Requests",
Packit Service a1973e
    .code = 0x1,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_requests),
Packit Service a1973e
    .umasks  = hswep_unc_h_requests
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_RPQ_CYCLES_NO_REG_CREDITS",
Packit Service a1973e
    .desc = "IMC RPQ Credits Empty",
Packit Service a1973e
    .code = 0x15,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_rpq_cycles_no_reg_credits),
Packit Service a1973e
    .umasks  = hswep_unc_h_rpq_cycles_no_reg_credits
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TAD_REQUESTS_G0",
Packit Service a1973e
    .desc = "HA Requests to a TAD Region",
Packit Service a1973e
    .code = 0x1b,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_tad_requests_g0),
Packit Service a1973e
    .umasks  = hswep_unc_h_tad_requests_g0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TAD_REQUESTS_G1",
Packit Service a1973e
    .desc = "HA Requests to a TAD Region",
Packit Service a1973e
    .code = 0x1c,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_tad_requests_g1),
Packit Service a1973e
    .umasks  = hswep_unc_h_tad_requests_g1
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_AD_CYCLES_FULL",
Packit Service a1973e
    .desc = "AD Egress Full",
Packit Service a1973e
    .code = 0x2a,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_ad_cycles_full),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_ad_cycles_full
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_AK_CYCLES_FULL",
Packit Service a1973e
    .desc = "AK Egress Full",
Packit Service a1973e
    .code = 0x32,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_ak_cycles_full),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_ak_cycles_full
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_AK",
Packit Service a1973e
    .desc = "Outbound Ring Transactions on AK",
Packit Service a1973e
    .code = 0xe,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_ak),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_ak
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_BL",
Packit Service a1973e
    .desc = "Outbound DRS Ring Transactions to Cache",
Packit Service a1973e
    .code = 0x10,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_bl),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_bl
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_BL_CYCLES_FULL",
Packit Service a1973e
    .desc = "BL Egress Full",
Packit Service a1973e
    .code = 0x36,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_ak_cycles_full),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_ak_cycles_full, /* identical to snbep_unc_h_txr_ak_cycles_full */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_WPQ_CYCLES_NO_REG_CREDITS",
Packit Service a1973e
    .desc = "HA IMC CHN0 WPQ Credits Empty",
Packit Service a1973e
    .code = 0x18,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_rpq_cycles_no_reg_credits),
Packit Service a1973e
    .umasks  = hswep_unc_h_rpq_cycles_no_reg_credits, /* shared */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_BT_BYPASS",
Packit Service a1973e
    .desc = "Backup Tracker bypass",
Packit Service a1973e
    .code = 0x52,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_BYPASS_IMC",
Packit Service a1973e
    .desc = "HA to IMC bypass",
Packit Service a1973e
    .code = 0x14,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_bypass_imc),
Packit Service a1973e
    .umasks  = hswep_unc_h_bypass_imc,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_BT_CYCLES_NE",
Packit Service a1973e
    .desc = "Backup Tracker cycles not empty",
Packit Service a1973e
    .code = 0x42,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_BT_OCCUPANCY",
Packit Service a1973e
    .desc = "Backup Tracker inserts",
Packit Service a1973e
    .code = 0x43,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_OSB",
Packit Service a1973e
    .desc = "OSB snoop broadcast",
Packit Service a1973e
    .code = 0x53,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_osb),
Packit Service a1973e
    .umasks  = hswep_unc_h_osb,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_OSB_EDR",
Packit Service a1973e
    .desc = "OSB early data return",
Packit Service a1973e
    .code = 0x54,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_osb_edr),
Packit Service a1973e
    .umasks  = hswep_unc_h_osb_edr,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_RING_AD_USED",
Packit Service a1973e
    .desc = "AD ring in use",
Packit Service a1973e
    .code = 0x3e,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_ring_ad_used),
Packit Service a1973e
    .umasks  = hswep_unc_h_ring_ad_used,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_RING_AK_USED",
Packit Service a1973e
    .desc = "AK ring in use",
Packit Service a1973e
    .code = 0x3f,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_ring_ad_used), /* shared */
Packit Service a1973e
    .umasks  = hswep_unc_h_ring_ad_used,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_RING_BL_USED",
Packit Service a1973e
    .desc = "BL ring in use",
Packit Service a1973e
    .code = 0x40,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_ring_ad_used), /* shared */
Packit Service a1973e
    .umasks  = hswep_unc_h_ring_ad_used,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_DIRECTORY_LAT_OPT",
Packit Service a1973e
    .desc = "Directory latency optimization data return path taken",
Packit Service a1973e
    .code = 0x41,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
Packit Service a1973e
  { .name = "UNC_H_SNOOP_RESP_RECV_LOCAL",
Packit Service a1973e
    .desc = "Snoop responses received local",
Packit Service a1973e
    .code = 0x60,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snp_resp_recv_local),
Packit Service a1973e
    .umasks  = hswep_unc_h_snp_resp_recv_local,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SNP_RESP_RECV_LOCAL",
Packit Service a1973e
    .desc = "Snoop responses received local",
Packit Service a1973e
    .code = 0x60,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .equiv = "UNC_H_SNOOP_RESP_RECV_LOCAL",
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snp_resp_recv_local),
Packit Service a1973e
    .umasks  = hswep_unc_h_snp_resp_recv_local,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_BL_OCCUPANCY",
Packit Service a1973e
    .desc = "BL Egress occupancy",
Packit Service a1973e
    .code = 0x34,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_bl_occupancy),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_bl_occupancy,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SNOOP_RESP",
Packit Service a1973e
    .desc = "Snoop responses received",
Packit Service a1973e
    .code = 0x21,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snoop_resp),
Packit Service a1973e
    .umasks  = hswep_unc_h_snoop_resp
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_HITME_HIT",
Packit Service a1973e
    .desc = "Hits in the HitMe cache",
Packit Service a1973e
    .code = 0x71,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_hitme_hit),
Packit Service a1973e
    .umasks  = hswep_unc_h_hitme_hit
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_HITME_HIT_PV_BITS_SET",
Packit Service a1973e
    .desc = "Number of PV bits set on HitMe cache hits",
Packit Service a1973e
    .code = 0x72,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_hitme_hit_pv_bits_set),
Packit Service a1973e
    .umasks  = hswep_unc_h_hitme_hit_pv_bits_set
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_HITME_LOOKUP",
Packit Service a1973e
    .desc = "Number of accesses to HitMe cache",
Packit Service a1973e
    .code = 0x70,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_hitme_hit), /* shared with hswep_unc_h_hitme_hit */
Packit Service a1973e
    .umasks  = hswep_unc_h_hitme_hit
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SBO0_CREDIT_ACQUIRED",
Packit Service a1973e
    .desc = "SBO0 credits acquired",
Packit Service a1973e
    .code = 0x68,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_sbo0_credits_acquired),
Packit Service a1973e
    .umasks  = hswep_unc_h_sbo0_credits_acquired,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SBO0_CREDIT_OCCUPANCY",
Packit Service a1973e
    .desc = "SBO0 credits occupancy",
Packit Service a1973e
    .code = 0x6a,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_sbo0_credits_acquired),
Packit Service a1973e
    .umasks  = hswep_unc_h_sbo0_credits_acquired, /* shared with hswep_unc_h_sbo0_credits_acquired */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SBO1_CREDIT_ACQUIRED",
Packit Service a1973e
    .desc = "SBO1 credits acquired",
Packit Service a1973e
    .code = 0x69,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_sbo0_credits_acquired),
Packit Service a1973e
    .umasks  = hswep_unc_h_sbo0_credits_acquired,/* shared with hswep_unc_h_sbo0_credits_acquired */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SBO0_CREDIT_OCCUPANCY",
Packit Service a1973e
    .desc = "SBO1 credits occupancy",
Packit Service a1973e
    .code = 0x6b,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_sbo0_credits_acquired),
Packit Service a1973e
    .umasks  = hswep_unc_h_sbo0_credits_acquired,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SNOOPS_RSP_AFTER_DATA",
Packit Service a1973e
    .desc = "Number of reads when the snoops was on the critical path to the data return",
Packit Service a1973e
    .code = 0xa,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snoops_rsp_after_data),
Packit Service a1973e
    .umasks  = hswep_unc_h_snoops_rsp_after_data,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SNOOPS_CYCLES_NE",
Packit Service a1973e
    .desc = "Number of cycles when one or more snoops are outstanding",
Packit Service a1973e
    .code = 0x8,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snoops_cycles_ne),
Packit Service a1973e
    .umasks  = hswep_unc_h_snoops_cycles_ne,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_SNOOPS_OCCUPANCY",
Packit Service a1973e
    .desc = "Tracker snoops outstanding accumulator",
Packit Service a1973e
    .code = 0x9,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snoops_rsp_after_data),
Packit Service a1973e
    .umasks  = hswep_unc_h_snoops_rsp_after_data, /* shared */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_STALL_NO_SBO_CREDIT",
Packit Service a1973e
    .desc = "Stalls on no SBO credits",
Packit Service a1973e
    .code = 0x6c,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_stall_no_sbo_credit),
Packit Service a1973e
    .umasks  = hswep_unc_h_stall_no_sbo_credit,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TRACKER_CYCLES_NE",
Packit Service a1973e
    .desc = "Tracker cycles not empty",
Packit Service a1973e
    .code = 0x3,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snoops_cycles_ne),
Packit Service a1973e
    .umasks  = hswep_unc_h_snoops_cycles_ne, /* shared */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TRACKER_OCCUPANCY",
Packit Service a1973e
    .desc = "Tracker occupancy accumulator",
Packit Service a1973e
    .code = 0x4,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_tracker_occupancy),
Packit Service a1973e
    .umasks  = hswep_unc_h_tracker_occupancy,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TRACKER_PENDING_OCCUPANCY",
Packit Service a1973e
    .desc = "Data pending occupancy accumulator",
Packit Service a1973e
    .code = 0x5,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_snoops_rsp_after_data),
Packit Service a1973e
    .umasks  = hswep_unc_h_snoops_rsp_after_data, /* shared */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_H_TXR_STARVED",
Packit Service a1973e
    .desc = "Injection starvation",
Packit Service a1973e
    .code = 0x6d,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = HSWEP_UNC_HA_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(hswep_unc_h_txr_starved),
Packit Service a1973e
    .umasks  = hswep_unc_h_txr_starved,
Packit Service a1973e
  },
Packit Service a1973e
};