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

Packit 577717
/*
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
 * FILE AUTOMATICALLY GENERATED from download.01.org/perfmon/GLM/Goldmont_core_V6.json
Packit 577717
 * PMU: glm (Intel Goldmont)
Packit 577717
 */
Packit 577717
static const intel_x86_umask_t glm_icache[]={
Packit 577717
    { .uname   = "HIT",
Packit 577717
      .udesc   = "References per ICache line that are available in the ICache (hit). This event counts differently than Intel processors based on Silvermont microarchitecture",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "MISSES",
Packit 577717
      .udesc   = "References per ICache line that are not available in the ICache (miss). This event counts differently than Intel processors based on Silvermont microarchitecture",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "ACCESSES",
Packit 577717
      .udesc   = "References per ICache line. This event counts differently than Intel processors based on Silvermont microarchitecture",
Packit 577717
      .ucode   = 0x0300,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_l2_reject_xq[]={
Packit 577717
    { .uname   = "ALL",
Packit 577717
      .udesc   = "Requests rejected by the XQ",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_hw_interrupts[]={
Packit 577717
    { .uname   = "RECEIVED",
Packit 577717
      .udesc   = "Hardware interrupts received",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "PENDING_AND_MASKED",
Packit 577717
      .udesc   = "Cycles pending interrupts are masked",
Packit 577717
      .ucode   = 0x0400,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_br_misp_retired[]={
Packit 577717
    { .uname   = "ALL_BRANCHES",
Packit 577717
      .udesc   = "Retired mispredicted branch instructions (Precise Event)",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "JCC",
Packit 577717
      .udesc   = "Retired mispredicted conditional branch instructions (Precise Event)",
Packit 577717
      .ucode   = 0x7e00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "TAKEN_JCC",
Packit 577717
      .udesc   = "Retired mispredicted conditional branch instructions that were taken (Precise Event)",
Packit 577717
      .ucode   = 0xfe00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "IND_CALL",
Packit 577717
      .udesc   = "Retired mispredicted near indirect call instructions (Precise Event)",
Packit 577717
      .ucode   = 0xfb00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "RETURN",
Packit 577717
      .udesc   = "Retired mispredicted near return instructions (Precise Event)",
Packit 577717
      .ucode   = 0xf700,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "NON_RETURN_IND",
Packit 577717
      .udesc   = "Retired mispredicted instructions of near indirect Jmp or near indirect call (Precise Event)",
Packit 577717
      .ucode   = 0xeb00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_decode_restriction[]={
Packit 577717
    { .uname   = "PREDECODE_WRONG",
Packit 577717
      .udesc   = "Decode restrictions due to predicting wrong instruction length",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_misalign_mem_ref[]={
Packit 577717
    { .uname   = "LOAD_PAGE_SPLIT",
Packit 577717
      .udesc   = "Load uops that split a page (Precise Event)",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "STORE_PAGE_SPLIT",
Packit 577717
      .udesc   = "Store uops that split a page (Precise Event)",
Packit 577717
      .ucode   = 0x0400,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_inst_retired[]={
Packit 577717
    { .uname   = "ANY_P",
Packit 577717
      .udesc   = "Counts the number of instructions that retire execution. For instructions that consist of multiple uops, this event counts the retirement of the last uop of the instruction. The event continues counting during hardware interrupts, traps, and inside interrupt handlers.  This is an architectural performance event.  This event uses a (_P)rogrammable general purpose performance counter. *This event is Precise Event capable:  The EventingRIP field in the PEBS record is precise to the address of the instruction which caused the event.  Note: Because PEBS records can be collected only on IA32_PMC0, only one event can use the PEBS facility at a time.",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_issue_slots_not_consumed[]={
Packit 577717
    { .uname   = "RESOURCE_FULL",
Packit 577717
      .udesc   = "Unfilled issue slots per cycle because of a full resource in the backend",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "RECOVERY",
Packit 577717
      .udesc   = "Unfilled issue slots per cycle to recover",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "ANY",
Packit 577717
      .udesc   = "Unfilled issue slots per cycle",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_itlb[]={
Packit 577717
    { .uname   = "MISS",
Packit 577717
      .udesc   = "ITLB misses",
Packit 577717
      .ucode   = 0x0400,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_longest_lat_cache[]={
Packit 577717
    { .uname   = "REFERENCE",
Packit 577717
      .udesc   = "L2 cache requests",
Packit 577717
      .ucode   = 0x4f00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "MISS",
Packit 577717
      .udesc   = "L2 cache request misses",
Packit 577717
      .ucode   = 0x4100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_mem_load_uops_retired[]={
Packit 577717
    { .uname   = "L1_HIT",
Packit 577717
      .udesc   = "Load uops retired that hit L1 data cache (Precise Event)",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "L1_MISS",
Packit 577717
      .udesc   = "Load uops retired that missed L1 data cache (Precise Event)",
Packit 577717
      .ucode   = 0x0800,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_HIT",
Packit 577717
      .udesc   = "Load uops retired that hit L2 (Precise Event)",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS",
Packit 577717
      .udesc   = "Load uops retired that missed L2 (Precise Event)",
Packit 577717
      .ucode   = 0x1000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "HITM",
Packit 577717
      .udesc   = "Memory uop retired where cross core or cross module HITM occurred (Precise Event)",
Packit 577717
      .ucode   = 0x2000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "WCB_HIT",
Packit 577717
      .udesc   = "Loads retired that hit WCB (Precise Event)",
Packit 577717
      .ucode   = 0x4000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "DRAM_HIT",
Packit 577717
      .udesc   = "Loads retired that came from DRAM (Precise Event)",
Packit 577717
      .ucode   = 0x8000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_ld_blocks[]={
Packit 577717
    { .uname   = "ALL_BLOCK",
Packit 577717
      .udesc   = "Loads blocked (Precise Event)",
Packit 577717
      .ucode   = 0x1000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "UTLB_MISS",
Packit 577717
      .udesc   = "Loads blocked because address in not in the UTLB (Precise Event)",
Packit 577717
      .ucode   = 0x0800,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "STORE_FORWARD",
Packit 577717
      .udesc   = "Loads blocked due to store forward restriction (Precise Event)",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "DATA_UNKNOWN",
Packit 577717
      .udesc   = "Loads blocked due to store data not ready (Precise Event)",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "4K_ALIAS",
Packit 577717
      .udesc   = "Loads blocked because address has 4k partial address false dependence (Precise Event)",
Packit 577717
      .ucode   = 0x0400,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_dl1[]={
Packit 577717
    { .uname   = "DIRTY_EVICTION",
Packit 577717
      .udesc   = "L1 Cache evictions for dirty data",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_cycles_div_busy[]={
Packit 577717
    { .uname   = "ALL",
Packit 577717
      .udesc   = "Cycles a divider is busy",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "IDIV",
Packit 577717
      .udesc   = "Cycles the integer divide unit is busy",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "FPDIV",
Packit 577717
      .udesc   = "Cycles the FP divide unit is busy",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_ms_decoded[]={
Packit 577717
    { .uname   = "MS_ENTRY",
Packit 577717
      .udesc   = "MS decode starts",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_uops_retired[]={
Packit 577717
    { .uname   = "ANY",
Packit 577717
      .udesc   = "Uops retired (Precise Event)",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "MS",
Packit 577717
      .udesc   = "MS uops retired (Precise Event)",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_offcore_response_0[]={
Packit 577717
    { .uname   = "DMND_DATA_RD",
Packit 577717
      .udesc   = "Request: number of demand and DCU prefetch data reads of full and partial cachelines as well as demand data page table entry cacheline reads. Does not count L2 data read prefetches or instruction fetches",
Packit 577717
      .ucode   = 1ULL << (0 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "DMND_RFO",
Packit 577717
      .udesc   = "Request: number of demand and DCU prefetch reads for ownership (RFO) requests generated by a write to data cacheline. Does not count L2 RFO prefetches",
Packit 577717
      .ucode   = 1ULL << (1 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "DMND_CODE_RD",
Packit 577717
      .udesc   = "Request: number of demand and DCU prefetch instruction cacheline reads. Does not count L2 code read prefetches",
Packit 577717
      .ucode   = 1ULL << (2 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "WB",
Packit 577717
      .udesc   = "Request: number of writebacks (modified to exclusive) transactions",
Packit 577717
      .ucode   = 1ULL << (3 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PF_DATA_RD",
Packit 577717
      .udesc   = "Request: number of data cacheline reads generated by L2 prefetcher",
Packit 577717
      .ucode   = 1ULL << (4 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PF_RFO",
Packit 577717
      .udesc   = "Request: number of RFO requests generated by L2 prefetcher",
Packit 577717
      .ucode   = 1ULL << (5 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PARTIAL_READS",
Packit 577717
      .udesc   = "Request: number of partil reads",
Packit 577717
      .ucode   = 1ULL << (7 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PARTIAL_WRITES",
Packit 577717
      .udesc   = "Request: number of partial writes",
Packit 577717
      .ucode   = 1ULL << (8 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "UC_CODE_READS",
Packit 577717
      .udesc   = "Request: number of uncached code reads",
Packit 577717
      .ucode   = 1ULL << (9 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "BUS_LOCKS",
Packit 577717
      .udesc   = "Request: number of bus lock and split lock requests",
Packit 577717
      .ucode   = 1ULL << (10 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "FULL_STRM_ST",
Packit 577717
      .udesc   = "Request: number of streaming store requests for full cacheline",
Packit 577717
      .ucode   = 1ULL << (11 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "SW_PF",
Packit 577717
      .udesc   = "Request: number of cacheline requests due to software prefetch",
Packit 577717
      .ucode   = 1ULL << (12 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PF_L1_DATA_RD",
Packit 577717
      .udesc   = "Request: number of data cacheline reads generated by L1 data prefetcher",
Packit 577717
      .ucode   = 1ULL << (13 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PARTIAL_STRM_ST",
Packit 577717
      .udesc   = "Request: number of streaming store requests for partial cacheline",
Packit 577717
      .ucode   = 1ULL << (14 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "STRM_ST",
Packit 577717
      .udesc   = "Request: number of streaming store requests for partial or full cacheline",
Packit 577717
      .ucode   = (1ULL << (14 + 8)) | (1ULL << (11+8)),
Packit 577717
      .uequiv  = "FULL_STRM_ST:PARTIAL_STRM_ST",
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_REQUEST",
Packit 577717
      .udesc   = "Request: combination of all request umasks",
Packit 577717
      .ucode   = 1ULL << (15 + 8),
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_PF_DATA_RD",
Packit 577717
      .udesc   = "Request: number of prefetch data reads",
Packit 577717
      .ucode   = (1ULL << (4+8)) | (1ULL << (12+8)) | (1ULL << (13+8)),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
      .uequiv  = "PF_DATA_RD:SW_PF:PF_L1_DATA_RD",
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_RFO",
Packit 577717
      .udesc   = "Request: number of RFO",
Packit 577717
      .ucode   = (1ULL << (1+8)) | (1ULL << (5+8)),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
      .uequiv  = "DMND_RFO:PF_RFO",
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_RESPONSE",
Packit 577717
      .udesc   = "Response: any response type",
Packit 577717
      .ucode   = 1ULL << (16 + 8),
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_EXCL_GRP_GT,
Packit 577717
      .grpid   = 1,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_HIT",
Packit 577717
      .udesc   = "Supplier: counts L2 hits",
Packit 577717
      .ucode   = 1ULL << (18 + 8),
Packit 577717
      .grpid   = 1,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_SNP_MISS_OR_NO_SNOOP_NEEDED",
Packit 577717
      .udesc   = "Snoop: counts number true misses to this processor module for which a snoop request missed the other processor module or no snoop was needed",
Packit 577717
      .ucode   = 1ULL << (33 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_HIT_OTHER_CORE_NO_FWD",
Packit 577717
      .udesc   = "Snoop: counts number of times a snoop request hits the other processor module but no data forwarding is needed",
Packit 577717
      .ucode   = 1ULL << (34 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_HITM_OTHER_CORE",
Packit 577717
      .udesc   = "Snoop: counts number of times a snoop request hits in the other processor module or other core's L1 where a modified copy (M-state) is found",
Packit 577717
      .ucode   = 1ULL << (36 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_SNP_NON_DRAM",
Packit 577717
      .udesc   = "Snoop:  counts number of times target was a non-DRAM system address. This includes MMIO transactions",
Packit 577717
      .ucode   = 1ULL << (37 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_SNP_ANY",
Packit 577717
      .udesc   = "Snoop: any snoop reason",
Packit 577717
      .ucode   = 0x1bULL << (33 + 8),
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .uequiv  = "L2_MISS_SNP_MISS_OR_NO_SNOOP_NEEDED:L2_MISS_HIT_OTHER_CORE_NO_FWD:L2_MISS_HITM_OTHER_CORE:L2_MISS_SNP_NON_DRAM",
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "OUTSTANDING",
Packit 577717
      .udesc   = "Outstanding request:  counts weighted cycles of outstanding offcore requests of the request type specified in the bits 15:0 of offcore_response from the time the XQ receives the request and any response received. Bits 37:16 must be set to 0. This is only available for offcore_response_0",
Packit 577717
      .ucode   = 1ULL << (38 + 8),
Packit 577717
      .uflags  = INTEL_X86_GRP_DFL_NONE | INTEL_X86_EXCL_GRP_BUT_0, /* can only be combined with request type bits (grpid = 0) */
Packit 577717
      .grpid   = 3,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_offcore_response_1[]={
Packit 577717
    { .uname   = "DMND_DATA_RD",
Packit 577717
      .udesc   = "Request: number of demand and DCU prefetch data reads of full and partial cachelines as well as demand data page table entry cacheline reads. Does not count L2 data read prefetches or instruction fetches",
Packit 577717
      .ucode   = 1ULL << (0 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "DMND_RFO",
Packit 577717
      .udesc   = "Request: number of demand and DCU prefetch reads for ownership (RFO) requests generated by a write to data cacheline. Does not count L2 RFO prefetches",
Packit 577717
      .ucode   = 1ULL << (1 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "DMND_CODE_RD",
Packit 577717
      .udesc   = "Request: number of demand and DCU prefetch instruction cacheline reads. Does not count L2 code read prefetches",
Packit 577717
      .ucode   = 1ULL << (2 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "WB",
Packit 577717
      .udesc   = "Request: number of writebacks (modified to exclusive) transactions",
Packit 577717
      .ucode   = 1ULL << (3 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PF_DATA_RD",
Packit 577717
      .udesc   = "Request: number of data cacheline reads generated by L2 prefetcher",
Packit 577717
      .ucode   = 1ULL << (4 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PF_RFO",
Packit 577717
      .udesc   = "Request: number of RFO requests generated by L2 prefetcher",
Packit 577717
      .ucode   = 1ULL << (5 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PARTIAL_READS",
Packit 577717
      .udesc   = "Request: number of partil reads",
Packit 577717
      .ucode   = 1ULL << (7 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PARTIAL_WRITES",
Packit 577717
      .udesc   = "Request: number of partial writes",
Packit 577717
      .ucode   = 1ULL << (8 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "UC_CODE_READS",
Packit 577717
      .udesc   = "Request: number of uncached code reads",
Packit 577717
      .ucode   = 1ULL << (9 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "BUS_LOCKS",
Packit 577717
      .udesc   = "Request: number of bus lock and split lock requests",
Packit 577717
      .ucode   = 1ULL << (10 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "FULL_STRM_ST",
Packit 577717
      .udesc   = "Request: number of streaming store requests for full cacheline",
Packit 577717
      .ucode   = 1ULL << (11 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "SW_PF",
Packit 577717
      .udesc   = "Request: number of cacheline requests due to software prefetch",
Packit 577717
      .ucode   = 1ULL << (12 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PF_L1_DATA_RD",
Packit 577717
      .udesc   = "Request: number of data cacheline reads generated by L1 data prefetcher",
Packit 577717
      .ucode   = 1ULL << (13 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "PARTIAL_STRM_ST",
Packit 577717
      .udesc   = "Request: number of streaming store requests for partial cacheline",
Packit 577717
      .ucode   = 1ULL << (14 + 8),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "STRM_ST",
Packit 577717
      .udesc   = "Request: number of streaming store requests for partial or full cacheline",
Packit 577717
      .ucode   = (1ULL << (14 + 8)) | (1ULL << (11+8)),
Packit 577717
      .uequiv  = "FULL_STRM_ST:PARTIAL_STRM_ST",
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_REQUEST",
Packit 577717
      .udesc   = "Request: combination of all request umasks",
Packit 577717
      .ucode   = 1ULL << (15 + 8),
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_PF_DATA_RD",
Packit 577717
      .udesc   = "Request: number of prefetch data reads",
Packit 577717
      .ucode   = (1ULL << (4+8)) | (1ULL << (12+8)) | (1ULL << (13+8)),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
      .uequiv  = "PF_DATA_RD:SW_PF:PF_L1_DATA_RD",
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_RFO",
Packit 577717
      .udesc   = "Request: number of RFO",
Packit 577717
      .ucode   = (1ULL << (1+8)) | (1ULL << (5+8)),
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
      .uequiv  = "DMND_RFO:PF_RFO",
Packit 577717
    },
Packit 577717
    { .uname   = "ANY_RESPONSE",
Packit 577717
      .udesc   = "Response: any response type",
Packit 577717
      .ucode   = 1ULL << (16 + 8),
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL | INTEL_X86_EXCL_GRP_GT,
Packit 577717
      .grpid   = 1,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_HIT",
Packit 577717
      .udesc   = "Supplier: counts L2 hits",
Packit 577717
      .ucode   = 1ULL << (18 + 8),
Packit 577717
      .grpid   = 1,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_SNP_MISS_OR_NO_SNOOP_NEEDED",
Packit 577717
      .udesc   = "Snoop: counts number true misses to this processor module for which a snoop request missed the other processor module or no snoop was needed",
Packit 577717
      .ucode   = 1ULL << (33 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_HIT_OTHER_CORE_NO_FWD",
Packit 577717
      .udesc   = "Snoop: counts number of times a snoop request hits the other processor module but no data forwarding is needed",
Packit 577717
      .ucode   = 1ULL << (34 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_HITM_OTHER_CORE",
Packit 577717
      .udesc   = "Snoop: counts number of times a snoop request hits in the other processor module or other core's L1 where a modified copy (M-state) is found",
Packit 577717
      .ucode   = 1ULL << (36 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_SNP_NON_DRAM",
Packit 577717
      .udesc   = "Snoop:  counts number of times target was a non-DRAM system address. This includes MMIO transactions",
Packit 577717
      .ucode   = 1ULL << (37 + 8),
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
    },
Packit 577717
    { .uname   = "L2_MISS_SNP_ANY",
Packit 577717
      .udesc   = "Snoop: any snoop reason",
Packit 577717
      .ucode   = 0xfULL << (33 + 8),
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 2,
Packit 577717
      .ucntmsk = 0xffull,
Packit 577717
      .uequiv  = "L2_MISS_SNP_MISS_OR_NO_SNOOP_NEEDED:L2_MISS_HIT_OTHER_CORE_NO_FWD:L2_MISS_HITM_OTHER_CORE:L2_MISS_SNP_NON_DRAM",
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_machine_clears[]={
Packit 577717
    { .uname   = "SMC",
Packit 577717
      .udesc   = "Self-Modifying Code detected",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "MEMORY_ORDERING",
Packit 577717
      .udesc   = "Machine cleas due to memory ordering issue",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "FP_ASSIST",
Packit 577717
      .udesc   = "Machine clears due to FP assists",
Packit 577717
      .ucode   = 0x0400,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "DISAMBIGUATION",
Packit 577717
      .udesc   = "Machine clears due to memory disambiguation",
Packit 577717
      .ucode   = 0x0800,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "ALL",
Packit 577717
      .udesc   = "All machine clears",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_br_inst_retired[]={
Packit 577717
    { .uname   = "ALL_BRANCHES",
Packit 577717
      .udesc   = "Retired branch instructions (Precise Event)",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "ALL_TAKEN_BRANCHES",
Packit 577717
      .udesc   = "Retired branch instructions (Precise Event)",
Packit 577717
      .ucode   = 0x8000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "JCC",
Packit 577717
      .udesc   = "Retired conditional branch instructions (Precise Event)",
Packit 577717
      .ucode   = 0x7e00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "TAKEN_JCC",
Packit 577717
      .udesc   = "Retired conditional branch instructions that were taken (Precise Event)",
Packit 577717
      .ucode   = 0xfe00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "CALL",
Packit 577717
      .udesc   = "Retired near call instructions (Precise Event)",
Packit 577717
      .ucode   = 0xf900,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "REL_CALL",
Packit 577717
      .udesc   = "Retired near relative call instructions (Precise Event)",
Packit 577717
      .ucode   = 0xfd00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "IND_CALL",
Packit 577717
      .udesc   = "Retired near indirect call instructions (Precise Event)",
Packit 577717
      .ucode   = 0xfb00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "RETURN",
Packit 577717
      .udesc   = "Retired near return instructions (Precise Event)",
Packit 577717
      .ucode   = 0xf700,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "NON_RETURN_IND",
Packit 577717
      .udesc   = "Retired instructions of near indirect Jmp or call (Precise Event)",
Packit 577717
      .ucode   = 0xeb00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "FAR_BRANCH",
Packit 577717
      .udesc   = "Retired far branch instructions (Precise Event)",
Packit 577717
      .ucode   = 0xbf00,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_fetch_stall[]={
Packit 577717
    { .uname   = "ICACHE_FILL_PENDING_CYCLES",
Packit 577717
      .udesc   = "Cycles where code-fetch is stalled and an ICache miss is outstanding.  This is not the same as an ICache Miss",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_uops_not_delivered[]={
Packit 577717
    { .uname   = "ANY",
Packit 577717
      .udesc   = "Uops requested but not-delivered to the back-end per cycle",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_mem_uops_retired[]={
Packit 577717
    { .uname   = "ALL_LOADS",
Packit 577717
      .udesc   = "Load uops retired (Precise Event)",
Packit 577717
      .ucode   = 0x8100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "ALL_STORES",
Packit 577717
      .udesc   = "Store uops retired (Precise Event)",
Packit 577717
      .ucode   = 0x8200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "ALL",
Packit 577717
      .udesc   = "Memory uops retired (Precise Event)",
Packit 577717
      .ucode   = 0x8300,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "DTLB_MISS_LOADS",
Packit 577717
      .udesc   = "Load uops retired that missed the DTLB (Precise Event)",
Packit 577717
      .ucode   = 0x1100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "DTLB_MISS_STORES",
Packit 577717
      .udesc   = "Store uops retired that missed the DTLB (Precise Event)",
Packit 577717
      .ucode   = 0x1200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "DTLB_MISS",
Packit 577717
      .udesc   = "Memory uops retired that missed the DTLB (Precise Event)",
Packit 577717
      .ucode   = 0x1300,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "LOCK_LOADS",
Packit 577717
      .udesc   = "Locked load uops retired (Precise Event)",
Packit 577717
      .ucode   = 0x2100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "SPLIT_LOADS",
Packit 577717
      .udesc   = "Load uops retired that split a cache-line (Precise Event)",
Packit 577717
      .ucode   = 0x4100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "SPLIT_STORES",
Packit 577717
      .udesc   = "Stores uops retired that split a cache-line (Precise Event)",
Packit 577717
      .ucode   = 0x4200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "SPLIT",
Packit 577717
      .udesc   = "Memory uops retired that split a cache-line (Precise Event)",
Packit 577717
      .ucode   = 0x4300,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_PEBS,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_uops_issued[]={
Packit 577717
    { .uname   = "ANY",
Packit 577717
      .udesc   = "Uops issued to the back end per cycle",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_core_reject_l2q[]={
Packit 577717
    { .uname   = "ALL",
Packit 577717
      .udesc   = "Requests rejected by the L2Q ",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_page_walks[]={
Packit 577717
    { .uname   = "D_SIDE_CYCLES",
Packit 577717
      .udesc   = "Duration of D-side page-walks in cycles",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "I_SIDE_CYCLES",
Packit 577717
      .udesc   = "Duration of I-side pagewalks in cycles",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "CYCLES",
Packit 577717
      .udesc   = "Duration of page-walks in cycles",
Packit 577717
      .ucode   = 0x0300,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_baclears[]={
Packit 577717
    { .uname   = "ALL",
Packit 577717
      .udesc   = "BACLEARs asserted for any branch type",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "RETURN",
Packit 577717
      .udesc   = "BACLEARs asserted for return branch",
Packit 577717
      .ucode   = 0x0800,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "COND",
Packit 577717
      .udesc   = "BACLEARs asserted for conditional branch",
Packit 577717
      .ucode   = 0x1000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_umask_t glm_cpu_clk_unhalted[]={
Packit 577717
    { .uname   = "CORE",
Packit 577717
      .udesc   = "Core cycles when core is not halted  (Fixed event)",
Packit 577717
      .ucode   = 0x0200,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0x200000000ull,
Packit 577717
    },
Packit 577717
    { .uname   = "REF_TSC",
Packit 577717
      .udesc   = "Reference cycles when core is not halted  (Fixed event)",
Packit 577717
      .ucode   = 0x0300,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0x400000000ull,
Packit 577717
    },
Packit 577717
    { .uname   = "CORE_P",
Packit 577717
      .udesc   = "Core cycles when core is not halted",
Packit 577717
      .ucode   = 0x0000,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO | INTEL_X86_DFL,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
    { .uname   = "REF",
Packit 577717
      .udesc   = "Reference cycles when core is not halted",
Packit 577717
      .ucode   = 0x0100,
Packit 577717
      .uflags  = INTEL_X86_NCOMBO,
Packit 577717
      .grpid   = 0,
Packit 577717
      .ucntmsk = 0xfull,
Packit 577717
    },
Packit 577717
};
Packit 577717
Packit 577717
static const intel_x86_entry_t intel_glm_pe[]={
Packit 577717
    { .name    = "ICACHE",
Packit 577717
      .desc    = "References per ICache line that are available in the ICache (hit). This event counts differently than Intel processors based on Silvermont microarchitecture",
Packit 577717
      .code    = 0x80,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_icache),
Packit 577717
      .umasks  = glm_icache,
Packit 577717
    },
Packit 577717
    { .name    = "L2_REJECT_XQ",
Packit 577717
      .desc    = "Requests rejected by the XQ",
Packit 577717
      .code    = 0x30,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_l2_reject_xq),
Packit 577717
      .umasks  = glm_l2_reject_xq,
Packit 577717
    },
Packit 577717
    { .name    = "HW_INTERRUPTS",
Packit 577717
      .desc    = "Hardware interrupts received",
Packit 577717
      .code    = 0xcb,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_hw_interrupts),
Packit 577717
      .umasks  = glm_hw_interrupts,
Packit 577717
    },
Packit 577717
    { .name    = "BR_MISP_RETIRED",
Packit 577717
      .desc    = "Retired mispredicted branch instructions (Precise Event)",
Packit 577717
      .code    = 0xc5,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_br_misp_retired),
Packit 577717
      .umasks  = glm_br_misp_retired,
Packit 577717
    },
Packit 577717
    { .name    = "DECODE_RESTRICTION",
Packit 577717
      .desc    = "Decode restrictions due to predicting wrong instruction length",
Packit 577717
      .code    = 0xe9,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_decode_restriction),
Packit 577717
      .umasks  = glm_decode_restriction,
Packit 577717
    },
Packit 577717
    { .name    = "MISALIGN_MEM_REF",
Packit 577717
      .desc    = "Load uops that split a page (Precise Event)",
Packit 577717
      .code    = 0x13,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_misalign_mem_ref),
Packit 577717
      .umasks  = glm_misalign_mem_ref,
Packit 577717
    },
Packit 577717
    { .name    = "INST_RETIRED",
Packit 577717
      .desc    = "Instructions retired (Precise Event)",
Packit 577717
      .code    = 0xc0,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0x10000000full,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_inst_retired),
Packit 577717
      .umasks  = glm_inst_retired,
Packit 577717
    },
Packit 577717
    { .name    = "INSTRUCTION_RETIRED",
Packit 577717
      .desc    = "Number of instructions retired",
Packit 577717
      .code    = 0xc0,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0x100000ffull,
Packit 577717
      .ngrp    = 0,
Packit 577717
    },
Packit 577717
    { .name    = "ISSUE_SLOTS_NOT_CONSUMED",
Packit 577717
      .desc    = "Unfilled issue slots per cycle because of a full resource in the backend",
Packit 577717
      .code    = 0xca,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_issue_slots_not_consumed),
Packit 577717
      .umasks  = glm_issue_slots_not_consumed,
Packit 577717
    },
Packit 577717
    { .name    = "ITLB",
Packit 577717
      .desc    = "ITLB misses",
Packit 577717
      .code    = 0x81,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_itlb),
Packit 577717
      .umasks  = glm_itlb,
Packit 577717
    },
Packit 577717
    { .name    = "LONGEST_LAT_CACHE",
Packit 577717
      .desc    = "L2 cache requests",
Packit 577717
      .code    = 0x2e,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_longest_lat_cache),
Packit 577717
      .umasks  = glm_longest_lat_cache,
Packit 577717
    },
Packit 577717
    { .name    = "MEM_LOAD_UOPS_RETIRED",
Packit 577717
      .desc    = "Load uops retired that hit L1 data cache (Precise Event)",
Packit 577717
      .code    = 0xd1,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_mem_load_uops_retired),
Packit 577717
      .umasks  = glm_mem_load_uops_retired,
Packit 577717
    },
Packit 577717
    { .name    = "LD_BLOCKS",
Packit 577717
      .desc    = "Loads blocked (Precise Event)",
Packit 577717
      .code    = 0x03,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_ld_blocks),
Packit 577717
      .umasks  = glm_ld_blocks,
Packit 577717
    },
Packit 577717
    { .name    = "DL1",
Packit 577717
      .desc    = "L1 Cache evictions for dirty data",
Packit 577717
      .code    = 0x51,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_dl1),
Packit 577717
      .umasks  = glm_dl1,
Packit 577717
    },
Packit 577717
    { .name    = "CYCLES_DIV_BUSY",
Packit 577717
      .desc    = "Cycles a divider is busy",
Packit 577717
      .code    = 0xcd,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_cycles_div_busy),
Packit 577717
      .umasks  = glm_cycles_div_busy,
Packit 577717
    },
Packit 577717
    { .name    = "MS_DECODED",
Packit 577717
      .desc    = "MS decode starts",
Packit 577717
      .code    = 0xe7,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_ms_decoded),
Packit 577717
      .umasks  = glm_ms_decoded,
Packit 577717
    },
Packit 577717
    { .name    = "UOPS_RETIRED",
Packit 577717
      .desc    = "Uops retired (Precise Event)",
Packit 577717
      .code    = 0xc2,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_uops_retired),
Packit 577717
      .umasks  = glm_uops_retired,
Packit 577717
    },
Packit 577717
    { .name    = "OFFCORE_RESPONSE_1",
Packit 577717
      .desc    = "Offcore response event (must provide at least one request type and either any_response or any combination of supplier + snoop)",
Packit 577717
      .code    = 0x2b7,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xffull,
Packit 577717
      .flags   = INTEL_X86_NHM_OFFCORE,
Packit 577717
      .ngrp    = 3,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_offcore_response_1),
Packit 577717
      .umasks  = glm_offcore_response_1,
Packit 577717
    },
Packit 577717
    { .name    = "MACHINE_CLEARS",
Packit 577717
      .desc    = "Self-Modifying Code detected",
Packit 577717
      .code    = 0xc3,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_machine_clears),
Packit 577717
      .umasks  = glm_machine_clears,
Packit 577717
    },
Packit 577717
    { .name    = "BR_INST_RETIRED",
Packit 577717
      .desc    = "Retired branch instructions (Precise Event)",
Packit 577717
      .code    = 0xc4,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_br_inst_retired),
Packit 577717
      .umasks  = glm_br_inst_retired,
Packit 577717
    },
Packit 577717
    { .name    = "FETCH_STALL",
Packit 577717
      .desc    = "Cycles where code-fetch is stalled and an ICache miss is outstanding.  This is not the same as an ICache Miss",
Packit 577717
      .code    = 0x86,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_fetch_stall),
Packit 577717
      .umasks  = glm_fetch_stall,
Packit 577717
    },
Packit 577717
    { .name    = "UOPS_NOT_DELIVERED",
Packit 577717
      .desc    = "Uops requested but not-delivered to the back-end per cycle",
Packit 577717
      .code    = 0x9c,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_uops_not_delivered),
Packit 577717
      .umasks  = glm_uops_not_delivered,
Packit 577717
    },
Packit 577717
    { .name    = "MISPREDICTED_BRANCH_RETIRED",
Packit 577717
      .desc    = "Number of mispredicted branch instructions retired",
Packit 577717
      .code    = 0xc5,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xffull,
Packit 577717
      .equiv   = "BR_MISP_RETIRED:ALL_BRANCHES",
Packit 577717
      .ngrp    = 0,
Packit 577717
    },
Packit 577717
    { .name    = "INSTRUCTIONS_RETIRED",
Packit 577717
      .desc    = "Number of instructions retired",
Packit 577717
      .code    = 0xc0,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0x100000ffull,
Packit 577717
      .equiv   = "INSTRUCTION_RETIRED",
Packit 577717
      .ngrp    = 0,
Packit 577717
    },
Packit 577717
    { .name    = "MEM_UOPS_RETIRED",
Packit 577717
      .desc    = "Load uops retired (Precise Event)",
Packit 577717
      .code    = 0xd0,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .flags   = INTEL_X86_PEBS,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_mem_uops_retired),
Packit 577717
      .umasks  = glm_mem_uops_retired,
Packit 577717
    },
Packit 577717
    { .name    = "UOPS_ISSUED",
Packit 577717
      .desc    = "Uops issued to the back end per cycle",
Packit 577717
      .code    = 0x0e,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_uops_issued),
Packit 577717
      .umasks  = glm_uops_issued,
Packit 577717
    },
Packit 577717
    { .name    = "OFFCORE_RESPONSE_0",
Packit 577717
      .desc    = "Offcore response event (must provide at least one request type and either any_response or any combination of supplier + snoop)",
Packit 577717
      .code    = 0x1b7,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xffull,
Packit 577717
      .flags   = INTEL_X86_NHM_OFFCORE,
Packit 577717
      .ngrp    = 4,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_offcore_response_0),
Packit 577717
      .umasks  = glm_offcore_response_0,
Packit 577717
    },
Packit 577717
    { .name    = "UNHALTED_REFERENCE_CYCLES",
Packit 577717
      .desc    = "Unhalted reference cycles. Ticks at constant reference frequency",
Packit 577717
      .code    = 0x0300,
Packit 577717
      .modmsk  = INTEL_FIXED2_ATTRS,
Packit 577717
      .cntmsk  = 0x40000000ull,
Packit 577717
      .flags   = INTEL_X86_FIXED,
Packit 577717
      .ngrp    = 0,
Packit 577717
    },
Packit 577717
    { .name    = "BRANCH_INSTRUCTIONS_RETIRED",
Packit 577717
      .desc    = "Number of branch instructions retired",
Packit 577717
      .code    = 0xc4,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xffull,
Packit 577717
      .equiv   = "BR_INST_RETIRED:ALL_BRANCHES",
Packit 577717
      .ngrp    = 0,
Packit 577717
    },
Packit 577717
    { .name    = "CORE_REJECT_L2Q",
Packit 577717
      .desc    = "Requests rejected by the L2Q ",
Packit 577717
      .code    = 0x31,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_core_reject_l2q),
Packit 577717
      .umasks  = glm_core_reject_l2q,
Packit 577717
    },
Packit 577717
    { .name    = "PAGE_WALKS",
Packit 577717
      .desc    = "Duration of D-side page-walks in cycles",
Packit 577717
      .code    = 0x05,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_page_walks),
Packit 577717
      .umasks  = glm_page_walks,
Packit 577717
    },
Packit 577717
    { .name    = "BACLEARS",
Packit 577717
      .desc    = "BACLEARs asserted for any branch type",
Packit 577717
      .code    = 0xe6,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0xfull,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_baclears),
Packit 577717
      .umasks  = glm_baclears,
Packit 577717
    },
Packit 577717
    { .name    = "CPU_CLK_UNHALTED",
Packit 577717
      .desc    = "Core cycles when core is not halted  (Fixed event)",
Packit 577717
      .code    = 0x00,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0x60000000full,
Packit 577717
      .ngrp    = 1,
Packit 577717
      .numasks = LIBPFM_ARRAY_SIZE(glm_cpu_clk_unhalted),
Packit 577717
      .umasks  = glm_cpu_clk_unhalted,
Packit 577717
    },
Packit 577717
    { .name    = "UNHALTED_CORE_CYCLES",
Packit 577717
      .desc    = "Core clock cycles whenever the clock signal on the specific core is running (not halted)",
Packit 577717
      .code    = 0x3c,
Packit 577717
      .modmsk  = INTEL_V2_ATTRS,
Packit 577717
      .cntmsk  = 0x20000000ull,
Packit 577717
      .ngrp    = 0,
Packit 577717
    },
Packit 577717
};