Blame src/libpfm4/lib/events/intel_ivbep_unc_imc_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: ivbep_unc_imc (Intel IvyBridge-EP IMC uncore PMU)
Packit Service a1973e
 */
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_cas_count[]={
Packit Service a1973e
  { .uname = "ALL",
Packit Service a1973e
    .udesc  = "Counts total number of DRAM CAS commands issued on this channel",
Packit Service a1973e
    .ucode  = 0xf00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD",
Packit Service a1973e
    .udesc  = "Counts all DRAM reads on this channel, incl. underfills",
Packit Service a1973e
    .ucode  = 0x300,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD_REG",
Packit Service a1973e
    .udesc  = "Counts number of DRAM read CAS commands issued on this channel, incl. regular read CAS and those with implicit precharge",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD_UNDERFILL",
Packit Service a1973e
    .udesc  = "Counts number of underfill reads issued by the memory controller",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WR",
Packit Service a1973e
    .udesc  = "Counts number of DRAM write CAS commands on this channel",
Packit Service a1973e
    .ucode  = 0xc00,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WR_RMM",
Packit Service a1973e
    .udesc  = "Counts Number of opportunistic DRAM write CAS commands issued on this channel",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WR_WMM",
Packit Service a1973e
    .udesc  = "Counts number of DRAM write CAS commands issued on this channel while in Write-Major mode",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD_RMM",
Packit Service a1973e
    .udesc  = "Counts Number of opportunistic DRAM read CAS commands issued on this channel",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD_WMM",
Packit Service a1973e
    .udesc  = "Counts number of DRAM read CAS commands issued on this channel while in Write-Major mode",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_dram_refresh[]={
Packit Service a1973e
  { .uname = "HIGH",
Packit Service a1973e
    .udesc  = "TBD",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PANIC",
Packit Service a1973e
    .udesc  = "TBD",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_major_modes[]={
Packit Service a1973e
  { .uname = "ISOCH",
Packit Service a1973e
    .udesc  = "Counts cycles in ISOCH Major mode",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PARTIAL",
Packit Service a1973e
    .udesc  = "Counts cycles in Partial Major mode",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "READ",
Packit Service a1973e
    .udesc  = "Counts cycles in Read Major mode",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WRITE",
Packit Service a1973e
    .udesc  = "Counts cycles in Write Major mode",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_power_cke_cycles[]={
Packit Service a1973e
  { .uname = "RANK0",
Packit Service a1973e
    .udesc  = "Count cycles for rank 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK1",
Packit Service a1973e
    .udesc  = "Count cycles for rank 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK2",
Packit Service a1973e
    .udesc  = "Count cycles for rank 2",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK3",
Packit Service a1973e
    .udesc  = "Count cycles for rank 3",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK4",
Packit Service a1973e
    .udesc  = "Count cycles for rank 4",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK5",
Packit Service a1973e
    .udesc  = "Count cycles for rank 5",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK6",
Packit Service a1973e
    .udesc  = "Count cycles for rank 6",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
    .uflags = INTEL_X86_NCOMBO,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RANK7",
Packit Service a1973e
    .udesc  = "Count cycles for rank 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 ivbep_unc_m_preemption[]={
Packit Service a1973e
  { .uname = "RD_PREEMPT_RD",
Packit Service a1973e
    .udesc  = "Counts read over read preemptions",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD_PREEMPT_WR",
Packit Service a1973e
    .udesc  = "Counts read over write preemptions",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_pre_count[]={
Packit Service a1973e
  { .uname = "PAGE_CLOSE",
Packit Service a1973e
    .udesc  = "Counts number of DRAM precharge commands sent on this channel as a result of the page close counter expiring",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PAGE_MISS",
Packit Service a1973e
    .udesc  = "Counts number of DRAM precharge commands sent on this channel as a result of page misses",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RD",
Packit Service a1973e
    .udesc  = "Precharge due to read",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WR",
Packit Service a1973e
    .udesc  = "Precharge due to write",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BYP",
Packit Service a1973e
    .udesc  = "Precharge due to bypass",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_act_count[]={
Packit Service a1973e
  { .uname = "RD",
Packit Service a1973e
    .udesc  = "Activate due to read",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "WR",
Packit Service a1973e
    .udesc  = "Activate due to write",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BYP",
Packit Service a1973e
    .udesc  = "Activate due to bypass",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_byp_cmds[]={
Packit Service a1973e
  { .uname = "ACT",
Packit Service a1973e
    .udesc  = "ACT command issued by 2 cycle bypass",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "CAS",
Packit Service a1973e
    .udesc  = "CAS command issued by 2 cycle bypass",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PRE",
Packit Service a1973e
    .udesc  = "PRE command issued by 2 cycle bypass",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_rd_cas_prio[]={
Packit Service a1973e
  { .uname = "LOW",
Packit Service a1973e
    .udesc  = "Read CAS issued with low priority",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "MED",
Packit Service a1973e
    .udesc  = "Read CAS issued with medium priority",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "HIGH",
Packit Service a1973e
    .udesc  = "Read CAS issued with high priority",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "PANIC",
Packit Service a1973e
    .udesc  = "Read CAS issued with panic non isoch priority (starved)",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_rd_cas_rank0[]={
Packit Service a1973e
  { .uname = "BANK0",
Packit Service a1973e
    .udesc  = "Bank 0",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK1",
Packit Service a1973e
    .udesc  = "Bank 1",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK2",
Packit Service a1973e
    .udesc  = "Bank 2",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK3",
Packit Service a1973e
    .udesc  = "Bank 3",
Packit Service a1973e
    .ucode  = 0x800,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK4",
Packit Service a1973e
    .udesc  = "Bank 4",
Packit Service a1973e
    .ucode  = 0x1000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK5",
Packit Service a1973e
    .udesc  = "Bank 5",
Packit Service a1973e
    .ucode  = 0x2000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK6",
Packit Service a1973e
    .udesc  = "Bank 6",
Packit Service a1973e
    .ucode  = 0x4000,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "BANK7",
Packit Service a1973e
    .udesc  = "Bank 7",
Packit Service a1973e
    .ucode  = 0x8000,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_vmse_wr_push[]={
Packit Service a1973e
  { .uname = "WMM",
Packit Service a1973e
    .udesc  = "VMSE write push issued in WMM",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "RMM",
Packit Service a1973e
    .udesc  = "VMSE write push issued in RMM",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
static const intel_x86_umask_t ivbep_unc_m_wmm_to_rmm[]={
Packit Service a1973e
  { .uname = "LOW_THRES",
Packit Service a1973e
    .udesc  = "Transition from WMM to RMM because of starve counter",
Packit Service a1973e
    .ucode  = 0x100,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "STARVE",
Packit Service a1973e
    .udesc  = "TBD",
Packit Service a1973e
    .ucode  = 0x200,
Packit Service a1973e
  },
Packit Service a1973e
  { .uname = "VMSE_RETRY",
Packit Service a1973e
    .udesc  = "TBD",
Packit Service a1973e
    .ucode  = 0x400,
Packit Service a1973e
  }
Packit Service a1973e
};
Packit Service a1973e
Packit Service a1973e
Packit Service a1973e
static const intel_x86_entry_t intel_ivbep_unc_m_pe[]={
Packit Service a1973e
  { .name   = "UNC_M_CLOCKTICKS",
Packit Service a1973e
    .desc   = "IMC Uncore clockticks (fixed counter)",
Packit Service a1973e
    .modmsk = 0x0,
Packit Service a1973e
    .cntmsk = 0x100000000ull,
Packit Service a1973e
    .code   = 0xff, /* perf pseudo encoding for fixed counter */
Packit Service a1973e
    .flags  = INTEL_X86_FIXED,
Packit Service a1973e
  },
Packit Service a1973e
  { .name   = "UNC_M_DCLOCKTICKS",
Packit Service a1973e
    .desc   = "IMC Uncore clockticks (generic counters)",
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .code   = 0x00, /*encoding for generic counters */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_ACT_COUNT",
Packit Service a1973e
    .desc = "DRAM Activate Count",
Packit Service a1973e
    .code = 0x1,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_act_count),
Packit Service a1973e
    .umasks  = ivbep_unc_m_act_count
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_CAS_COUNT",
Packit Service a1973e
    .desc = "DRAM RD_CAS and WR_CAS Commands.",
Packit Service a1973e
    .code = 0x4,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_cas_count),
Packit Service a1973e
    .umasks  = ivbep_unc_m_cas_count
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_DRAM_PRE_ALL",
Packit Service a1973e
    .desc = "DRAM Precharge All Commands",
Packit Service a1973e
    .code = 0x6,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_DRAM_REFRESH",
Packit Service a1973e
    .desc = "Number of DRAM Refreshes Issued",
Packit Service a1973e
    .code = 0x5,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_dram_refresh),
Packit Service a1973e
    .umasks  = ivbep_unc_m_dram_refresh
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_ECC_CORRECTABLE_ERRORS",
Packit Service a1973e
    .desc = "ECC Correctable Errors",
Packit Service a1973e
    .code = 0x9,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_MAJOR_MODES",
Packit Service a1973e
    .desc = "Cycles in a Major Mode",
Packit Service a1973e
    .code = 0x7,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_major_modes),
Packit Service a1973e
    .umasks  = ivbep_unc_m_major_modes
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_POWER_CHANNEL_DLLOFF",
Packit Service a1973e
    .desc = "Channel DLLOFF Cycles",
Packit Service a1973e
    .code = 0x84,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_POWER_CHANNEL_PPD",
Packit Service a1973e
    .desc = "Channel PPD Cycles",
Packit Service a1973e
    .code = 0x85,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_POWER_CKE_CYCLES",
Packit Service a1973e
    .desc = "CKE_ON_CYCLES by Rank",
Packit Service a1973e
    .code = 0x83,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_power_cke_cycles),
Packit Service a1973e
    .umasks  = ivbep_unc_m_power_cke_cycles
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_POWER_CRITICAL_THROTTLE_CYCLES",
Packit Service a1973e
    .desc = "Critical Throttle Cycles",
Packit Service a1973e
    .code = 0x86,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_POWER_SELF_REFRESH",
Packit Service a1973e
    .desc = "Clock-Enabled Self-Refresh",
Packit Service a1973e
    .code = 0x43,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_POWER_THROTTLE_CYCLES",
Packit Service a1973e
    .desc = "Throttle Cycles",
Packit Service a1973e
    .code = 0x41,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_power_cke_cycles),
Packit Service a1973e
    .umasks  = ivbep_unc_m_power_cke_cycles /* identical to snbep_unc_m_power_cke_cycles */
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_PREEMPTION",
Packit Service a1973e
    .desc = "Read Preemption Count",
Packit Service a1973e
    .code = 0x8,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_preemption),
Packit Service a1973e
    .umasks  = ivbep_unc_m_preemption
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_PRE_COUNT",
Packit Service a1973e
    .desc = "DRAM Precharge commands.",
Packit Service a1973e
    .code = 0x2,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_pre_count),
Packit Service a1973e
    .umasks  = ivbep_unc_m_pre_count
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RPQ_CYCLES_NE",
Packit Service a1973e
    .desc = "Read Pending Queue Not Empty",
Packit Service a1973e
    .code = 0x11,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RPQ_INSERTS",
Packit Service a1973e
    .desc = "Read Pending Queue Allocations",
Packit Service a1973e
    .code = 0x10,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WPQ_CYCLES_FULL",
Packit Service a1973e
    .desc = "Write Pending Queue Full Cycles",
Packit Service a1973e
    .code = 0x22,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WPQ_CYCLES_NE",
Packit Service a1973e
    .desc = "Write Pending Queue Not Empty",
Packit Service a1973e
    .code = 0x21,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WPQ_INSERTS",
Packit Service a1973e
    .desc = "Write Pending Queue Allocations",
Packit Service a1973e
    .code = 0x20,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WPQ_READ_HIT",
Packit Service a1973e
    .desc = "Write Pending Queue CAM Match",
Packit Service a1973e
    .code = 0x23,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WPQ_WRITE_HIT",
Packit Service a1973e
    .desc = "Write Pending Queue CAM Match",
Packit Service a1973e
    .code = 0x24,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_BYP_CMDS",
Packit Service a1973e
    .desc = "Bypass command event",
Packit Service a1973e
    .code = 0xa1,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_byp_cmds),
Packit Service a1973e
    .umasks  = ivbep_unc_m_byp_cmds
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_PRIO",
Packit Service a1973e
    .desc = "Read CAS priority",
Packit Service a1973e
    .code = 0xa0,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_prio),
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_prio
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK0",
Packit Service a1973e
    .desc = "Read CAS access to Rank 0",
Packit Service a1973e
    .code = 0xb0,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0),
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK1",
Packit Service a1973e
    .desc = "Read CAS access to Rank 1",
Packit Service a1973e
    .code = 0xb1,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK2",
Packit Service a1973e
    .desc = "Read CAS access to Rank 2",
Packit Service a1973e
    .code = 0xb2,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK3",
Packit Service a1973e
    .desc = "Read CAS access to Rank 3",
Packit Service a1973e
    .code = 0xb3,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK4",
Packit Service a1973e
    .desc = "Read CAS access to Rank 4",
Packit Service a1973e
    .code = 0xb4,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK5",
Packit Service a1973e
    .desc = "Read CAS access to Rank 5",
Packit Service a1973e
    .code = 0xb5,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK6",
Packit Service a1973e
    .desc = "Read CAS access to Rank 6",
Packit Service a1973e
    .code = 0xb6,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_RD_CAS_RANK7",
Packit Service a1973e
    .desc = "Read CAS access to Rank 7",
Packit Service a1973e
    .code = 0xb7,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_VMSE_MXB_WR_OCCUPANCY",
Packit Service a1973e
    .desc = "VMSE MXB write buffer occupancy",
Packit Service a1973e
    .code = 0x91,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_VMSE_WR_PUSH",
Packit Service a1973e
    .desc = "VMSE WR push issued",
Packit Service a1973e
    .code = 0x90,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_vmse_wr_push),
Packit Service a1973e
    .umasks  = ivbep_unc_m_vmse_wr_push
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WMM_TO_RMM",
Packit Service a1973e
    .desc = "Transitions from WMM to RMM because of low threshold",
Packit Service a1973e
    .code = 0xc0,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_wmm_to_rmm),
Packit Service a1973e
    .umasks  = ivbep_unc_m_wmm_to_rmm
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WRONG_MM",
Packit Service a1973e
    .desc = "Not getting the requested major mode",
Packit Service a1973e
    .code = 0xc1,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK0",
Packit Service a1973e
    .desc = "Write CAS access to Rank 0",
Packit Service a1973e
    .code = 0xb8,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK1",
Packit Service a1973e
    .desc = "Write CAS access to Rank 1",
Packit Service a1973e
    .code = 0xb9,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK2",
Packit Service a1973e
    .desc = "Write CAS access to Rank 2",
Packit Service a1973e
    .code = 0xba,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK3",
Packit Service a1973e
    .desc = "Write CAS access to Rank 3",
Packit Service a1973e
    .code = 0xbb,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK4",
Packit Service a1973e
    .desc = "Write CAS access to Rank 4",
Packit Service a1973e
    .code = 0xbc,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK5",
Packit Service a1973e
    .desc = "Write CAS access to Rank 5",
Packit Service a1973e
    .code = 0xbd,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK6",
Packit Service a1973e
    .desc = "Write CAS access to Rank 6",
Packit Service a1973e
    .code = 0xbe,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
  { .name = "UNC_M_WR_CAS_RANK7",
Packit Service a1973e
    .desc = "Write CAS access to Rank 7",
Packit Service a1973e
    .code = 0xbf,
Packit Service a1973e
    .cntmsk = 0xf,
Packit Service a1973e
    .ngrp = 1,
Packit Service a1973e
    .modmsk = IVBEP_UNC_IMC_ATTRS,
Packit Service a1973e
    .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_m_rd_cas_rank0), /* shared */
Packit Service a1973e
    .umasks  = ivbep_unc_m_rd_cas_rank0
Packit Service a1973e
  },
Packit Service a1973e
};