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

Packit 577717
/*
Packit 577717
 * Copyright (c) 2006 IBM Corp.
Packit 577717
 * Contributed by Kevin Corry <kevcorry@us.ibm.com>
Packit 577717
 *
Packit 577717
 * Permission is hereby granted, free of charge, to any person obtaining a
Packit 577717
 * copy of this software and associated documentation files (the "Software"),
Packit 577717
 * to deal in the Software without restriction, including without limitation
Packit 577717
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
Packit 577717
 * and/or sell copies of the Software, and to permit persons to whom the
Packit 577717
 * Software is furnished to do so, subject to the following conditions:
Packit 577717
 *
Packit 577717
 * The above copyright notice and this permission notice shall be included in
Packit 577717
 * all copies or substantial portions of the Software.
Packit 577717
 *
Packit 577717
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Packit 577717
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Packit 577717
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Packit 577717
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Packit 577717
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
Packit 577717
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
Packit 577717
 * IN THE SOFTWARE.
Packit 577717
 *
Packit 577717
 * This header contains arrays to describe the Event-Selection-Control
Packit 577717
 * Registers (ESCRs), Counter-Configuration-Control Registers (CCCRs),
Packit 577717
 * and countable events on Pentium4/Xeon/EM64T systems.
Packit 577717
 *
Packit 577717
 * For more details, see:
Packit 577717
 * - IA-32 Intel Architecture Software Developer's Manual,
Packit 577717
 *   Volume 3B: System Programming Guide, Part 2
Packit 577717
 *   (available at: http://www.intel.com/design/Pentium4/manuals/253669.htm)
Packit 577717
 *   - Chapter 18.10: Performance Monitoring Overview
Packit 577717
 *   - Chapter 18.13: Performance Monitoring - Pentium4 and Xeon Processors
Packit 577717
 *   - Chapter 18.14: Performance Monitoring and Hyper-Threading Technology
Packit 577717
 *   - Appendix A.1: Pentium4 and Xeon Processor Performance-Monitoring Events
Packit 577717
 *
Packit 577717
 * This header also contains an array to describe how the Perfmon PMCs map to
Packit 577717
 * the ESCRs and CCCRs.
Packit 577717
 */
Packit 577717
Packit 577717
#ifndef _NETBURST_EVENTS_H_
Packit 577717
#define _NETBURST_EVENTS_H_
Packit 577717
/**
Packit 577717
 * netburst_events
Packit 577717
 *
Packit 577717
 * Array of events that can be counted on Pentium4.
Packit 577717
 **/
Packit 577717
static const netburst_entry_t netburst_events[] = {
Packit 577717
Packit 577717
	/* 0 */
Packit 577717
	{.name = "TC_deliver_mode",
Packit 577717
	 .desc = "The duration (in clock cycles) of the operating modes of "
Packit 577717
		 "the trace cache and decode engine in the processor package",
Packit 577717
	 .event_select = 0x1,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 9, 32 },
Packit 577717
	 .perf_code = P4_EVENT_TC_DELIVER_MODE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "DD",
Packit 577717
		 .desc = "Both logical CPUs in deliver mode",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "DB",
Packit 577717
		 .desc = "Logical CPU 0 in deliver mode and "
Packit 577717
			 "logical CPU 1 in build mode",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "DI",
Packit 577717
		 .desc = "Logical CPU 0 in deliver mode and logical CPU 1 "
Packit 577717
			 "either halted, under machine clear condition, or "
Packit 577717
			 "transitioning to a long microcode flow",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "BD",
Packit 577717
		 .desc = "Logical CPU 0 in build mode and "
Packit 577717
			 "logical CPU 1 is in deliver mode",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "BB",
Packit 577717
		 .desc = "Both logical CPUs in build mode",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "BI",
Packit 577717
		 .desc = "Logical CPU 0 in build mode and logical CPU 1 "
Packit 577717
			 "either halted, under machine clear condition, or "
Packit 577717
			 "transitioning to a long microcode flow",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "ID",
Packit 577717
		 .desc = "Logical CPU 0 either halted, under machine clear "
Packit 577717
			 "condition, or transitioning to a long microcode "
Packit 577717
			 "flow, and logical CPU 1 in deliver mode",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "IB",
Packit 577717
		 .desc = "Logical CPU 0 either halted, under machine clear "
Packit 577717
			 "condition, or transitioning to a long microcode "
Packit 577717
			 "flow, and logical CPU 1 in build mode",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 1 */
Packit 577717
	{.name = "BPU_fetch_request",
Packit 577717
	 .desc = "Instruction fetch requests by the Branch Prediction Unit",
Packit 577717
	 .event_select = 0x3,
Packit 577717
	 .escr_select = 0x0,
Packit 577717
	 .allowed_escrs = { 0, 23 },
Packit 577717
	 .perf_code = P4_EVENT_BPU_FETCH_REQUEST,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "TCMISS",
Packit 577717
		 .desc = "Trace cache lookup miss",
Packit 577717
		 .bit = 0,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 2 */
Packit 577717
	{.name = "ITLB_reference",
Packit 577717
	 .desc = "Translations using the Instruction "
Packit 577717
		 "Translation Look-Aside Buffer",
Packit 577717
	 .event_select = 0x18,
Packit 577717
	 .escr_select = 0x3,
Packit 577717
	 .allowed_escrs = { 3, 26 },
Packit 577717
	 .perf_code = P4_EVENT_ITLB_REFERENCE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "HIT",
Packit 577717
		 .desc = "ITLB hit",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "MISS",
Packit 577717
		 .desc = "ITLB miss",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "HIT_UC",
Packit 577717
		 .desc = "Uncacheable ITLB hit",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 3 */
Packit 577717
	{.name = "memory_cancel",
Packit 577717
	 .desc = "Canceling of various types of requests in the "
Packit 577717
		 "Data cache Address Control unit (DAC)",
Packit 577717
	 .event_select = 0x2,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 15, 38 },
Packit 577717
	 .perf_code = P4_EVENT_MEMORY_CANCEL,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ST_RB_FULL",
Packit 577717
		 .desc = "Replayed because no store request "
Packit 577717
			 "buffer is available",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "64K_CONF",
Packit 577717
		 .desc = "Conflicts due to 64K aliasing",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 4 */
Packit 577717
	{.name = "memory_complete",
Packit 577717
	 .desc = "Completions of a load split, store split, "
Packit 577717
		 "uncacheable (UC) split, or UC load",
Packit 577717
	 .event_select = 0x8,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 13, 36 },
Packit 577717
	 .perf_code = P4_EVENT_MEMORY_COMPLETE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "LSC",
Packit 577717
		 .desc = "Load split completed, excluding UC/WC loads",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "SSC",
Packit 577717
		 .desc = "Any split stores completed",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 5 */
Packit 577717
	{.name = "load_port_replay",
Packit 577717
	 .desc = "Replayed events at the load port",
Packit 577717
	 .event_select = 0x4,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 13, 36 },
Packit 577717
	 .perf_code = P4_EVENT_LOAD_PORT_REPLAY,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "SPLIT_LD",
Packit 577717
		 .desc = "Split load",
Packit 577717
		 .bit = 1,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 6 */
Packit 577717
	{.name = "store_port_replay",
Packit 577717
	 .desc = "Replayed events at the store port",
Packit 577717
	 .event_select = 0x5,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 13, 36 },
Packit 577717
	 .perf_code = P4_EVENT_STORE_PORT_REPLAY,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "SPLIT_ST",
Packit 577717
		 .desc = "Split store",
Packit 577717
		 .bit = 1,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 7 */
Packit 577717
	{.name = "MOB_load_replay",
Packit 577717
	 .desc = "Count of times the memory order buffer (MOB) "
Packit 577717
		 "caused a load operation to be replayed",
Packit 577717
	 .event_select = 0x3,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 2, 25 },
Packit 577717
	 .perf_code = P4_EVENT_MOB_LOAD_REPLAY,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NO_STA",
Packit 577717
		 .desc = "Replayed because of unknown store address",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "NO_STD",
Packit 577717
		 .desc = "Replayed because of unknown store data",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "PARTIAL_DATA",
Packit 577717
		 .desc = "Replayed because of partially overlapped data "
Packit 577717
			 "access between the load and store operations",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "UNALGN_ADDR",
Packit 577717
		 .desc = "Replayed because the lower 4 bits of the "
Packit 577717
			 "linear address do not match between the "
Packit 577717
			 "load and store operations",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 8 */
Packit 577717
	{.name = "page_walk_type",
Packit 577717
	 .desc = "Page walks that the page miss handler (PMH) performs",
Packit 577717
	 .event_select = 0x1,
Packit 577717
	 .escr_select = 0x4,
Packit 577717
	 .allowed_escrs = { 4, 27 },
Packit 577717
	 .perf_code = P4_EVENT_PAGE_WALK_TYPE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "DTMISS",
Packit 577717
		 .desc = "Page walk for a data TLB miss (load or store)",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "ITMISS",
Packit 577717
		 .desc = "Page walk for an instruction TLB miss",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 9 */
Packit 577717
	{.name = "BSQ_cache_reference",
Packit 577717
	 .desc = "Cache references (2nd or 3rd level caches) as seen by the "
Packit 577717
		 "bus unit. Read types include both load and RFO, and write "
Packit 577717
		 "types include writebacks and evictions",
Packit 577717
	 .event_select = 0xC,
Packit 577717
	 .escr_select = 0x7,
Packit 577717
	 .allowed_escrs = { 7, 30 },
Packit 577717
	 .perf_code = P4_EVENT_BSQ_CACHE_REFERENCE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "RD_2ndL_HITS",
Packit 577717
		 .desc = "Read 2nd level cache hit Shared",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "RD_2ndL_HITE",
Packit 577717
		 .desc = "Read 2nd level cache hit Exclusive",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "RD_2ndL_HITM",
Packit 577717
		 .desc = "Read 2nd level cache hit Modified",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "RD_3rdL_HITS",
Packit 577717
		 .desc = "Read 3rd level cache hit Shared",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "RD_3rdL_HITE",
Packit 577717
		 .desc = "Read 3rd level cache hit Exclusive",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "RD_3rdL_HITM",
Packit 577717
		 .desc = "Read 3rd level cache hit Modified",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "RD_2ndL_MISS",
Packit 577717
		 .desc = "Read 2nd level cache miss",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "RD_3rdL_MISS",
Packit 577717
		 .desc = "Read 3rd level cache miss",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
		{.name = "WR_2ndL_MISS",
Packit 577717
		 .desc = "A writeback lookup from DAC misses the 2nd "
Packit 577717
			 "level cache (unlikely to happen)",
Packit 577717
		 .bit = 10,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 10 */
Packit 577717
	{.name = "IOQ_allocation",
Packit 577717
	 .desc = "Count of various types of transactions on the bus. A count "
Packit 577717
		 "is generated each time a transaction is allocated into the "
Packit 577717
		 "IOQ that matches the specified mask bits. An allocated entry "
Packit 577717
		 "can be a sector (64 bytes) or a chunk of 8 bytes. Requests "
Packit 577717
		 "are counted once per retry. All 'TYPE_BIT*' event-masks "
Packit 577717
		 "together are treated as a single 5-bit value",
Packit 577717
	 .event_select = 0x3,
Packit 577717
	 .escr_select = 0x6,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_IOQ_ALLOCATION,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "TYPE_BIT0",
Packit 577717
		 .desc = "Bus request type (bit 0)",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT1",
Packit 577717
		 .desc = "Bus request type (bit 1)",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT2",
Packit 577717
		 .desc = "Bus request type (bit 2)",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT3",
Packit 577717
		 .desc = "Bus request type (bit 3)",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT4",
Packit 577717
		 .desc = "Bus request type (bit 4)",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "ALL_READ",
Packit 577717
		 .desc = "Count read entries",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "ALL_WRITE",
Packit 577717
		 .desc = "Count write entries",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "MEM_UC",
Packit 577717
		 .desc = "Count UC memory access entries",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WC",
Packit 577717
		 .desc = "Count WC memory access entries",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WT",
Packit 577717
		 .desc = "Count write-through (WT) memory access entries",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WP",
Packit 577717
		 .desc = "Count write-protected (WP) memory access entries",
Packit 577717
		 .bit = 10,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WB",
Packit 577717
		 .desc = "Count WB memory access entries",
Packit 577717
		 .bit = 11,
Packit 577717
		},
Packit 577717
		{.name = "OWN",
Packit 577717
		 .desc = "Count all store requests driven by processor, as "
Packit 577717
			 "opposed to other processor or DMA",
Packit 577717
		 .bit = 13,
Packit 577717
		},
Packit 577717
		{.name = "OTHER",
Packit 577717
		 .desc = "Count all requests driven by other "
Packit 577717
			 "processors or DMA",
Packit 577717
		 .bit = 14,
Packit 577717
		},
Packit 577717
		{.name = "PREFETCH",
Packit 577717
		 .desc = "Include HW and SW prefetch requests in the count",
Packit 577717
		 .bit = 15,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 11 */
Packit 577717
	{.name = "IOQ_active_entries",
Packit 577717
	 .desc = "Number of entries (clipped at 15) in the IOQ that are "
Packit 577717
		 "active. An allocated entry can be a sector (64 bytes) "
Packit 577717
		 "or a chunk of 8 bytes. This event must be programmed in "
Packit 577717
		 "conjunction with IOQ_allocation. All 'TYPE_BIT*' event-masks "
Packit 577717
		 "together are treated as a single 5-bit value",
Packit 577717
	 .event_select = 0x1A,
Packit 577717
	 .escr_select = 0x6,
Packit 577717
	 .allowed_escrs = { 29, -1 },
Packit 577717
	 .perf_code = P4_EVENT_IOQ_ACTIVE_ENTRIES,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "TYPE_BIT0",
Packit 577717
		 .desc = "Bus request type (bit 0)",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT1",
Packit 577717
		 .desc = "Bus request type (bit 1)",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT2",
Packit 577717
		 .desc = "Bus request type (bit 2)",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT3",
Packit 577717
		 .desc = "Bus request type (bit 3)",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "TYPE_BIT4",
Packit 577717
		 .desc = "Bus request type (bit 4)",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "ALL_READ",
Packit 577717
		 .desc = "Count read entries",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "ALL_WRITE",
Packit 577717
		 .desc = "Count write entries",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "MEM_UC",
Packit 577717
		 .desc = "Count UC memory access entries",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WC",
Packit 577717
		 .desc = "Count WC memory access entries",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WT",
Packit 577717
		 .desc = "Count write-through (WT) memory access entries",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WP",
Packit 577717
		 .desc = "Count write-protected (WP) memory access entries",
Packit 577717
		 .bit = 10,
Packit 577717
		},
Packit 577717
		{.name = "MEM_WB",
Packit 577717
		 .desc = "Count WB memory access entries",
Packit 577717
		 .bit = 11,
Packit 577717
		},
Packit 577717
		{.name = "OWN",
Packit 577717
		 .desc = "Count all store requests driven by processor, as "
Packit 577717
			 "opposed to other processor or DMA",
Packit 577717
		 .bit = 13,
Packit 577717
		},
Packit 577717
		{.name = "OTHER",
Packit 577717
		 .desc = "Count all requests driven by other "
Packit 577717
			 "processors or DMA",
Packit 577717
		 .bit = 14,
Packit 577717
		},
Packit 577717
		{.name = "PREFETCH",
Packit 577717
		 .desc = "Include HW and SW prefetch requests in the count",
Packit 577717
		 .bit = 15,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 12 */
Packit 577717
	{.name = "FSB_data_activity",
Packit 577717
	 .desc = "Count of DRDY or DBSY events that "
Packit 577717
		 "occur on the front side bus",
Packit 577717
	 .event_select = 0x17,
Packit 577717
	 .escr_select = 0x6,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_FSB_DATA_ACTIVITY,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "DRDY_DRV",
Packit 577717
		 .desc = "Count when this processor drives data onto the bus. "
Packit 577717
			 "Includes writes and implicit writebacks",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "DRDY_OWN",
Packit 577717
		 .desc = "Count when this processor reads data from the bus. "
Packit 577717
			 "Includes loads and some PIC transactions. Count "
Packit 577717
			 "DRDY events that we drive. Count DRDY events sampled "
Packit 577717
			 "that we own",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "DRDY_OTHER",
Packit 577717
		 .desc = "Count when data is on the bus but not being sampled "
Packit 577717
			 "by the processor. It may or may not be driven by "
Packit 577717
			 "this processor",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "DBSY_DRV",
Packit 577717
		 .desc = "Count when this processor reserves the bus for use "
Packit 577717
			 "in the next bus cycle in order to drive data",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "DBSY_OWN",
Packit 577717
		 .desc = "Count when some agent reserves the bus for use in "
Packit 577717
			 "the next bus cycle to drive data that this processor "
Packit 577717
			 "will sample",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "DBSY_OTHER",
Packit 577717
		 .desc = "Count when some agent reserves the bus for use in "
Packit 577717
			 "the next bus cycle to drive data that this processor "
Packit 577717
			 "will NOT sample. It may or may not be being driven "
Packit 577717
			 "by this processor",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 13 */
Packit 577717
	{.name = "BSQ_allocation",
Packit 577717
	 .desc = "Allocations in the Bus Sequence Unit (BSQ). The event mask "
Packit 577717
		 "bits consist of four sub-groups: request type, request "
Packit 577717
		 "length, memory type, and a sub-group consisting mostly of "
Packit 577717
		 "independent bits (5 through 10). Must specify a mask for "
Packit 577717
		 "each sub-group",
Packit 577717
	 .event_select = 0x5,
Packit 577717
	 .escr_select = 0x7,
Packit 577717
	 .allowed_escrs = { 7, -1 },
Packit 577717
	 .perf_code = P4_EVENT_BSQ_ALLOCATION,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "REQ_TYPE0",
Packit 577717
		 .desc = "Along with REQ_TYPE1, request type encodings are: "
Packit 577717
			 "0 - Read (excludes read invalidate), 1 - Read "
Packit 577717
			 "invalidate, 2 - Write (other than writebacks), 3 - "
Packit 577717
			 "Writeback (evicted from cache)",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "REQ_TYPE1",
Packit 577717
		 .desc = "Along with REQ_TYPE0, request type encodings are: "
Packit 577717
			 "0 - Read (excludes read invalidate), 1 - Read "
Packit 577717
			 "invalidate, 2 - Write (other than writebacks), 3 - "
Packit 577717
			 "Writeback (evicted from cache)",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "REQ_LEN0",
Packit 577717
		 .desc = "Along with REQ_LEN1, request length encodings are: "
Packit 577717
			 "0 - zero chunks, 1 - one chunk, 3 - eight chunks",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "REQ_LEN1",
Packit 577717
		 .desc = "Along with REQ_LEN0, request length encodings are: "
Packit 577717
			 "0 - zero chunks, 1 - one chunk, 3 - eight chunks",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "REQ_IO_TYPE",
Packit 577717
		 .desc = "Request type is input or output",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "REQ_LOCK_TYPE",
Packit 577717
		 .desc = "Request type is bus lock",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "REQ_CACHE_TYPE",
Packit 577717
		 .desc = "Request type is cacheable",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
		{.name = "REQ_SPLIT_TYPE",
Packit 577717
		 .desc = "Request type is a bus 8-byte chunk split across "
Packit 577717
			 "an 8-byte boundary",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "REQ_DEM_TYPE",
Packit 577717
		 .desc = "0: Request type is HW.SW prefetch. "
Packit 577717
			 "1: Request type is a demand",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
		{.name = "REQ_ORD_TYPE",
Packit 577717
		 .desc = "Request is an ordered type",
Packit 577717
		 .bit = 10,
Packit 577717
		},
Packit 577717
		{.name = "MEM_TYPE0",
Packit 577717
		 .desc = "Along with MEM_TYPE1 and MEM_TYPE2, "
Packit 577717
			 "memory type encodings are: 0 - UC, "
Packit 577717
			 "1 - USWC, 4- WT, 5 - WP, 6 - WB",
Packit 577717
		 .bit = 11,
Packit 577717
		},
Packit 577717
		{.name = "MEM_TYPE1",
Packit 577717
		 .desc = "Along with MEM_TYPE0 and MEM_TYPE2, "
Packit 577717
			 "memory type encodings are: 0 - UC, "
Packit 577717
			 "1 - USWC, 4- WT, 5 - WP, 6 - WB",
Packit 577717
		 .bit = 12,
Packit 577717
		},
Packit 577717
		{.name = "MEM_TYPE2",
Packit 577717
		 .desc = "Along with MEM_TYPE0 and MEM_TYPE1, "
Packit 577717
			 "memory type encodings are: 0 - UC, "
Packit 577717
			 "1 - USWC, 4- WT, 5 - WP, 6 - WB",
Packit 577717
		 .bit = 13,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 14 */
Packit 577717
	{.name = "BSQ_active_entries",
Packit 577717
	 .desc = "Number of BSQ entries (clipped at 15) currently active "
Packit 577717
		 "(valid) which meet the subevent mask criteria during "
Packit 577717
		 "allocation in the BSQ. Active request entries are allocated "
Packit 577717
		 "on the BSQ until de-allocated. De-allocation of an entry "
Packit 577717
		 "does not necessarily imply the request is filled. This "
Packit 577717
		 "event must be programmed in conjunction with BSQ_allocation",
Packit 577717
	 .event_select = 0x6,
Packit 577717
	 .escr_select = 0x7,
Packit 577717
	 .allowed_escrs = { 30, -1 },
Packit 577717
	 .perf_code = P4_EVENT_BSQ_ACTIVE_ENTRIES,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "REQ_TYPE0",
Packit 577717
		 .desc = "Along with REQ_TYPE1, request type encodings are: "
Packit 577717
			 "0 - Read (excludes read invalidate), 1 - Read "
Packit 577717
			 "invalidate, 2 - Write (other than writebacks), 3 - "
Packit 577717
			 "Writeback (evicted from cache)",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "REQ_TYPE1",
Packit 577717
		 .desc = "Along with REQ_TYPE0, request type encodings are: "
Packit 577717
			 "0 - Read (excludes read invalidate), 1 - Read "
Packit 577717
			 "invalidate, 2 - Write (other than writebacks), 3 - "
Packit 577717
			 "Writeback (evicted from cache)",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "REQ_LEN0",
Packit 577717
		 .desc = "Along with REQ_LEN1, request length encodings are: "
Packit 577717
			 "0 - zero chunks, 1 - one chunk, 3 - eight chunks",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "REQ_LEN1",
Packit 577717
		 .desc = "Along with REQ_LEN0, request length encodings are: "
Packit 577717
			 "0 - zero chunks, 1 - one chunk, 3 - eight chunks",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "REQ_IO_TYPE",
Packit 577717
		 .desc = "Request type is input or output",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "REQ_LOCK_TYPE",
Packit 577717
		 .desc = "Request type is bus lock",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "REQ_CACHE_TYPE",
Packit 577717
		 .desc = "Request type is cacheable",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
		{.name = "REQ_SPLIT_TYPE",
Packit 577717
		 .desc = "Request type is a bus 8-byte chunk split across "
Packit 577717
			 "an 8-byte boundary",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "REQ_DEM_TYPE",
Packit 577717
		 .desc = "0: Request type is HW.SW prefetch. "
Packit 577717
			 "1: Request type is a demand",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
		{.name = "REQ_ORD_TYPE",
Packit 577717
		 .desc = "Request is an ordered type",
Packit 577717
		 .bit = 10,
Packit 577717
		},
Packit 577717
		{.name = "MEM_TYPE0",
Packit 577717
		 .desc = "Along with MEM_TYPE1 and MEM_TYPE2, "
Packit 577717
			 "memory type encodings are: 0 - UC, "
Packit 577717
			 "1 - USWC, 4- WT, 5 - WP, 6 - WB",
Packit 577717
		 .bit = 11,
Packit 577717
		},
Packit 577717
		{.name = "MEM_TYPE1",
Packit 577717
		 .desc = "Along with MEM_TYPE0 and MEM_TYPE2, "
Packit 577717
			 "memory type encodings are: 0 - UC, "
Packit 577717
			 "1 - USWC, 4- WT, 5 - WP, 6 - WB",
Packit 577717
		 .bit = 12,
Packit 577717
		},
Packit 577717
		{.name = "MEM_TYPE2",
Packit 577717
		 .desc = "Along with MEM_TYPE0 and MEM_TYPE1, "
Packit 577717
			 "memory type encodings are: 0 - UC, "
Packit 577717
			 "1 - USWC, 4- WT, 5 - WP, 6 - WB",
Packit 577717
		 .bit = 13,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 15 */
Packit 577717
	{.name = "SSE_input_assist",
Packit 577717
	 .desc = "Number of times an assist is requested to handle problems "
Packit 577717
		 "with input operands for SSE/SSE2/SSE3 operations; most "
Packit 577717
		 "notably denormal source operands when the DAZ bit isn't set",
Packit 577717
	 .event_select = 0x34,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_SSE_INPUT_ASSIST,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count assists for SSE/SSE2/SSE3 uops",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 16 */
Packit 577717
	{.name = "packed_SP_uop",
Packit 577717
	 .desc = "Number of packed single-precision uops",
Packit 577717
	 .event_select = 0x8,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .perf_code = P4_EVENT_PACKED_SP_UOP,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all uops operating on packed "
Packit 577717
			 "single-precisions operands",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 17 */
Packit 577717
	{.name = "packed_DP_uop",
Packit 577717
	 .desc = "Number of packed double-precision uops",
Packit 577717
	 .event_select = 0xC,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_PACKED_DP_UOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all uops operating on packed "
Packit 577717
			 "double-precisions operands",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 18 */
Packit 577717
	{.name = "scalar_SP_uop",
Packit 577717
	 .desc = "Number of scalar single-precision uops",
Packit 577717
	 .event_select = 0xA,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_SCALAR_SP_UOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all uops operating on scalar "
Packit 577717
			 "single-precisions operands",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 19 */
Packit 577717
	{.name = "scalar_DP_uop",
Packit 577717
	 .desc = "Number of scalar double-precision uops",
Packit 577717
	 .event_select = 0xE,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_SCALAR_DP_UOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all uops operating on scalar "
Packit 577717
			 "double-precisions operands",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 20 */
Packit 577717
	{.name = "64bit_MMX_uop",
Packit 577717
	 .desc = "Number of MMX instructions which "
Packit 577717
		 "operate on 64-bit SIMD operands",
Packit 577717
	 .event_select = 0x2,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_64BIT_MMX_UOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all uops operating on 64-bit SIMD integer "
Packit 577717
			 "operands in memory or MMX registers",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 21 */
Packit 577717
	{.name = "128bit_MMX_uop",
Packit 577717
	 .desc = "Number of MMX instructions which "
Packit 577717
		 "operate on 128-bit SIMD operands",
Packit 577717
	 .event_select = 0x1A,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_128BIT_MMX_UOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all uops operating on 128-bit SIMD integer "
Packit 577717
			 "operands in memory or MMX registers",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 22 */
Packit 577717
	{.name = "x87_FP_uop",
Packit 577717
	 .desc = "Number of x87 floating-point uops",
Packit 577717
	 .event_select = 0x4,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 12, 35 },
Packit 577717
	 .perf_code = P4_EVENT_X87_FP_UOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "ALL",
Packit 577717
		 .desc = "Count all x87 FP uops",
Packit 577717
		 .bit = 15,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
		{.name = "TAG0",
Packit 577717
		 .desc = "Tag this event with tag bit 0 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 16,
Packit 577717
		},
Packit 577717
		{.name = "TAG1",
Packit 577717
		 .desc = "Tag this event with tag bit 1 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 17,
Packit 577717
		},
Packit 577717
		{.name = "TAG2",
Packit 577717
		 .desc = "Tag this event with tag bit 2 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 18,
Packit 577717
		},
Packit 577717
		{.name = "TAG3",
Packit 577717
		 .desc = "Tag this event with tag bit 3 "
Packit 577717
			 "for retirement counting with execution_event",
Packit 577717
		 .bit = 19,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 23 */
Packit 577717
	{.name = "TC_misc",
Packit 577717
	 .desc = "Miscellaneous events detected by the TC. The counter will "
Packit 577717
		 "count twice for each occurrence",
Packit 577717
	 .event_select = 0x6,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 9, 32 },
Packit 577717
	 .perf_code = P4_EVENT_TC_MISC,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "FLUSH",
Packit 577717
		 .desc = "Number of flushes",
Packit 577717
		 .bit = 4,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 24 */
Packit 577717
	{.name = "global_power_events",
Packit 577717
	 .desc = "Counts the time during which a processor is not stopped",
Packit 577717
	 .event_select = 0x13,
Packit 577717
	 .escr_select = 0x6,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_GLOBAL_POWER_EVENTS,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "RUNNING",
Packit 577717
		 .desc = "The processor is active (includes the "
Packit 577717
			 "handling of HLT STPCLK and throttling",
Packit 577717
		 .bit = 0,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 25 */
Packit 577717
	{.name = "tc_ms_xfer",
Packit 577717
	 .desc = "Number of times that uop delivery changed from TC to MS ROM",
Packit 577717
	 .event_select = 0x5,
Packit 577717
	 .escr_select = 0x0,
Packit 577717
	 .allowed_escrs = { 8, 31 },
Packit 577717
	 .perf_code = P4_EVENT_TC_MS_XFER,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "CISC",
Packit 577717
		 .desc = "A TC to MS transfer occurred",
Packit 577717
		 .bit = 0,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 26 */
Packit 577717
	{.name = "uop_queue_writes",
Packit 577717
	 .desc = "Number of valid uops written to the uop queue",
Packit 577717
	 .event_select = 0x9,
Packit 577717
	 .escr_select = 0x0,
Packit 577717
	 .allowed_escrs = { 8, 31 },
Packit 577717
	 .perf_code = P4_EVENT_UOP_QUEUE_WRITES,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "FROM_TC_BUILD",
Packit 577717
		 .desc = "The uops being written are from TC build mode",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "FROM_TC_DELIVER",
Packit 577717
		 .desc = "The uops being written are from TC deliver mode",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "FROM_ROM",
Packit 577717
		 .desc = "The uops being written are from microcode ROM",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 27 */
Packit 577717
	{.name = "retired_mispred_branch_type",
Packit 577717
	 .desc = "Number of retiring mispredicted branches by type",
Packit 577717
	 .event_select = 0x5,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 10, 33 },
Packit 577717
	 .perf_code = P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "CONDITIONAL",
Packit 577717
		 .desc = "Conditional jumps",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "CALL",
Packit 577717
		 .desc = "Indirect call branches",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "RETURN",
Packit 577717
		 .desc = "Return branches",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "INDIRECT",
Packit 577717
		 .desc = "Returns, indirect calls, or indirect jumps",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 28 */
Packit 577717
	{.name = "retired_branch_type",
Packit 577717
	 .desc = "Number of retiring branches by type",
Packit 577717
	 .event_select = 0x4,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 10, 33 },
Packit 577717
	 .perf_code = P4_EVENT_RETIRED_BRANCH_TYPE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "CONDITIONAL",
Packit 577717
		 .desc = "Conditional jumps",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "CALL",
Packit 577717
		 .desc = "Indirect call branches",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "RETURN",
Packit 577717
		 .desc = "Return branches",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "INDIRECT",
Packit 577717
		 .desc = "Returns, indirect calls, or indirect jumps",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 29 */
Packit 577717
	{.name = "resource_stall",
Packit 577717
	 .desc = "Occurrences of latency or stalls in the Allocator",
Packit 577717
	 .event_select = 0x1,
Packit 577717
	 .escr_select = 0x1,
Packit 577717
	 .allowed_escrs = { 17, 40 },
Packit 577717
	 .perf_code = P4_EVENT_RESOURCE_STALL,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "SBFULL",
Packit 577717
		 .desc = "A stall due to lack of store buffers",
Packit 577717
		 .bit = 5,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 30 */
Packit 577717
	{.name = "WC_Buffer",
Packit 577717
	 .desc = "Number of Write Combining Buffer operations",
Packit 577717
	 .event_select = 0x5,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 15, 38 },
Packit 577717
	 .perf_code = P4_EVENT_WC_BUFFER,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "WCB_EVICTS",
Packit 577717
		 .desc = "WC Buffer evictions of all causes",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "WCB_FULL_EVICT",
Packit 577717
		 .desc = "WC Buffer eviction; no WC buffer is available",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 31 */
Packit 577717
	{.name = "b2b_cycles",
Packit 577717
	 .desc = "Number of back-to-back bus cycles",
Packit 577717
	 .event_select = 0x16,
Packit 577717
	 .escr_select = 0x3,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_B2B_CYCLES,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "BIT1",
Packit 577717
		 .desc = "bit 1",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "BIT2",
Packit 577717
		 .desc = "bit 2",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "BIT3",
Packit 577717
		 .desc = "bit 3",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "BIT4",
Packit 577717
		 .desc = "bit 4",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "BIT5",
Packit 577717
		 .desc = "bit 5",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "BIT6",
Packit 577717
		 .desc = "bit 6",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
	/* 32 */
Packit 577717
	{.name = "bnr",
Packit 577717
	 .desc = "Number of bus-not-ready conditions",
Packit 577717
	 .event_select = 0x8,
Packit 577717
	 .escr_select = 0x3,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_BNR,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "BIT0",
Packit 577717
		 .desc = "bit 0",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "BIT1",
Packit 577717
		 .desc = "bit 1",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "BIT2",
Packit 577717
		 .desc = "bit 2",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 33 */
Packit 577717
	{.name = "snoop",
Packit 577717
	 .desc = "Number of snoop hit modified bus traffic",
Packit 577717
	 .event_select = 0x6,
Packit 577717
	 .escr_select = 0x3,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_SNOOP,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "BIT2",
Packit 577717
		 .desc = "bit 2",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "BIT6",
Packit 577717
		 .desc = "bit 6",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "BIT7",
Packit 577717
		 .desc = "bit 7",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 34 */
Packit 577717
	{.name = "response",
Packit 577717
	 .desc = "Count of different types of responses",
Packit 577717
	 .event_select = 0x4,
Packit 577717
	 .escr_select = 0x3,
Packit 577717
	 .allowed_escrs = { 6, 29 },
Packit 577717
	 .perf_code = P4_EVENT_RESPONSE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "BIT1",
Packit 577717
		 .desc = "bit 1",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "BIT2",
Packit 577717
		 .desc = "bit 2",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "BIT8",
Packit 577717
		 .desc = "bit 8",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "BIT9",
Packit 577717
		 .desc = "bit 9",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 35 */
Packit 577717
	{.name = "front_end_event",
Packit 577717
	 .desc = "Number of retirements of tagged uops which are specified "
Packit 577717
		 "through the front-end tagging mechanism",
Packit 577717
	 .event_select = 0x8,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 21, 43 },
Packit 577717
	 .perf_code = P4_EVENT_FRONT_END_EVENT,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NBOGUS",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 36 */
Packit 577717
	{.name = "execution_event",
Packit 577717
	 .desc = "Number of retirements of tagged uops which are specified "
Packit 577717
		 "through the execution tagging mechanism. The event-mask "
Packit 577717
		 "allows from one to four types of uops to be tagged",
Packit 577717
	 .event_select = 0xC,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 21, 43 },
Packit 577717
	 .perf_code = P4_EVENT_EXECUTION_EVENT,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NBOGUS0",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "NBOGUS1",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "NBOGUS2",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "NBOGUS3",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS0",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS1",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS2",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS3",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 37 */
Packit 577717
	{.name = "replay_event",
Packit 577717
	 .desc = "Number of retirements of tagged uops which are specified "
Packit 577717
		 "through the replay tagging mechanism",
Packit 577717
	 .event_select = 0x9,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 21, 43 },
Packit 577717
	 .perf_code = P4_EVENT_REPLAY_EVENT,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NBOGUS",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "L1_LD_MISS",
Packit 577717
		 .desc = "Virtual mask for L1 cache load miss replays",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "L2_LD_MISS",
Packit 577717
		 .desc = "Virtual mask for L2 cache load miss replays",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "DTLB_LD_MISS",
Packit 577717
		 .desc = "Virtual mask for DTLB load miss replays",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
		{.name = "DTLB_ST_MISS",
Packit 577717
		 .desc = "Virtual mask for DTLB store miss replays",
Packit 577717
		 .bit = 5,
Packit 577717
		},
Packit 577717
		{.name = "DTLB_ALL_MISS",
Packit 577717
		 .desc = "Virtual mask for all DTLB miss replays",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
		{.name = "BR_MSP",
Packit 577717
		 .desc = "Virtual mask for tagged mispredicted branch replays",
Packit 577717
		 .bit = 7,
Packit 577717
		},
Packit 577717
		{.name = "MOB_LD_REPLAY",
Packit 577717
		 .desc = "Virtual mask for MOB load replays",
Packit 577717
		 .bit = 8,
Packit 577717
		},
Packit 577717
		{.name = "SP_LD_RET",
Packit 577717
		 .desc = "Virtual mask for split load replays. Use with load_port_replay event",
Packit 577717
		 .bit = 9,
Packit 577717
		},
Packit 577717
		{.name = "SP_ST_RET",
Packit 577717
		 .desc = "Virtual mask for split store replays. Use with store_port_replay event",
Packit 577717
		 .bit = 10,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 38 */
Packit 577717
	{.name = "instr_retired",
Packit 577717
	 .desc = "Number of instructions retired during a clock cycle",
Packit 577717
	 .event_select = 0x2,
Packit 577717
	 .escr_select = 0x4,
Packit 577717
	 .allowed_escrs = { 20, 42 },
Packit 577717
	 .perf_code = P4_EVENT_INSTR_RETIRED,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NBOGUSNTAG",
Packit 577717
		 .desc = "Non-bogus instructions that are not tagged",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "NBOGUSTAG",
Packit 577717
		 .desc = "Non-bogus instructions that are tagged",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "BOGUSNTAG",
Packit 577717
		 .desc = "Bogus instructions that are not tagged",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "BOGUSTAG",
Packit 577717
		 .desc = "Bogus instructions that are tagged",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 39 */
Packit 577717
	{.name = "uops_retired",
Packit 577717
	 .desc = "Number of uops retired during a clock cycle",
Packit 577717
	 .event_select = 0x1,
Packit 577717
	 .escr_select = 0x4,
Packit 577717
	 .allowed_escrs = { 20, 42 },
Packit 577717
	 .perf_code = P4_EVENT_UOPS_RETIRED,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NBOGUS",
Packit 577717
		 .desc = "The marked uops are not bogus",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS",
Packit 577717
		 .desc = "The marked uops are bogus",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 40 */
Packit 577717
	{.name = "uops_type",
Packit 577717
	 .desc = "This event is used in conjunction with with the front-end "
Packit 577717
		 "mechanism to tag load and store uops",
Packit 577717
	 .event_select = 0x2,
Packit 577717
	 .escr_select = 0x2,
Packit 577717
	 .allowed_escrs = { 18, 41 },
Packit 577717
	 .perf_code = P4_EVENT_UOP_TYPE,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "TAGLOADS",
Packit 577717
		 .desc = "The uop is a load operation",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "TAGSTORES",
Packit 577717
		 .desc = "The uop is a store operation",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 41 */
Packit 577717
	{.name = "branch_retired",
Packit 577717
	 .desc = "Number of retirements of a branch",
Packit 577717
	 .event_select = 0x6,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 21, 43 },
Packit 577717
	 .perf_code = P4_EVENT_BRANCH_RETIRED,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "MMNP",
Packit 577717
		 .desc = "Branch not-taken predicted",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "MMNM",
Packit 577717
		 .desc = "Branch not-taken mispredicted",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "MMTP",
Packit 577717
		 .desc = "Branch taken predicted",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "MMTM",
Packit 577717
		 .desc = "Branch taken mispredicted",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 42 */
Packit 577717
	{.name = "mispred_branch_retired",
Packit 577717
	 .desc = "Number of retirements of mispredicted "
Packit 577717
		 "IA-32 branch instructions",
Packit 577717
	 .event_select = 0x3,
Packit 577717
	 .escr_select = 0x4,
Packit 577717
	 .allowed_escrs = { 20, 42 },
Packit 577717
	 .perf_code = P4_EVENT_MISPRED_BRANCH_RETIRED,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "BOGUS",
Packit 577717
		 .desc = "The retired instruction is not bogus",
Packit 577717
		 .bit = 0,
Packit 577717
		 .flags = NETBURST_FL_DFL,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 43 */
Packit 577717
	{.name = "x87_assist",
Packit 577717
	 .desc = "Number of retirements of x87 instructions that required "
Packit 577717
		 "special handling",
Packit 577717
	 .event_select = 0x3,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 21, 43 },
Packit 577717
	 .perf_code = P4_EVENT_X87_ASSIST,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "FPSU",
Packit 577717
		 .desc = "Handle FP stack underflow",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "FPSO",
Packit 577717
		 .desc = "Handle FP stack overflow",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
		{.name = "POAO",
Packit 577717
		 .desc = "Handle x87 output overflow",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "POAU",
Packit 577717
		 .desc = "Handle x87 output underflow",
Packit 577717
		 .bit = 3,
Packit 577717
		},
Packit 577717
		{.name = "PREA",
Packit 577717
		 .desc = "Handle x87 input assist",
Packit 577717
		 .bit = 4,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 44 */
Packit 577717
	{.name = "machine_clear",
Packit 577717
	 .desc = "Number of occurrences when the entire "
Packit 577717
		 "pipeline of the machine is cleared",
Packit 577717
	 .event_select = 0x2,
Packit 577717
	 .escr_select = 0x5,
Packit 577717
	 .allowed_escrs = { 21, 43 },
Packit 577717
	 .perf_code = P4_EVENT_MACHINE_CLEAR,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "CLEAR",
Packit 577717
		 .desc = "Counts for a portion of the many cycles while the "
Packit 577717
			 "machine is cleared for any cause. Use edge-"
Packit 577717
			 "triggering for this bit only to get a count of "
Packit 577717
			 "occurrences versus a duration",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "MOCLEAR",
Packit 577717
		 .desc = "Increments each time the machine is cleared due to "
Packit 577717
			 "memory ordering issues",
Packit 577717
		 .bit = 2,
Packit 577717
		},
Packit 577717
		{.name = "SMCLEAR",
Packit 577717
		 .desc = "Increments each time the machine is cleared due to "
Packit 577717
			 "self-modifying code issues",
Packit 577717
		 .bit = 6,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
Packit 577717
	/* 45 */
Packit 577717
	{.name = "instr_completed",
Packit 577717
	 .desc = "Instructions that have completed and "
Packit 577717
		 "retired during a clock cycle (models 3, 4, 6 only)",
Packit 577717
	 .event_select = 0x7,
Packit 577717
	 .escr_select = 0x4,
Packit 577717
	 .allowed_escrs = { 21, 42 },
Packit 577717
	 .perf_code = P4_EVENT_INSTR_COMPLETED,
Packit 577717
	 .event_masks = {
Packit 577717
		{.name = "NBOGUS",
Packit 577717
		 .desc = "Non-bogus instructions",
Packit 577717
		 .bit = 0,
Packit 577717
		},
Packit 577717
		{.name = "BOGUS",
Packit 577717
		 .desc = "Bogus instructions",
Packit 577717
		 .bit = 1,
Packit 577717
		},
Packit 577717
	 },
Packit 577717
	},
Packit 577717
};
Packit 577717
#define PME_REPLAY_EVENT    37
Packit 577717
#define NETBURST_EVENT_COUNT (sizeof(netburst_events)/sizeof(netburst_entry_t))
Packit 577717
Packit 577717
#endif
Packit 577717