linux/tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-interconnect.json

[
    {
        "BriefDescription": "Total IRP occupancy of inbound read and write requests to coherent memory.",
        "Counter": "0,1",
        "EventCode": "0x0f",
        "EventName": "UNC_I_CACHE_TOTAL_OCCUPANCY.MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Total IRP occupancy of inbound read and write requests to coherent memory.  This is effectively the sum of read occupancy and write occupancy.",
        "UMask": "0x4",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "IRP Clockticks",
        "Counter": "0,1",
        "EventCode": "0x01",
        "EventName": "UNC_I_CLOCKTICKS",
        "PerPkg": "1",
        "PublicDescription": "Number of IRP clock cycles while the event is enabled",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "FAF RF full",
        "Counter": "0,1",
        "EventCode": "0x17",
        "EventName": "UNC_I_FAF_FULL",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "FAF - request insert from TC.",
        "Counter": "0,1",
        "EventCode": "0x18",
        "EventName": "UNC_I_FAF_INSERTS",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "FAF occupancy",
        "Counter": "0,1",
        "EventCode": "0x19",
        "EventName": "UNC_I_FAF_OCCUPANCY",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "FAF allocation -- sent to ADQ",
        "Counter": "0,1",
        "EventCode": "0x16",
        "EventName": "UNC_I_FAF_TRANSACTIONS",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": ": All Inserts Outbound (BL, AK, Snoops)",
        "Counter": "0,1",
        "EventCode": "0x20",
        "EventName": "UNC_I_IRP_ALL.EVICTS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "IRP"
    },
    {
        "BriefDescription": ": All Inserts Inbound (p2p + faf + cset)",
        "Counter": "0,1",
        "EventCode": "0x20",
        "EventName": "UNC_I_IRP_ALL.INBOUND_INSERTS",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": ": All Inserts Outbound (BL, AK, Snoops)",
        "Counter": "0,1",
        "EventCode": "0x20",
        "EventName": "UNC_I_IRP_ALL.OUTBOUND_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Cache Inserts of Atomic Transactions as Secondary",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.2ND_ATOMIC_INSERT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Cache Inserts of Read Transactions as Secondary",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.2ND_RD_INSERT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Cache Inserts of Write Transactions as Secondary",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.2ND_WR_INSERT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Fastpath Rejects",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.FAST_REJ",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Fastpath Requests",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.FAST_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Fastpath Transfers From Primary to Secondary",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.FAST_XFER",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Prefetch Ack Hints From Primary to Secondary",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.PF_ACK_HINT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Counts Timeouts - Set 0 : Slow path fwpf didn't find prefetch",
        "Counter": "0,1",
        "EventCode": "0x1e",
        "EventName": "UNC_I_MISC0.SLOWPATH_FWPF_NO_PRF",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Lost Forward",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.LOST_FWD",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Lost Forward : Snoop pulled away ownership before a write was committed",
        "UMask": "0x10",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Received Invalid",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.SEC_RCVD_INVLD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Received Invalid : Secondary received a transfer that did not have sufficient MESI state",
        "UMask": "0x20",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Received Valid",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.SEC_RCVD_VLD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Received Valid : Secondary received a transfer that did have sufficient MESI state",
        "UMask": "0x40",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Slow Transfer of E Line",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.SLOW_E",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Slow Transfer of E Line : Secondary received a transfer that did have sufficient MESI state",
        "UMask": "0x4",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Slow Transfer of I Line",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.SLOW_I",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Slow Transfer of I Line : Snoop took cacheline ownership before write from data was committed.",
        "UMask": "0x1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Slow Transfer of M Line",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.SLOW_M",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Slow Transfer of M Line : Snoop took cacheline ownership before write from data was committed.",
        "UMask": "0x8",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Misc Events - Set 1 : Slow Transfer of S Line",
        "Counter": "0,1",
        "EventCode": "0x1f",
        "EventName": "UNC_I_MISC1.SLOW_S",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Misc Events - Set 1 : Slow Transfer of S Line : Secondary received a transfer that did not have sufficient MESI state",
        "UMask": "0x2",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Responses to snoops of any type that hit M, E, S or I line in the IIO",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.ALL_HIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Responses to snoops of any type (code, data, invalidate) that hit M, E, S or I line in the IIO",
        "UMask": "0x7e",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Responses to snoops of any type that hit E or S line in the IIO cache",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.ALL_HIT_ES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Responses to snoops of any type (code, data, invalidate) that hit E or S line in the IIO cache",
        "UMask": "0x74",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Responses to snoops of any type that hit I line in the IIO cache",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.ALL_HIT_I",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Responses to snoops of any type (code, data, invalidate) that hit I line in the IIO cache",
        "UMask": "0x72",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Responses to snoops of any type that hit M line in the IIO cache",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.ALL_HIT_M",
        "PerPkg": "1",
        "PublicDescription": "Responses to snoops of any type (code, data, invalidate) that hit M line in the IIO cache",
        "UMask": "0x78",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Responses to snoops of any type that miss the IIO cache",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.ALL_MISS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Responses to snoops of any type (code, data, invalidate) that miss the IIO cache",
        "UMask": "0x71",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : Hit E or S",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.HIT_ES",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : Hit I",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.HIT_I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : Hit M",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.HIT_M",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : Miss",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.MISS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : SnpCode",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.SNPCODE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : SnpData",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.SNPDATA",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Snoop Responses : SnpInv",
        "Counter": "0,1",
        "EventCode": "0x12",
        "EventName": "UNC_I_SNOOP_RESP.SNPINV",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Inbound write (fast path) requests received by the IRP.",
        "Counter": "0,1",
        "EventCode": "0x11",
        "EventName": "UNC_I_TRANSACTIONS.WR_PREF",
        "PerPkg": "1",
        "PublicDescription": "Inbound write (fast path) requests to coherent memory, received by the IRP resulting in write ownership requests issued by IRP to the mesh.",
        "UMask": "0x8",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "AK Egress Allocations",
        "Counter": "0,1",
        "EventCode": "0x0b",
        "EventName": "UNC_I_TxC_AK_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL DRS Egress Cycles Full",
        "Counter": "0,1",
        "EventCode": "0x05",
        "EventName": "UNC_I_TxC_BL_DRS_CYCLES_FULL",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL DRS Egress Inserts",
        "Counter": "0,1",
        "EventCode": "0x02",
        "EventName": "UNC_I_TxC_BL_DRS_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL DRS Egress Occupancy",
        "Counter": "0,1",
        "EventCode": "0x08",
        "EventName": "UNC_I_TxC_BL_DRS_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL NCB Egress Cycles Full",
        "Counter": "0,1",
        "EventCode": "0x06",
        "EventName": "UNC_I_TxC_BL_NCB_CYCLES_FULL",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL NCB Egress Inserts",
        "Counter": "0,1",
        "EventCode": "0x03",
        "EventName": "UNC_I_TxC_BL_NCB_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL NCB Egress Occupancy",
        "Counter": "0,1",
        "EventCode": "0x09",
        "EventName": "UNC_I_TxC_BL_NCB_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL NCS Egress Cycles Full",
        "Counter": "0,1",
        "EventCode": "0x07",
        "EventName": "UNC_I_TxC_BL_NCS_CYCLES_FULL",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL NCS Egress Inserts",
        "Counter": "0,1",
        "EventCode": "0x04",
        "EventName": "UNC_I_TxC_BL_NCS_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "BL NCS Egress Occupancy",
        "Counter": "0,1",
        "EventCode": "0x0a",
        "EventName": "UNC_I_TxC_BL_NCS_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "UNC_I_TxR2_AD01_STALL_CREDIT_CYCLES",
        "Counter": "0,1",
        "EventCode": "0x1c",
        "EventName": "UNC_I_TxR2_AD01_STALL_CREDIT_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": Counts the number times when it is not possible to issue a request to the M2PCIe because there are no Egress Credits available on AD0, A1 or AD0AD1 both. Stalls on both AD0 and AD1 will count as 2",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "No AD0 Egress Credits Stalls",
        "Counter": "0,1",
        "EventCode": "0x1a",
        "EventName": "UNC_I_TxR2_AD0_STALL_CREDIT_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No AD0 Egress Credits Stalls : Counts the number times when it is not possible to issue a request to the M2PCIe because there are no AD0 Egress Credits available.",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "No AD1 Egress Credits Stalls",
        "Counter": "0,1",
        "EventCode": "0x1b",
        "EventName": "UNC_I_TxR2_AD1_STALL_CREDIT_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No AD1 Egress Credits Stalls : Counts the number times when it is not possible to issue a request to the M2PCIe because there are no AD1 Egress Credits available.",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "No BL Egress Credit Stalls",
        "Counter": "0,1",
        "EventCode": "0x1d",
        "EventName": "UNC_I_TxR2_BL_STALL_CREDIT_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No BL Egress Credit Stalls : Counts the number times when it is not possible to issue data to the R2PCIe because there are no BL Egress Credits available.",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Outbound Read Requests",
        "Counter": "0,1",
        "EventCode": "0x0d",
        "EventName": "UNC_I_TxS_DATA_INSERTS_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Outbound Read Requests : Counts the number of requests issued to the switch (towards the devices).",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Outbound Read Requests",
        "Counter": "0,1",
        "EventCode": "0x0e",
        "EventName": "UNC_I_TxS_DATA_INSERTS_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Outbound Read Requests : Counts the number of requests issued to the switch (towards the devices).",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "Outbound Request Queue Occupancy",
        "Counter": "0,1",
        "EventCode": "0x0c",
        "EventName": "UNC_I_TxS_REQUEST_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Outbound Request Queue Occupancy : Accumulates the number of outstanding outbound requests from the IRP to the switch (towards the devices).  This can be used in conjunction with the allocations event in order to calculate average latency of outbound requests.",
        "Unit": "IRP"
    },
    {
        "BriefDescription": "M2M Clockticks",
        "Counter": "0,1,2,3",
        "EventCode": "0x01",
        "EventName": "UNC_M2M_CLOCKTICKS",
        "PerPkg": "1",
        "PublicDescription": "Clockticks of the mesh to memory (M2M)",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "CMS Clockticks",
        "Counter": "0,1,2,3",
        "EventCode": "0xc0",
        "EventName": "UNC_M2M_CMS_CLOCKTICKS",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Cycles when direct to core mode (which bypasses the CHA) was disabled",
        "Counter": "0,1,2,3",
        "EventCode": "0x17",
        "EventName": "UNC_M2M_DIRECT2CORE_NOT_TAKEN_DIRSTATE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x7",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Cycles when direct to core mode, which bypasses the CHA, was disabled : Non Cisgress",
        "Counter": "0,1,2,3",
        "EventCode": "0x17",
        "EventName": "UNC_M2M_DIRECT2CORE_NOT_TAKEN_DIRSTATE.NON_CISGRESS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles when direct to core mode, which bypasses the CHA, was disabled : Non Cisgress : Counts the number of time non cisgress D2C was not honoured by egress due to directory state constraints",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Counts the time when FM didn't do d2c for fill reads (cross tile case)",
        "Counter": "0,1,2,3",
        "EventCode": "0x4a",
        "EventName": "UNC_M2M_DIRECT2CORE_NOT_TAKEN_NOTFORKED",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of reads in which direct to core transaction were overridden",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_M2M_DIRECT2CORE_TXN_OVERRIDE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x3",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of reads in which direct to core transaction was overridden : Cisgress",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_M2M_DIRECT2CORE_TXN_OVERRIDE.CISGRESS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of reads in which direct to core transaction was overridden : 2LM Hit?",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_M2M_DIRECT2CORE_TXN_OVERRIDE.PMM_HIT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of times a direct to UPI transaction was overridden.",
        "Counter": "0,1,2,3",
        "EventCode": "0x1C",
        "EventName": "UNC_M2M_DIRECT2UPITXN_OVERRIDE.PMM_HIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Number of times a direct to UPI transaction was overridden. : Counts the number of times D2K wasn't honored even though the incoming request had d2k set",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of reads in which direct to Intel UPI transactions were overridden",
        "Counter": "0,1,2,3",
        "EventCode": "0x1b",
        "EventName": "UNC_M2M_DIRECT2UPI_NOT_TAKEN_CREDITS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x7",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Cycles when direct to Intel UPI was disabled",
        "Counter": "0,1,2,3",
        "EventCode": "0x1a",
        "EventName": "UNC_M2M_DIRECT2UPI_NOT_TAKEN_DIRSTATE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x7",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Cycles when Direct2UPI was Disabled : Cisgress D2U Ignored",
        "Counter": "0,1,2,3",
        "EventCode": "0x1A",
        "EventName": "UNC_M2M_DIRECT2UPI_NOT_TAKEN_DIRSTATE.CISGRESS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles when Direct2UPI was Disabled : Cisgress D2U Ignored : Counts cisgress d2K that was not honored due to directory constraints",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Cycles when Direct2UPI was Disabled : Egress Ignored D2U",
        "Counter": "0,1,2,3",
        "EventCode": "0x1A",
        "EventName": "UNC_M2M_DIRECT2UPI_NOT_TAKEN_DIRSTATE.EGRESS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles when Direct2UPI was Disabled : Egress Ignored D2U : Counts the number of time D2K was not honoured by egress due to directory state constraints",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Cycles when Direct2UPI was Disabled : Non Cisgress D2U Ignored",
        "Counter": "0,1,2,3",
        "EventCode": "0x1A",
        "EventName": "UNC_M2M_DIRECT2UPI_NOT_TAKEN_DIRSTATE.NON_CISGRESS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles when Direct2UPI was Disabled : Non Cisgress D2U Ignored : Counts non cisgress d2K that was not honored due to directory constraints",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Messages sent direct to the Intel UPI",
        "Counter": "0,1,2,3",
        "EventCode": "0x19",
        "EventName": "UNC_M2M_DIRECT2UPI_TAKEN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts the number of times egress did D2K (Direct to KTI)",
        "UMask": "0x7",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of reads that a message sent direct2 Intel UPI was overridden",
        "Counter": "0,1,2,3",
        "EventCode": "0x1c",
        "EventName": "UNC_M2M_DIRECT2UPI_TXN_OVERRIDE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x3",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number of times a direct to UPI transaction was overridden.",
        "Counter": "0,1,2,3",
        "EventCode": "0x1C",
        "EventName": "UNC_M2M_DIRECT2UPI_TXN_OVERRIDE.CISGRESS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On NonDirty Line in A State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.CLEAN_A",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On NonDirty Line in I State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.CLEAN_I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On NonDirty Line in L State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.CLEAN_P",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On NonDirty Line in S State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.CLEAN_S",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On Dirty Line in A State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.DIRTY_A",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On Dirty Line in I State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.DIRTY_I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On Dirty Line in L State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.DIRTY_P",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Hit : On Dirty Line in S State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1d",
        "EventName": "UNC_M2M_DIRECTORY_HIT.DIRTY_S",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory lookups (any state found)",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M2M_DIRECTORY_LOOKUP.ANY",
        "PerPkg": "1",
        "PublicDescription": "Counts the number of hit data returns to egress with any directory to non persistent memory",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory lookups (cacheline found in A state)",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M2M_DIRECTORY_LOOKUP.STATE_A",
        "PerPkg": "1",
        "PublicDescription": "Counts the number of hit data returns to egress with directory A to non persistent memory",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory lookup (cacheline found in I state)",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M2M_DIRECTORY_LOOKUP.STATE_I",
        "PerPkg": "1",
        "PublicDescription": "Counts the number of hit data returns to egress with directory I to non persistent memory",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory lookup (cacheline found in S state)",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M2M_DIRECTORY_LOOKUP.STATE_S",
        "PerPkg": "1",
        "PublicDescription": "Counts the number of hit data returns to egress with directory S to non persistent memory",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On NonDirty Line in A State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.CLEAN_A",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On NonDirty Line in I State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.CLEAN_I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On NonDirty Line in L State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.CLEAN_P",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On NonDirty Line in S State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.CLEAN_S",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On Dirty Line in A State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.DIRTY_A",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On Dirty Line in I State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.DIRTY_I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On Dirty Line in L State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.DIRTY_P",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Directory Miss : On Dirty Line in S State",
        "Counter": "0,1,2,3",
        "EventCode": "0x1e",
        "EventName": "UNC_M2M_DIRECTORY_MISS.DIRTY_S",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from A to I",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.A2I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x320",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from A to S",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.A2S",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x340",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from/to Any state",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.ANY",
        "PerPkg": "1",
        "UMask": "0x301",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.A_TO_I_HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from A to I to non persistent memory (DRAM or HBM)",
        "UMask": "0x120",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.A_TO_I_MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from A to I to non persistent memory (DRAM or HBM)",
        "UMask": "0x220",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.A_TO_S_HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from A to S to non persistent memory (DRAM or HBM)",
        "UMask": "0x140",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.A_TO_S_MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from A to S to non persistent memory (DRAM or HBM)",
        "UMask": "0x240",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts any 1lm or 2lm hit data return that would result in directory update to non persistent memory (DRAM or HBM)",
        "UMask": "0x101",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from I to A",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.I2A",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x304",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from I to S",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.I2S",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x302",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.I_TO_A_HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from I to A to non persistent memory (DRAM or HBM)",
        "UMask": "0x104",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.I_TO_A_MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from I to A to non persistent memory (DRAM or HBM)",
        "UMask": "0x204",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.I_TO_S_HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from I to S to non persistent memory (DRAM or HBM)",
        "UMask": "0x102",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.I_TO_S_MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts  2lm miss  data returns that would result in directory update from I to S to non persistent memory (DRAM or HBM)",
        "UMask": "0x202",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts any 2lm miss data return that would result in directory update to non persistent memory (DRAM or HBM)",
        "UMask": "0x201",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from S to A",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.S2A",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x310",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory update from S to I",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.S2I",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x308",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.S_TO_A_HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from S to A to non persistent memory (DRAM or HBM)",
        "UMask": "0x110",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.S_TO_A_MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from S to A to non persistent memory (DRAM or HBM)",
        "UMask": "0x210",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.S_TO_I_HIT_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from S to I to non persistent memory (DRAM or HBM)",
        "UMask": "0x108",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Multi-socket cacheline Directory Updates",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_M2M_DIRECTORY_UPDATE.S_TO_I_MISS_NON_PMM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from S to I to non persistent memory (DRAM or HBM)",
        "UMask": "0x208",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Egress Blocking due to Ordering requirements : Down",
        "Counter": "0,1,2,3",
        "EventCode": "0xba",
        "EventName": "UNC_M2M_EGRESS_ORDERING.IV_SNOOPGO_DN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Egress Blocking due to Ordering requirements : Down : Counts number of cycles IV was blocked in the TGR Egress due to SNP/GO Ordering requirements",
        "UMask": "0x80000004",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Egress Blocking due to Ordering requirements : Up",
        "Counter": "0,1,2,3",
        "EventCode": "0xba",
        "EventName": "UNC_M2M_EGRESS_ORDERING.IV_SNOOPGO_UP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Egress Blocking due to Ordering requirements : Up : Counts number of cycles IV was blocked in the TGR Egress due to SNP/GO Ordering requirements",
        "UMask": "0x80000001",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Count when Starve Glocab counter is at 7",
        "Counter": "0,1,2,3",
        "EventCode": "0x44",
        "EventName": "UNC_M2M_IGR_STARVE_WINNER.MASK7",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Reads to iMC issued",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.ALL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x304",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0.TO_NM1LM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0.TO_NM1LM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x108",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0.TO_NMCache",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0.TO_NMCache",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x110",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_ALL",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_ALL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x104",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_FROM_TGR",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_FROM_TGR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x140",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_ISOCH",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x102",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_NORMAL",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_NORMAL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x101",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_TO_DDR_AS_CACHE",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_TO_DDR_AS_CACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x110",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_TO_DDR_AS_MEM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_TO_DDR_AS_MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x108",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH0_TO_PMM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH0_TO_PMM",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x120",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1.TO_NM1LM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1.TO_NM1LM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x208",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1.TO_NMCache",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1.TO_NMCache",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x210",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_ALL",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_ALL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x204",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_FROM_TGR",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_FROM_TGR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x240",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_ISOCH",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x202",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_NORMAL",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_NORMAL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x201",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_TO_DDR_AS_CACHE",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_TO_DDR_AS_CACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x210",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_TO_DDR_AS_MEM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_TO_DDR_AS_MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x208",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.CH1_TO_PMM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.CH1_TO_PMM",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x220",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.FROM_TGR",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.FROM_TGR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x340",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.ISOCH",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x302",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.NORMAL",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.NORMAL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x301",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.TO_DDR_AS_CACHE",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.TO_DDR_AS_CACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x310",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.TO_DDR_AS_MEM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.TO_DDR_AS_MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x308",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.TO_NM1LM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.TO_NM1LM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x308",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.TO_NMCACHE",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.TO_NMCACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x310",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_READS.TO_PMM",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_M2M_IMC_READS.TO_PMM",
        "PerPkg": "1",
        "UMask": "0x320",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "All Writes - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.ALL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1810",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive - Ch0",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0.NI",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_WRITES.CH0_ALL",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_ALL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x810",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "From TGR - Ch0",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_FROM_TGR",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_WRITES.CH0_FULL",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_FULL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x801",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_WRITES.CH0_FULL_ISOCH",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_FULL_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x804",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive - Ch0",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_NI",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive Miss - Ch0",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_NI_MISS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_WRITES.CH0_PARTIAL",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_PARTIAL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x802",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_WRITES.CH0_PARTIAL_ISOCH",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_PARTIAL_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x808",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "DDR, acting as Cache - Ch0",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_TO_DDR_AS_CACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x840",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_IMC_WRITES.CH0_TO_DDR_AS_MEM",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_TO_DDR_AS_MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x820",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "PMM - Ch0",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH0_TO_PMM",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "PublicDescription": "PMM - Ch0 : Counts all PMM dimm writes requests(full line and partial) sent from M2M to iMC",
        "UMask": "0x880",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1.NI",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "All Writes - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_ALL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x1010",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "From TGR - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_FROM_TGR",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Full Line Non-ISOCH - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_FULL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x1001",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "ISOCH Full Line - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_FULL_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1004",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_NI",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive Miss - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_NI_MISS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Partial Non-ISOCH - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_PARTIAL",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "UMask": "0x1002",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "ISOCH Partial - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_PARTIAL_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1008",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "DDR, acting as Cache - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_TO_DDR_AS_CACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1040",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "DDR - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_TO_DDR_AS_MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1020",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "PMM - Ch1",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.CH1_TO_PMM",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "PublicDescription": "PMM - Ch1 : Counts all PMM dimm writes requests(full line and partial) sent from M2M to iMC",
        "UMask": "0x1080",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "From TGR - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.FROM_TGR",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Full Non-ISOCH - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.FULL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1801",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "ISOCH Full Line - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.FULL_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1804",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.NI",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Non-Inclusive Miss - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.NI_MISS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Partial Non-ISOCH - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.PARTIAL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1802",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "ISOCH Partial - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.PARTIAL_ISOCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1808",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "DDR, acting as Cache - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.TO_DDR_AS_CACHE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1840",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "DDR - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.TO_DDR_AS_MEM",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1820",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "PMM - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_M2M_IMC_WRITES.TO_PMM",
        "PerPkg": "1",
        "UMask": "0x1880",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_PREFCAM_CIS_DROPS",
        "Counter": "0,1,2,3",
        "EventCode": "0x5c",
        "EventName": "UNC_M2M_PREFCAM_CIS_DROPS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Data Prefetches Dropped",
        "Counter": "0,1,2,3",
        "EventCode": "0x58",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_DROPS.CH0_UPI",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Data Prefetches Dropped",
        "Counter": "0,1,2,3",
        "EventCode": "0x58",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_DROPS.CH0_XPT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Data Prefetches Dropped",
        "Counter": "0,1,2,3",
        "EventCode": "0x58",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_DROPS.CH1_UPI",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Data Prefetches Dropped",
        "Counter": "0,1,2,3",
        "EventCode": "0x58",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_DROPS.CH1_XPT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Data Prefetches Dropped : UPI - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x58",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_DROPS.UPI_ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0xa",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Data Prefetches Dropped",
        "Counter": "0,1,2,3",
        "EventCode": "0x58",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_DROPS.XPT_ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x5",
        "Unit": "M2M"
    },
    {
        "BriefDescription": ": UPI - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x5d",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_MERGE.UPI_ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0xa",
        "Unit": "M2M"
    },
    {
        "BriefDescription": ": XPT - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x5d",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_MERGE.XPT_ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x5",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Demands Not Merged with CAMed Prefetches",
        "Counter": "0,1,2,3",
        "EventCode": "0x5E",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_NO_MERGE.RD_MERGED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Demands Not Merged with CAMed Prefetches",
        "Counter": "0,1,2,3",
        "EventCode": "0x5E",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_NO_MERGE.WR_MERGED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Demands Not Merged with CAMed Prefetches",
        "Counter": "0,1,2,3",
        "EventCode": "0x5E",
        "EventName": "UNC_M2M_PREFCAM_DEMAND_NO_MERGE.WR_SQUASHED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Inserts : UPI - Ch 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x56",
        "EventName": "UNC_M2M_PREFCAM_INSERTS.CH0_UPI",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Inserts : XPT - Ch 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x56",
        "EventName": "UNC_M2M_PREFCAM_INSERTS.CH0_XPT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Inserts : UPI - Ch 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x56",
        "EventName": "UNC_M2M_PREFCAM_INSERTS.CH1_UPI",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Inserts : XPT - Ch 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x56",
        "EventName": "UNC_M2M_PREFCAM_INSERTS.CH1_XPT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Inserts : UPI - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x56",
        "EventName": "UNC_M2M_PREFCAM_INSERTS.UPI_ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0xa",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Inserts : XPT - All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x56",
        "EventName": "UNC_M2M_PREFCAM_INSERTS.XPT_ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Prefetch CAM Inserts : XPT -All Channels",
        "UMask": "0x5",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Occupancy : All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x54",
        "EventName": "UNC_M2M_PREFCAM_OCCUPANCY.ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x3",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Occupancy : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x54",
        "EventName": "UNC_M2M_PREFCAM_OCCUPANCY.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Prefetch CAM Occupancy : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x54",
        "EventName": "UNC_M2M_PREFCAM_OCCUPANCY.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "All Channels",
        "Counter": "0,1,2,3",
        "EventCode": "0x5F",
        "EventName": "UNC_M2M_PREFCAM_RESP_MISS.ALLCH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x3",
        "Unit": "M2M"
    },
    {
        "BriefDescription": ": Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x5f",
        "EventName": "UNC_M2M_PREFCAM_RESP_MISS.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": ": Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x5f",
        "EventName": "UNC_M2M_PREFCAM_RESP_MISS.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_PREFCAM_RxC_DEALLOCS.1LM_POSTED",
        "Counter": "0,1,2,3",
        "EventCode": "0x62",
        "EventName": "UNC_M2M_PREFCAM_RxC_DEALLOCS.1LM_POSTED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_PREFCAM_RxC_DEALLOCS.CIS",
        "Counter": "0,1,2,3",
        "EventCode": "0x62",
        "EventName": "UNC_M2M_PREFCAM_RxC_DEALLOCS.CIS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_PREFCAM_RxC_DEALLOCS.PMM_MEMMODE_ACCEPT",
        "Counter": "0,1,2,3",
        "EventCode": "0x62",
        "EventName": "UNC_M2M_PREFCAM_RxC_DEALLOCS.PMM_MEMMODE_ACCEPT",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_PREFCAM_RxC_DEALLOCS.SQUASHED",
        "Counter": "0,1,2,3",
        "EventCode": "0x62",
        "EventName": "UNC_M2M_PREFCAM_RxC_DEALLOCS.SQUASHED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "AD Ingress (from CMS) Occupancy - Prefetches",
        "Counter": "0,1,2,3",
        "EventCode": "0x60",
        "EventName": "UNC_M2M_PREFCAM_RxC_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "AD Ingress (from CMS) : AD Ingress (from CMS) Allocations",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_M2M_RxC_AD_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "AD Ingress (from CMS) Occupancy",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_M2M_RxC_AD_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Clean NearMem Read Hit",
        "Counter": "0,1,2,3",
        "EventCode": "0x1F",
        "EventName": "UNC_M2M_TAG_HIT.NM_RD_HIT_CLEAN",
        "PerPkg": "1",
        "PublicDescription": "Counts clean full line read hits (reads and RFOs).",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Dirty NearMem Read Hit",
        "Counter": "0,1,2,3",
        "EventCode": "0x1F",
        "EventName": "UNC_M2M_TAG_HIT.NM_RD_HIT_DIRTY",
        "PerPkg": "1",
        "PublicDescription": "Counts dirty full line read hits (reads and RFOs).",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Tag Hit : Clean NearMem Underfill Hit",
        "Counter": "0,1,2,3",
        "EventCode": "0x1F",
        "EventName": "UNC_M2M_TAG_HIT.NM_UFILL_HIT_CLEAN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Tag Hit indicates when a request sent to the iMC hit in Near Memory. : Counts clean underfill hits due to a partial write",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Tag Hit : Dirty NearMem Underfill Hit",
        "Counter": "0,1,2,3",
        "EventCode": "0x1F",
        "EventName": "UNC_M2M_TAG_HIT.NM_UFILL_HIT_DIRTY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Tag Hit indicates when a request sent to the iMC hit in Near Memory. : Counts dirty underfill read hits due to a partial write",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "UNC_M2M_TAG_MISS",
        "Counter": "0,1,2,3",
        "EventCode": "0x4b",
        "EventName": "UNC_M2M_TAG_MISS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x3",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number AD Ingress Credits",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M2M_TGR_AD_CREDITS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Number BL Ingress Credits",
        "Counter": "0,1,2,3",
        "EventCode": "0x2f",
        "EventName": "UNC_M2M_TGR_BL_CREDITS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Tracker Inserts : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x32",
        "EventName": "UNC_M2M_TRACKER_INSERTS.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x104",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Tracker Inserts : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x32",
        "EventName": "UNC_M2M_TRACKER_INSERTS.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x204",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Tracker Occupancy : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_M2M_TRACKER_OCCUPANCY.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Tracker Occupancy : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_M2M_TRACKER_OCCUPANCY.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "WPQ Flush : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x42",
        "EventName": "UNC_M2M_WPQ_FLUSH.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "WPQ Flush : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x42",
        "EventName": "UNC_M2M_WPQ_FLUSH.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Regular : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x37",
        "EventName": "UNC_M2M_WPQ_NO_REG_CRD.CHN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Regular : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x37",
        "EventName": "UNC_M2M_WPQ_NO_REG_CRD.CHN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Special : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x38",
        "EventName": "UNC_M2M_WPQ_NO_SPEC_CRD.CHN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Special : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x38",
        "EventName": "UNC_M2M_WPQ_NO_SPEC_CRD.CHN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Inserts : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x40",
        "EventName": "UNC_M2M_WR_TRACKER_INSERTS.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Inserts : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x40",
        "EventName": "UNC_M2M_WR_TRACKER_INSERTS.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Cycles Not Empty : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x35",
        "EventName": "UNC_M2M_WR_TRACKER_NE.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Cycles Not Empty : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x35",
        "EventName": "UNC_M2M_WR_TRACKER_NE.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Cycles Not Empty : Mirror",
        "Counter": "0,1,2,3",
        "EventCode": "0x35",
        "EventName": "UNC_M2M_WR_TRACKER_NE.MIRR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Cycles Not Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x35",
        "EventName": "UNC_M2M_WR_TRACKER_NE.MIRR_NONTGR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Cycles Not Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x35",
        "EventName": "UNC_M2M_WR_TRACKER_NE.MIRR_PWR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Non-Posted Inserts : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x4d",
        "EventName": "UNC_M2M_WR_TRACKER_NONPOSTED_INSERTS.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Non-Posted Inserts : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x4d",
        "EventName": "UNC_M2M_WR_TRACKER_NONPOSTED_INSERTS.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Non-Posted Occupancy : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x4c",
        "EventName": "UNC_M2M_WR_TRACKER_NONPOSTED_OCCUPANCY.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Non-Posted Occupancy : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x4c",
        "EventName": "UNC_M2M_WR_TRACKER_NONPOSTED_OCCUPANCY.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Posted Inserts : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x48",
        "EventName": "UNC_M2M_WR_TRACKER_POSTED_INSERTS.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Posted Inserts : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x48",
        "EventName": "UNC_M2M_WR_TRACKER_POSTED_INSERTS.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Posted Occupancy : Channel 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_M2M_WR_TRACKER_POSTED_OCCUPANCY.CH0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "Write Tracker Posted Occupancy : Channel 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_M2M_WR_TRACKER_POSTED_OCCUPANCY.CH1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M2M"
    },
    {
        "BriefDescription": "CBox AD Credits Empty : Requests",
        "Counter": "0,1,2,3",
        "EventCode": "0x22",
        "EventName": "UNC_M3UPI_CHA_AD_CREDITS_EMPTY.REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "CBox AD Credits Empty : Requests : No credits available to send to Cbox on the AD Ring (covers higher CBoxes)",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "CBox AD Credits Empty : Snoops",
        "Counter": "0,1,2,3",
        "EventCode": "0x22",
        "EventName": "UNC_M3UPI_CHA_AD_CREDITS_EMPTY.SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "CBox AD Credits Empty : Snoops : No credits available to send to Cbox on the AD Ring (covers higher CBoxes)",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "CBox AD Credits Empty : VNA Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x22",
        "EventName": "UNC_M3UPI_CHA_AD_CREDITS_EMPTY.VNA",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "CBox AD Credits Empty : VNA Messages : No credits available to send to Cbox on the AD Ring (covers higher CBoxes)",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "CBox AD Credits Empty : Writebacks",
        "Counter": "0,1,2,3",
        "EventCode": "0x22",
        "EventName": "UNC_M3UPI_CHA_AD_CREDITS_EMPTY.WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "CBox AD Credits Empty : Writebacks : No credits available to send to Cbox on the AD Ring (covers higher CBoxes)",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M3UPI Clockticks",
        "Counter": "0,1,2,3",
        "EventCode": "0x01",
        "EventName": "UNC_M3UPI_CLOCKTICKS",
        "PerPkg": "1",
        "PublicDescription": "Number of M2UPI clock cycles while the event is enabled",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M3UPI CMS Clockticks",
        "Counter": "0,1,2,3",
        "EventCode": "0xc0",
        "EventName": "UNC_M3UPI_CMS_CLOCKTICKS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "D2C Sent",
        "Counter": "0,1,2,3",
        "EventCode": "0x2b",
        "EventName": "UNC_M3UPI_D2C_SENT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "D2C Sent : Count cases BL sends direct to core",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "D2U Sent",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_M3UPI_D2U_SENT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "D2U Sent : Cases where SMI3 sends D2U command",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Egress Blocking due to Ordering requirements : Down",
        "Counter": "0,1,2,3",
        "EventCode": "0xba",
        "EventName": "UNC_M3UPI_EGRESS_ORDERING.IV_SNOOPGO_DN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Egress Blocking due to Ordering requirements : Down : Counts number of cycles IV was blocked in the TGR Egress due to SNP/GO Ordering requirements",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Egress Blocking due to Ordering requirements : Up",
        "Counter": "0,1,2,3",
        "EventCode": "0xba",
        "EventName": "UNC_M3UPI_EGRESS_ORDERING.IV_SNOOPGO_UP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Egress Blocking due to Ordering requirements : Up : Counts number of cycles IV was blocked in the TGR Egress due to SNP/GO Ordering requirements",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : IIO0 and IIO1 share the same ring destination. (1 VN0 credit only)",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.IIO1_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : IIO0 and IIO1 share the same ring destination. (1 VN0 credit only) : No vn0 and vna credits available to send to M2",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : IIO2",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.IIO2_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : IIO2 : No vn0 and vna credits available to send to M2",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : IIO3",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.IIO3_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : IIO3 : No vn0 and vna credits available to send to M2",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : IIO4",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.IIO4_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : IIO4 : No vn0 and vna credits available to send to M2",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : IIO5",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.IIO5_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : IIO5 : No vn0 and vna credits available to send to M2",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : All IIO targets for NCS are in single mask. ORs them together",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : All IIO targets for NCS are in single mask. ORs them together : No vn0 and vna credits available to send to M2",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : Selected M2p BL NCS credits",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.NCS_SEL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : Selected M2p BL NCS credits : No vn0 and vna credits available to send to M2",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "M2 BL Credits Empty : IIO5",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_M3UPI_M2_BL_CREDITS_EMPTY.UBOX_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "M2 BL Credits Empty : IIO5 : No vn0 and vna credits available to send to M2",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Multi Slot Flit Received : AD - Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x3e",
        "EventName": "UNC_M3UPI_MULTI_SLOT_RCVD.AD_SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Multi Slot Flit Received : AD - Slot 0 : Multi slot flit received - S0, S1 and/or S2 populated (can use AK S0/S1 masks for AK allocations)",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Multi Slot Flit Received : AD - Slot 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x3e",
        "EventName": "UNC_M3UPI_MULTI_SLOT_RCVD.AD_SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Multi Slot Flit Received : AD - Slot 1 : Multi slot flit received - S0, S1 and/or S2 populated (can use AK S0/S1 masks for AK allocations)",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Multi Slot Flit Received : AD - Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x3e",
        "EventName": "UNC_M3UPI_MULTI_SLOT_RCVD.AD_SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Multi Slot Flit Received : AD - Slot 2 : Multi slot flit received - S0, S1 and/or S2 populated (can use AK S0/S1 masks for AK allocations)",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Multi Slot Flit Received : AK - Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x3e",
        "EventName": "UNC_M3UPI_MULTI_SLOT_RCVD.AK_SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Multi Slot Flit Received : AK - Slot 0 : Multi slot flit received - S0, S1 and/or S2 populated (can use AK S0/S1 masks for AK allocations)",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Multi Slot Flit Received : AK - Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x3e",
        "EventName": "UNC_M3UPI_MULTI_SLOT_RCVD.AK_SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Multi Slot Flit Received : AK - Slot 2 : Multi slot flit received - S0, S1 and/or S2 populated (can use AK S0/S1 masks for AK allocations)",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Multi Slot Flit Received : BL - Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x3e",
        "EventName": "UNC_M3UPI_MULTI_SLOT_RCVD.BL_SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Multi Slot Flit Received : BL - Slot 0 : Multi slot flit received - S0, S1 and/or S2 populated (can use AK S0/S1 masks for AK allocations)",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : REQ on AD",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : REQ on AD : VN0 message requested but lost arbitration : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : RSP on AD",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : RSP on AD : VN0 message requested but lost arbitration : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : SNP on AD",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : SNP on AD : VN0 message requested but lost arbitration : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : NCB on BL",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : NCB on BL : VN0 message requested but lost arbitration : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : NCS on BL",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : NCS on BL : VN0 message requested but lost arbitration : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : RSP on BL",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : RSP on BL : VN0 message requested but lost arbitration : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN0 : WB on BL",
        "Counter": "0",
        "EventCode": "0x4b",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN0.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN0 : WB on BL : VN0 message requested but lost arbitration : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : REQ on AD",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : REQ on AD : VN1 message requested but lost arbitration : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : RSP on AD",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : RSP on AD : VN1 message requested but lost arbitration : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : SNP on AD",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : SNP on AD : VN1 message requested but lost arbitration : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : NCB on BL",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : NCB on BL : VN1 message requested but lost arbitration : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : NCS on BL",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : NCS on BL : VN1 message requested but lost arbitration : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : RSP on BL",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : RSP on BL : VN1 message requested but lost arbitration : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Lost Arb for VN1 : WB on BL",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_M3UPI_RxC_ARB_LOST_VN1.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Lost Arb for VN1 : WB on BL : VN1 message requested but lost arbitration : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : AD, BL Parallel Win VN0",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.ADBL_PARALLEL_WIN_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : AD, BL Parallel Win VN0 : AD and BL messages won arbitration concurrently / in parallel",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : AD, BL Parallel Win VN1",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.ADBL_PARALLEL_WIN_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : AD, BL Parallel Win VN1 : AD and BL messages won arbitration concurrently / in parallel",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : Max Parallel Win",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.ALL_PARALLEL_WIN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : Max Parallel Win : VN0 and VN1 arbitration sub-pipelines both produced AD and BL winners (maximum possible parallel winners)",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : No Progress on Pending AD VN0",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.NO_PROG_AD_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : No Progress on Pending AD VN0 : Arbitration stage made no progress on pending ad vn0 messages because slotting stage cannot accept new message",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : No Progress on Pending AD VN1",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.NO_PROG_AD_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : No Progress on Pending AD VN1 : Arbitration stage made no progress on pending ad vn1 messages because slotting stage cannot accept new message",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : No Progress on Pending BL VN0",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.NO_PROG_BL_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : No Progress on Pending BL VN0 : Arbitration stage made no progress on pending bl vn0 messages because slotting stage cannot accept new message",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : No Progress on Pending BL VN1",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.NO_PROG_BL_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : No Progress on Pending BL VN1 : Arbitration stage made no progress on pending bl vn1 messages because slotting stage cannot accept new message",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Arb Miscellaneous : VN0, VN1 Parallel Win",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_M3UPI_RxC_ARB_MISC.VN01_PARALLEL_WIN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Arb Miscellaneous : VN0, VN1 Parallel Win : VN0 and VN1 arbitration sub-pipelines had parallel winners (at least one AD or BL on each side)",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : REQ on AD",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : REQ on AD : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : RSP on AD",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : RSP on AD : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : SNP on AD",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : SNP on AD : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : NCB on BL",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : NCB on BL : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : NCS on BL",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : NCS on BL : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : RSP on BL",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : RSP on BL : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN0 : WB on BL",
        "Counter": "0",
        "EventCode": "0x47",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN0.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN0 : WB on BL : VN0 message is blocked from requesting arbitration due to lack of remote UPI credits : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : REQ on AD",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : REQ on AD : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : RSP on AD",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : RSP on AD : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : SNP on AD",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : SNP on AD : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : NCB on BL",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : NCB on BL : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : NCS on BL",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : NCS on BL : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : RSP on BL",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : RSP on BL : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "No Credits to Arb for VN1 : WB on BL",
        "Counter": "0",
        "EventCode": "0x48",
        "EventName": "UNC_M3UPI_RxC_ARB_NOCRD_VN1.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "No Credits to Arb for VN1 : WB on BL : VN1 message is blocked from requesting arbitration due to lack of remote UPI credits : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : REQ on AD",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : REQ on AD : VN0 message was not able to request arbitration while some other message won arbitration : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : RSP on AD",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : RSP on AD : VN0 message was not able to request arbitration while some other message won arbitration : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : SNP on AD",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : SNP on AD : VN0 message was not able to request arbitration while some other message won arbitration : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : NCB on BL",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : NCB on BL : VN0 message was not able to request arbitration while some other message won arbitration : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : NCS on BL",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : NCS on BL : VN0 message was not able to request arbitration while some other message won arbitration : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : RSP on BL",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : RSP on BL : VN0 message was not able to request arbitration while some other message won arbitration : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN0 : WB on BL",
        "Counter": "0",
        "EventCode": "0x49",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN0.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN0 : WB on BL : VN0 message was not able to request arbitration while some other message won arbitration : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : REQ on AD",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : REQ on AD : VN1 message was not able to request arbitration while some other message won arbitration : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : RSP on AD",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : RSP on AD : VN1 message was not able to request arbitration while some other message won arbitration : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : SNP on AD",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : SNP on AD : VN1 message was not able to request arbitration while some other message won arbitration : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : NCB on BL",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : NCB on BL : VN1 message was not able to request arbitration while some other message won arbitration : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : NCS on BL",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : NCS on BL : VN1 message was not able to request arbitration while some other message won arbitration : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : RSP on BL",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : RSP on BL : VN1 message was not able to request arbitration while some other message won arbitration : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Can't Arb for VN1 : WB on BL",
        "Counter": "0",
        "EventCode": "0x4a",
        "EventName": "UNC_M3UPI_RxC_ARB_NOREQ_VN1.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Can't Arb for VN1 : WB on BL : VN1 message was not able to request arbitration while some other message won arbitration : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Ingress Queue Bypasses : AD to Slot 0 on BL Arb",
        "Counter": "0,1,2",
        "EventCode": "0x40",
        "EventName": "UNC_M3UPI_RxC_BYPASSED.AD_S0_BL_ARB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Ingress Queue Bypasses : AD to Slot 0 on BL Arb : Number of times message is bypassed around the Ingress Queue : AD is taking bypass to slot 0 of independent flit while bl message is in arbitration",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Ingress Queue Bypasses : AD to Slot 0 on Idle",
        "Counter": "0,1,2",
        "EventCode": "0x40",
        "EventName": "UNC_M3UPI_RxC_BYPASSED.AD_S0_IDLE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Ingress Queue Bypasses : AD to Slot 0 on Idle : Number of times message is bypassed around the Ingress Queue : AD is taking bypass to slot 0 of independent flit while pipeline is idle",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Ingress Queue Bypasses : AD + BL to Slot 1",
        "Counter": "0,1,2",
        "EventCode": "0x40",
        "EventName": "UNC_M3UPI_RxC_BYPASSED.AD_S1_BL_SLOT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Ingress Queue Bypasses : AD + BL to Slot 1 : Number of times message is bypassed around the Ingress Queue : AD is taking bypass to flit slot 1 while merging with bl message in same flit",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Ingress Queue Bypasses : AD + BL to Slot 2",
        "Counter": "0,1,2",
        "EventCode": "0x40",
        "EventName": "UNC_M3UPI_RxC_BYPASSED.AD_S2_BL_SLOT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Ingress Queue Bypasses : AD + BL to Slot 2 : Number of times message is bypassed around the Ingress Queue : AD is taking bypass to flit slot 2 while merging with bl message in same flit",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Miscellaneous Credit Events : Any In BGF FIFO",
        "Counter": "0",
        "EventCode": "0x5f",
        "EventName": "UNC_M3UPI_RxC_CRD_MISC.ANY_BGF_FIFO",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Miscellaneous Credit Events : Any In BGF FIFO : Indication that at least one packet (flit) is in the bgf (fifo only)",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Miscellaneous Credit Events : Any in BGF Path",
        "Counter": "0",
        "EventCode": "0x5f",
        "EventName": "UNC_M3UPI_RxC_CRD_MISC.ANY_BGF_PATH",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Miscellaneous Credit Events : Any in BGF Path : Indication that at least one packet (flit) is in the bgf path (i.e. pipe to fifo)",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Miscellaneous Credit Events",
        "Counter": "0",
        "EventCode": "0x5f",
        "EventName": "UNC_M3UPI_RxC_CRD_MISC.LT1_FOR_D2K",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Miscellaneous Credit Events : d2k credit count is less than 1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Miscellaneous Credit Events",
        "Counter": "0",
        "EventCode": "0x5f",
        "EventName": "UNC_M3UPI_RxC_CRD_MISC.LT2_FOR_D2K",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Miscellaneous Credit Events : d2k credit count is less than 2",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Miscellaneous Credit Events : No D2K For Arb",
        "Counter": "0",
        "EventCode": "0x5f",
        "EventName": "UNC_M3UPI_RxC_CRD_MISC.VN0_NO_D2K_FOR_ARB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Miscellaneous Credit Events : No D2K For Arb : VN0 BL RSP message was blocked from arbitration request due to lack of D2K CMP credit",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Miscellaneous Credit Events",
        "Counter": "0",
        "EventCode": "0x5f",
        "EventName": "UNC_M3UPI_RxC_CRD_MISC.VN1_NO_D2K_FOR_ARB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Miscellaneous Credit Events : VN1 BL RSP message was blocked from arbitration request due to lack of D2K CMP credits",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy : Credits Consumed",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.CONSUMED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : Credits Consumed : number of remote vna credits consumed per cycle",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy : D2K Credits",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.D2K_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : D2K Credits : D2K completion fifo credit occupancy (credits in use), accumulated across all cycles",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy : Packets in BGF FIFO",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.FLITS_IN_FIFO",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : Packets in BGF FIFO : Occupancy of m3upi ingress -> upi link layer bgf; packets (flits) in fifo",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy : Packets in BGF Path",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.FLITS_IN_PATH",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : Packets in BGF Path : Occupancy of m3upi ingress -> upi link layer bgf; packets (flits) in path (i.e. pipe to fifo or fifo)",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.P1P_FIFO",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : count of bl messages in pump-1-pending state, in completion fifo only",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.P1P_TOTAL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : count of bl messages in pump-1-pending state, in marker table and in fifo",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy : Transmit Credits",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.TxQ_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : Transmit Credits : Link layer transmit queue credit occupancy (credits in use), accumulated across all cycles",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Credit Occupancy : VNA In Use",
        "Counter": "0",
        "EventCode": "0x60",
        "EventName": "UNC_M3UPI_RxC_CRD_OCC.VNA_IN_USE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Credit Occupancy : VNA In Use : Remote UPI VNA credit occupancy (number of credits in use), accumulated across all cycles",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : REQ on AD",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : REQ on AD : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : RSP on AD",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : RSP on AD : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : SNP on AD",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : SNP on AD : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : NCB on BL",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : NCB on BL : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : NCS on BL",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : NCS on BL : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : RSP on BL",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : RSP on BL : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : WB on BL",
        "Counter": "0",
        "EventCode": "0x43",
        "EventName": "UNC_M3UPI_RxC_CYCLES_NE_VN0.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Ingress (from CMS) Queue - Cycles Not Empty : WB on BL : Counts the number of cycles when the UPI Ingress is not empty.  This tracks one of the three rings that are used by the UPI agent.  This can be used in conjunction with the UPI Ingress Occupancy Accumulator event in order to calculate average queue occupancy.  Multiple ingress buffers can be tracked at a given time using multiple counters. : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Data Flit Not Sent : All",
        "Counter": "0",
        "EventCode": "0x55",
        "EventName": "UNC_M3UPI_RxC_DATA_FLITS_NOT_SENT.ALL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Data Flit Not Sent : All : Data flit is ready for transmission but could not be sent : data flit is ready for transmission but could not be sent for any reason, e.g. low credits, low tsv, stall injection",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Data Flit Not Sent : No BGF Credits",
        "Counter": "0",
        "EventCode": "0x55",
        "EventName": "UNC_M3UPI_RxC_DATA_FLITS_NOT_SENT.NO_BGF",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Data Flit Not Sent : No BGF Credits : Data flit is ready for transmission but could not be sent",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Data Flit Not Sent : No TxQ Credits",
        "Counter": "0",
        "EventCode": "0x55",
        "EventName": "UNC_M3UPI_RxC_DATA_FLITS_NOT_SENT.NO_TXQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Data Flit Not Sent : No TxQ Credits : Data flit is ready for transmission but could not be sent",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Data Flit Not Sent : TSV High",
        "Counter": "0",
        "EventCode": "0x55",
        "EventName": "UNC_M3UPI_RxC_DATA_FLITS_NOT_SENT.TSV_HI",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Data Flit Not Sent : TSV High : Data flit is ready for transmission but could not be sent : data flit is ready for transmission but was not sent while tsv high",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Data Flit Not Sent : Cycle valid for Flit",
        "Counter": "0",
        "EventCode": "0x55",
        "EventName": "UNC_M3UPI_RxC_DATA_FLITS_NOT_SENT.VALID_FOR_FLIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Data Flit Not Sent : Cycle valid for Flit : Data flit is ready for transmission but could not be sent : data flit is ready for transmission but was not sent while cycle is valid for flit transmission",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence : Wait on Pump 0",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P0_WAIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : Wait on Pump 0 : generating bl data flit sequence; waiting for data pump 0",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P1P_AT_LIMIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : pump-1-pending logic is at capacity (pending table plus completion fifo at limit)",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P1P_BUSY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : pump-1-pending logic is tracking at least one message",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P1P_FIFO_FULL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : pump-1-pending completion fifo is full",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P1P_HOLD_P0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : pump-1-pending logic is at or near capacity, such that pump-0-only bl messages are getting stalled in slotting stage",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P1P_TO_LIMBO",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : a bl message finished but is in limbo and moved to pump-1-pending logic",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Generating BL Data Flit Sequence : Wait on Pump 1",
        "Counter": "0",
        "EventCode": "0x57",
        "EventName": "UNC_M3UPI_RxC_FLITS_GEN_BL.P1_WAIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Generating BL Data Flit Sequence : Wait on Pump 1 : generating bl data flit sequence; waiting for data pump 1",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_IN_HOLDOFF",
        "Counter": "0",
        "EventCode": "0x58",
        "EventName": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_IN_HOLDOFF",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": slot 2 request naturally serviced during hold-off period",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_IN_SERVICE",
        "Counter": "0",
        "EventCode": "0x58",
        "EventName": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_IN_SERVICE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": slot 2 request forcibly serviced during service window",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_RECEIVED",
        "Counter": "0",
        "EventCode": "0x58",
        "EventName": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_RECEIVED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": slot 2 request received from link layer while idle (with no slot 2 request active immediately prior)",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_WITHDRAWN",
        "Counter": "0",
        "EventCode": "0x58",
        "EventName": "UNC_M3UPI_RxC_FLITS_MISC.S2REQ_WITHDRAWN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": slot 2 request withdrawn during hold-off period or service window",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : All",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.ALL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : Needs Data Flit",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.NEED_DATA",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Slotting BL Message Into Header Flit : Needs Data Flit : BL message requires data flit sequence",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : Wait on Pump 0",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.P0_WAIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Slotting BL Message Into Header Flit : Wait on Pump 0 : Waiting for header pump 0",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : Don't Need Pump 1",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.P1_NOT_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Slotting BL Message Into Header Flit : Don't Need Pump 1 : Header pump 1 is not required for flit",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : Don't Need Pump 1 - Bubble",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.P1_NOT_REQ_BUT_BUBBLE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Slotting BL Message Into Header Flit : Don't Need Pump 1 - Bubble : Header pump 1 is not required for flit but flit transmission delayed",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : Don't Need Pump 1 - Not Avail",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.P1_NOT_REQ_NOT_AVAIL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Slotting BL Message Into Header Flit : Don't Need Pump 1 - Not Avail : Header pump 1 is not required for flit and not available",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Slotting BL Message Into Header Flit : Wait on Pump 1",
        "Counter": "0",
        "EventCode": "0x56",
        "EventName": "UNC_M3UPI_RxC_FLITS_SLOT_BL.P1_WAIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Slotting BL Message Into Header Flit : Wait on Pump 1 : Waiting for header pump 1",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1 : Accumulate",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.ACCUM",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Accumulate : Events related to Header Flit Generation - Set 1 : Header flit slotting control state machine is in any accumulate state; multi-message flit may be assembled over multiple cycles",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1 : Accumulate Ready",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.ACCUM_READ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Accumulate Ready : Events related to Header Flit Generation - Set 1 : header flit slotting control state machine is in accum_ready state; flit is ready to send but transmission is blocked; more messages may be slotted into flit",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1 : Accumulate Wasted",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.ACCUM_WASTED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Accumulate Wasted : Events related to Header Flit Generation - Set 1 : Flit is being assembled over multiple cycles, but no additional message is being slotted into flit in current cycle; accumulate cycle is wasted",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1 : Run-Ahead - Blocked",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.AHEAD_BLOCKED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Run-Ahead - Blocked : Events related to Header Flit Generation - Set 1 : Header flit slotting entered run-ahead state; new header flit is started while transmission of prior, fully assembled flit is blocked",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.AHEAD_MSG1_AFTER",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Events related to Header Flit Generation - Set 1 : run-ahead mode: message was slotted only after run-ahead was over; run-ahead mode definitely wasted",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1 : Run-Ahead - Message",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.AHEAD_MSG1_DURING",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Run-Ahead - Message : Events related to Header Flit Generation - Set 1 : run-ahead mode: one message slotted during run-ahead",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.AHEAD_MSG2_AFTER",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Events related to Header Flit Generation - Set 1 : run-ahead mode: second message slotted immediately after run-ahead; potential run-ahead success",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 1",
        "Counter": "0",
        "EventCode": "0x51",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR1.AHEAD_MSG2_SENT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 1 : Events related to Header Flit Generation - Set 1 : run-ahead mode: two (or three) message flit sent immediately after run-ahead; complete run-ahead success",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 2 : Parallel Ok",
        "Counter": "0",
        "EventCode": "0x52",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR2.PAR",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 2 : Parallel Ok : Events related to Header Flit Generation - Set 2 : new header flit construction may proceed in parallel with data flit sequence",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 2 : Parallel Flit Finished",
        "Counter": "0",
        "EventCode": "0x52",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR2.PAR_FLIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 2 : Parallel Flit Finished : Events related to Header Flit Generation - Set 2 : header flit finished assembly in parallel with data flit sequence",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 2 : Parallel Message",
        "Counter": "0",
        "EventCode": "0x52",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR2.PAR_MSG",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 2 : Parallel Message : Events related to Header Flit Generation - Set 2 : message is slotted into header flit in parallel with data flit sequence",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 2 : Rate-matching Stall",
        "Counter": "0",
        "EventCode": "0x52",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR2.RMSTALL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 2 : Rate-matching Stall : Events related to Header Flit Generation - Set 2 : Rate-matching stall injected",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Flit Gen - Header 2 : Rate-matching Stall - No Message",
        "Counter": "0",
        "EventCode": "0x52",
        "EventName": "UNC_M3UPI_RxC_FLIT_GEN_HDR2.RMSTALL_NOMSG",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Flit Gen - Header 2 : Rate-matching Stall - No Message : Events related to Header Flit Generation - Set 2 : Rate matching stall injected, but no additional message slotted during stall cycle",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : One Message",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.1_MSG",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Sent Header Flit : One Message : One message in flit; VNA or non-VNA flit",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : One Message in non-VNA",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.1_MSG_VNX",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Sent Header Flit : One Message in non-VNA : One message in flit; non-VNA flit",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : Two Messages",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.2_MSGS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Sent Header Flit : Two Messages : Two messages in flit; VNA flit",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : Three Messages",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.3_MSGS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Sent Header Flit : Three Messages : Three messages in flit; VNA flit",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : One Slot Taken",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.SLOTS_1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : Two Slots Taken",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.SLOTS_2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Sent Header Flit : All Slots Taken",
        "Counter": "0",
        "EventCode": "0x54",
        "EventName": "UNC_M3UPI_RxC_HDR_FLITS_SENT.SLOTS_3",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : All",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.ALL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : All : header flit is ready for transmission but could not be sent : header flit is ready for transmission but could not be sent for any reason, e.g. no credits, low tsv, stall injection",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : No BGF Credits",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.NO_BGF_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : No BGF Credits : header flit is ready for transmission but could not be sent : No BGF credits available",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : No BGF Credits + No Extra Message Slotted",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.NO_BGF_NO_MSG",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : No BGF Credits + No Extra Message Slotted : header flit is ready for transmission but could not be sent : No BGF credits available; no additional message slotted into flit",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : No TxQ Credits",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.NO_TXQ_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : No TxQ Credits : header flit is ready for transmission but could not be sent : No TxQ credits available",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : No TxQ Credits + No Extra Message Slotted",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.NO_TXQ_NO_MSG",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : No TxQ Credits + No Extra Message Slotted : header flit is ready for transmission but could not be sent : No TxQ credits available; no additional message slotted into flit",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : TSV High",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.TSV_HI",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : TSV High : header flit is ready for transmission but could not be sent : header flit is ready for transmission but was not sent while tsv high",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Header Not Sent : Cycle valid for Flit",
        "Counter": "0",
        "EventCode": "0x53",
        "EventName": "UNC_M3UPI_RxC_HDR_FLIT_NOT_SENT.VALID_FOR_FLIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Header Not Sent : Cycle valid for Flit : header flit is ready for transmission but could not be sent : header flit is ready for transmission but was not sent while cycle is valid for flit transmission",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Message Held : Can't Slot AD",
        "Counter": "0,1,2",
        "EventCode": "0x50",
        "EventName": "UNC_M3UPI_RxC_HELD.CANT_SLOT_AD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Held : Can't Slot AD : some AD message could not be slotted (logical OR of all AD events under INGR_SLOT_CANT_MC_VN{0,1})",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Message Held : Can't Slot BL",
        "Counter": "0,1,2",
        "EventCode": "0x50",
        "EventName": "UNC_M3UPI_RxC_HELD.CANT_SLOT_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Held : Can't Slot BL : some BL message could not be slotted (logical OR of all BL events under INGR_SLOT_CANT_MC_VN{0,1})",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Message Held : Parallel Attempt",
        "Counter": "0,1,2",
        "EventCode": "0x50",
        "EventName": "UNC_M3UPI_RxC_HELD.PARALLEL_ATTEMPT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Held : Parallel Attempt : ad and bl messages attempted to slot into the same flit in parallel",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Message Held : Parallel Success",
        "Counter": "0,1,2",
        "EventCode": "0x50",
        "EventName": "UNC_M3UPI_RxC_HELD.PARALLEL_SUCCESS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Held : Parallel Success : ad and bl messages were actually slotted into the same flit in parallel",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Message Held : VN0",
        "Counter": "0,1,2",
        "EventCode": "0x50",
        "EventName": "UNC_M3UPI_RxC_HELD.VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Held : VN0 : vn0 message(s) that couldn't be slotted into last vn0 flit are held in slotting stage while processing vn1 flit",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Message Held : VN1",
        "Counter": "0,1,2",
        "EventCode": "0x50",
        "EventName": "UNC_M3UPI_RxC_HELD.VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Held : VN1 : vn1 message(s) that couldn't be slotted into last vn1 flit are held in slotting stage while processing vn0 flit",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : REQ on AD",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : REQ on AD : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : RSP on AD",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : RSP on AD : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : SNP on AD",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : SNP on AD : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : NCB on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : NCB on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : NCS on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : NCS on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : RSP on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : RSP on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 message can't slot into flit : WB on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4e",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN0.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 message can't slot into flit : WB on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : REQ on AD",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.AD_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : REQ on AD : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : RSP on AD",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.AD_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : RSP on AD : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : SNP on AD",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.AD_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : SNP on AD : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : NCB on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.BL_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : NCB on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : NCS on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.BL_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : NCS on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Non-Coherent Standard (NCS) messages on BL.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : RSP on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.BL_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : RSP on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 message can't slot into flit : WB on BL",
        "Counter": "0,1,2",
        "EventCode": "0x4f",
        "EventName": "UNC_M3UPI_RxC_PACKING_MISS_VN1.BL_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 message can't slot into flit : WB on BL : Count cases where Ingress has packets to send but did not have time to pack into flit before sending to Agent so slot was left NULL which could have been used. : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Remote VNA Credits : Any In Use",
        "Counter": "0",
        "EventCode": "0x5a",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD.ANY_IN_USE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Remote VNA Credits : Any In Use : At least one remote vna credit is in use",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Remote VNA Credits : Corrected",
        "Counter": "0",
        "EventCode": "0x5a",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD.CORRECTED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Remote VNA Credits : Corrected : Number of remote vna credits corrected (local return) per cycle",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Remote VNA Credits : Level < 1",
        "Counter": "0",
        "EventCode": "0x5a",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD.LT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Remote VNA Credits : Level < 1 : Remote vna credit level is less than 1 (i.e. no vna credits available)",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Remote VNA Credits : Level < 10",
        "Counter": "0",
        "EventCode": "0x5a",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD.LT10",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Remote VNA Credits : Level < 10 : remote vna credit level is less than 10; parallel vn0/vn1 arb not possible",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Remote VNA Credits : Level < 4",
        "Counter": "0",
        "EventCode": "0x5a",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD.LT4",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Remote VNA Credits : Level < 4 : Remote vna credit level is less than 4; bl (or ad requiring 4 vna) cannot arb on vna",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Remote VNA Credits : Level < 5",
        "Counter": "0",
        "EventCode": "0x5a",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD.LT5",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Remote VNA Credits : Level < 5 : Remote vna credit level is less than 5; parallel ad/bl arb on vna not possible",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.REQ_ADBL_ALLOC_L5",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.REQ_ADBL_ALLOC_L5",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": remote vna credit count was less than 5 and allocation to ad or bl messages was required",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.REQ_VN01_ALLOC_LT10",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.REQ_VN01_ALLOC_LT10",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": remote vna credit count was less than 10 and allocation to vn0 or vn1 was required",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN0_JUST_AD",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN0_JUST_AD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": on vn0, remote vna credits were allocated only to ad messages, not to bl",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN0_JUST_BL",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN0_JUST_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": on vn0, remote vna credits were allocated only to bl messages, not to ad",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN0_ONLY",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN0_ONLY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": remote vna credits were allocated only to vn0, not to vn1",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN1_JUST_AD",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN1_JUST_AD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": on vn1, remote vna credits were allocated only to ad messages, not to bl",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN1_JUST_BL",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN1_JUST_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": on vn1, remote vna credits were allocated only to bl messages, not to ad",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN1_ONLY",
        "Counter": "0",
        "EventCode": "0x59",
        "EventName": "UNC_M3UPI_RxC_VNA_CRD_MISC.VN1_ONLY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": remote vna credits were allocated only to vn1, not to vn0",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN0 REQ Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN0_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN0 REQ Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN0 RSP Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN0 RSP Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN0 SNP Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN0_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN0 SNP Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN0 WB Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN0 WB Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN1 REQ Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN1 REQ Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN1 RSP Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN1 RSP Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN1 SNP Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN1_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN1 SNP Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for AD : VN1 WB Messages",
        "Counter": "0",
        "EventCode": "0x30",
        "EventName": "UNC_M3UPI_TxC_AD_ARB_FAIL.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for AD : VN1 WB Messages : AD arb but no win; arb request asserted but not won",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD FlowQ Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x2C",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_BYPASS",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "PublicDescription": "Counts cases when the AD flowQ is bypassed (S0, S1 and S2 indicate which slot was bypassed with S0 having the highest priority and S2 the least)",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD FlowQ Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x2c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_BYPASS.AD_SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD FlowQ Bypass : Counts cases when the AD flowQ is bypassed (S0, S1 and S2 indicate which slot was bypassed with S0 having the highest priority and S2 the least)",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD FlowQ Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x2c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_BYPASS.AD_SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD FlowQ Bypass : Counts cases when the AD flowQ is bypassed (S0, S1 and S2 indicate which slot was bypassed with S0 having the highest priority and S2 the least)",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD FlowQ Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x2c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_BYPASS.AD_SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD FlowQ Bypass : Counts cases when the AD flowQ is bypassed (S0, S1 and S2 indicate which slot was bypassed with S0 having the highest priority and S2 the least)",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD FlowQ Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x2c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_BYPASS.BL_EARLY_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD FlowQ Bypass : Counts cases when the AD flowQ is bypassed (S0, S1 and S2 indicate which slot was bypassed with S0 having the highest priority and S2 the least)",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN0 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN0_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN0 REQ Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN0 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN0 RSP Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN0 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN0_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN0 SNP Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN0 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN0 WB Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN1 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN1 REQ Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN1 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN1 RSP Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN1 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN1_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN1 SNP Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Not Empty : VN1 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_CYCLES_NE.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Not Empty : VN1 WB Messages : Number of cycles the AD Egress queue is Not Empty",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN0 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN0_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN0 REQ Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN0 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN0 RSP Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN0 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN0_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN0 SNP Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN0 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN0 WB Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN1 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN1 REQ Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN1 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN1 RSP Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Inserts : VN1 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_INSERTS.VN1_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Flow Q Inserts : VN1 SNP Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN0 REQ Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN0_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN0 RSP Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN0 SNP Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN0_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN0 WB Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN1 REQ Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN1 RSP Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AD Flow Q Occupancy : VN1 SNP Messages",
        "Counter": "0",
        "EventCode": "0x1c",
        "EventName": "UNC_M3UPI_TxC_AD_FLQ_OCCUPANCY.VN1_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AK Flow Q Inserts",
        "Counter": "0,1,2,3",
        "EventCode": "0x2f",
        "EventName": "UNC_M3UPI_TxC_AK_FLQ_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "AK Flow Q Occupancy",
        "Counter": "0",
        "EventCode": "0x1e",
        "EventName": "UNC_M3UPI_TxC_AK_FLQ_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN0 NCB Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN0_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN0 NCB Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN0 NCS Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN0_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN0 NCS Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN0 RSP Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN0 RSP Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN0 WB Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN0 WB Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN1 NCS Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN1_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN1 NCS Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN1 NCB Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN1_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN1 NCB Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN1 RSP Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN1 RSP Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Failed ARB for BL : VN1 WB Messages",
        "Counter": "0",
        "EventCode": "0x35",
        "EventName": "UNC_M3UPI_TxC_BL_ARB_FAIL.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Failed ARB for BL : VN1 WB Messages : BL arb but no win; arb request asserted but not won",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN0 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN0_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN0 REQ Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN0 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN0 RSP Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN0 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN0_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN0 SNP Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN0 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN0 WB Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN1 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN1 REQ Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN1 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN1 RSP Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN1 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN1_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN1 SNP Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Not Empty : VN1 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_CYCLES_NE.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Not Empty : VN1 WB Messages : Number of cycles the BL Egress queue is Not Empty",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN0 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN0_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN0 RSP Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN0 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN0_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN0 WB Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN0 NCS Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN0 NCS Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN0 NCB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN0 NCB Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN1 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN1_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN1 RSP Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN1 WB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN1_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN1 WB Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN1_NCB Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN1_NCB Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Inserts : VN1_NCS Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x2e",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_INSERTS.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Flow Q Inserts : VN1_NCS Messages : Counts the number of allocations into the QPI FlowQ. This can be used in conjunction with the QPI FlowQ Occupancy Accumulator event in order to calculate average queue latency.  Only a single FlowQ queue can be tracked at any given time.  It is not possible to filter based on direction or polarity.",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 NCB Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN0_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 NCS Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN0_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 RSP Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 WB Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1_NCS Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN1_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1_NCB Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN1_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1 RSP Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1 WB Messages",
        "Counter": "0",
        "EventCode": "0x1d",
        "EventName": "UNC_M3UPI_TxC_BL_FLQ_OCCUPANCY.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 RSP Messages",
        "Counter": "0",
        "EventCode": "0x1f",
        "EventName": "UNC_M3UPI_TxC_BL_WB_FLQ_OCCUPANCY.VN0_LOCAL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 WB Messages",
        "Counter": "0",
        "EventCode": "0x1f",
        "EventName": "UNC_M3UPI_TxC_BL_WB_FLQ_OCCUPANCY.VN0_THROUGH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN0 NCB Messages",
        "Counter": "0",
        "EventCode": "0x1f",
        "EventName": "UNC_M3UPI_TxC_BL_WB_FLQ_OCCUPANCY.VN0_WRPULL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1 RSP Messages",
        "Counter": "0",
        "EventCode": "0x1f",
        "EventName": "UNC_M3UPI_TxC_BL_WB_FLQ_OCCUPANCY.VN1_LOCAL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1 WB Messages",
        "Counter": "0",
        "EventCode": "0x1f",
        "EventName": "UNC_M3UPI_TxC_BL_WB_FLQ_OCCUPANCY.VN1_THROUGH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "BL Flow Q Occupancy : VN1_NCS Messages",
        "Counter": "0",
        "EventCode": "0x1f",
        "EventName": "UNC_M3UPI_TxC_BL_WB_FLQ_OCCUPANCY.VN1_WRPULL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VN0 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VN0_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VN0 REQ Messages : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VN0 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VN0 RSP Messages : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VN0 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VN0_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VN0 SNP Messages : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VN1 REQ Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VN1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VN1 REQ Messages : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VN1 RSP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VN1 RSP Messages : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VN1 SNP Messages",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VN1_SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VN1 SNP Messages : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 AD Credits Empty : VNA",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_M3UPI_UPI_PEER_AD_CREDITS_EMPTY.VNA",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 AD Credits Empty : VNA : No credits available to send to UPIs on the AD Ring",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VN0 RSP Messages",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VN0_NCS_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VN0 RSP Messages : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VN0 REQ Messages",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VN0_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VN0 REQ Messages : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VN0 SNP Messages",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VN0_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VN0 SNP Messages : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VN1 RSP Messages",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VN1_NCS_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VN1 RSP Messages : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VN1 REQ Messages",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VN1_RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VN1 REQ Messages : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VN1 SNP Messages",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VN1_WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VN1 SNP Messages : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UPI0 BL Credits Empty : VNA",
        "Counter": "0",
        "EventCode": "0x21",
        "EventName": "UNC_M3UPI_UPI_PEER_BL_CREDITS_EMPTY.VNA",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "UPI0 BL Credits Empty : VNA : No credits available to send to UPI on the BL Ring (diff between non-SMI and SMI mode)",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "FlowQ Generated Prefetch",
        "Counter": "0,1,2,3",
        "EventCode": "0x29",
        "EventName": "UNC_M3UPI_UPI_PREFETCH_SPAWN",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "FlowQ Generated Prefetch : Count cases where FlowQ causes spawn of Prefetch to iMC/SMI3 target",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Credit Used : WB on BL",
        "Counter": "0",
        "EventCode": "0x5b",
        "EventName": "UNC_M3UPI_VN0_CREDITS_USED.NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Used : WB on BL : Number of times a VN0 credit was used on the DRS message channel.  In order for a request to be transferred across UPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN0.  VNA is a shared pool used to achieve high performance.  The VN0 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN0 if they fail.  This counts the number of times a VN0 credit was used.  Note that a single VN0 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN0 will only count a single credit even though it may use multiple buffers. : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Credit Used : NCB on BL",
        "Counter": "0",
        "EventCode": "0x5b",
        "EventName": "UNC_M3UPI_VN0_CREDITS_USED.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Used : NCB on BL : Number of times a VN0 credit was used on the DRS message channel.  In order for a request to be transferred across UPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN0.  VNA is a shared pool used to achieve high performance.  The VN0 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN0 if they fail.  This counts the number of times a VN0 credit was used.  Note that a single VN0 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN0 will only count a single credit even though it may use multiple buffers. : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Credit Used : REQ on AD",
        "Counter": "0",
        "EventCode": "0x5b",
        "EventName": "UNC_M3UPI_VN0_CREDITS_USED.REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Used : REQ on AD : Number of times a VN0 credit was used on the DRS message channel.  In order for a request to be transferred across UPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN0.  VNA is a shared pool used to achieve high performance.  The VN0 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN0 if they fail.  This counts the number of times a VN0 credit was used.  Note that a single VN0 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN0 will only count a single credit even though it may use multiple buffers. : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Credit Used : RSP on AD",
        "Counter": "0",
        "EventCode": "0x5b",
        "EventName": "UNC_M3UPI_VN0_CREDITS_USED.RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Used : RSP on AD : Number of times a VN0 credit was used on the DRS message channel.  In order for a request to be transferred across UPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN0.  VNA is a shared pool used to achieve high performance.  The VN0 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN0 if they fail.  This counts the number of times a VN0 credit was used.  Note that a single VN0 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN0 will only count a single credit even though it may use multiple buffers. : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Credit Used : SNP on AD",
        "Counter": "0",
        "EventCode": "0x5b",
        "EventName": "UNC_M3UPI_VN0_CREDITS_USED.SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Used : SNP on AD : Number of times a VN0 credit was used on the DRS message channel.  In order for a request to be transferred across UPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN0.  VNA is a shared pool used to achieve high performance.  The VN0 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN0 if they fail.  This counts the number of times a VN0 credit was used.  Note that a single VN0 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN0 will only count a single credit even though it may use multiple buffers. : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 Credit Used : RSP on BL",
        "Counter": "0",
        "EventCode": "0x5b",
        "EventName": "UNC_M3UPI_VN0_CREDITS_USED.WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Used : RSP on BL : Number of times a VN0 credit was used on the DRS message channel.  In order for a request to be transferred across UPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN0.  VNA is a shared pool used to achieve high performance.  The VN0 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN0 if they fail.  This counts the number of times a VN0 credit was used.  Note that a single VN0 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN0 will only count a single credit even though it may use multiple buffers. : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 No Credits : WB on BL",
        "Counter": "0",
        "EventCode": "0x5d",
        "EventName": "UNC_M3UPI_VN0_NO_CREDITS.NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 No Credits : WB on BL : Number of Cycles there were no VN0 Credits : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 No Credits : NCB on BL",
        "Counter": "0",
        "EventCode": "0x5d",
        "EventName": "UNC_M3UPI_VN0_NO_CREDITS.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 No Credits : NCB on BL : Number of Cycles there were no VN0 Credits : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 No Credits : REQ on AD",
        "Counter": "0",
        "EventCode": "0x5d",
        "EventName": "UNC_M3UPI_VN0_NO_CREDITS.REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 No Credits : REQ on AD : Number of Cycles there were no VN0 Credits : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 No Credits : RSP on AD",
        "Counter": "0",
        "EventCode": "0x5d",
        "EventName": "UNC_M3UPI_VN0_NO_CREDITS.RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 No Credits : RSP on AD : Number of Cycles there were no VN0 Credits : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 No Credits : SNP on AD",
        "Counter": "0",
        "EventCode": "0x5d",
        "EventName": "UNC_M3UPI_VN0_NO_CREDITS.SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 No Credits : SNP on AD : Number of Cycles there were no VN0 Credits : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN0 No Credits : RSP on BL",
        "Counter": "0",
        "EventCode": "0x5d",
        "EventName": "UNC_M3UPI_VN0_NO_CREDITS.WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 No Credits : RSP on BL : Number of Cycles there were no VN0 Credits : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 Credit Used : WB on BL",
        "Counter": "0",
        "EventCode": "0x5c",
        "EventName": "UNC_M3UPI_VN1_CREDITS_USED.NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Used : WB on BL : Number of times a VN1 credit was used on the WB message channel.  In order for a request to be transferred across QPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN1.  VNA is a shared pool used to achieve high performance.  The VN1 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN1 if they fail.  This counts the number of times a VN1 credit was used.  Note that a single VN1 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN1 will only count a single credit even though it may use multiple buffers. : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 Credit Used : NCB on BL",
        "Counter": "0",
        "EventCode": "0x5c",
        "EventName": "UNC_M3UPI_VN1_CREDITS_USED.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Used : NCB on BL : Number of times a VN1 credit was used on the WB message channel.  In order for a request to be transferred across QPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN1.  VNA is a shared pool used to achieve high performance.  The VN1 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN1 if they fail.  This counts the number of times a VN1 credit was used.  Note that a single VN1 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN1 will only count a single credit even though it may use multiple buffers. : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 Credit Used : REQ on AD",
        "Counter": "0",
        "EventCode": "0x5c",
        "EventName": "UNC_M3UPI_VN1_CREDITS_USED.REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Used : REQ on AD : Number of times a VN1 credit was used on the WB message channel.  In order for a request to be transferred across QPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN1.  VNA is a shared pool used to achieve high performance.  The VN1 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN1 if they fail.  This counts the number of times a VN1 credit was used.  Note that a single VN1 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN1 will only count a single credit even though it may use multiple buffers. : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 Credit Used : RSP on AD",
        "Counter": "0",
        "EventCode": "0x5c",
        "EventName": "UNC_M3UPI_VN1_CREDITS_USED.RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Used : RSP on AD : Number of times a VN1 credit was used on the WB message channel.  In order for a request to be transferred across QPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN1.  VNA is a shared pool used to achieve high performance.  The VN1 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN1 if they fail.  This counts the number of times a VN1 credit was used.  Note that a single VN1 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN1 will only count a single credit even though it may use multiple buffers. : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 Credit Used : SNP on AD",
        "Counter": "0",
        "EventCode": "0x5c",
        "EventName": "UNC_M3UPI_VN1_CREDITS_USED.SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Used : SNP on AD : Number of times a VN1 credit was used on the WB message channel.  In order for a request to be transferred across QPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN1.  VNA is a shared pool used to achieve high performance.  The VN1 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN1 if they fail.  This counts the number of times a VN1 credit was used.  Note that a single VN1 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN1 will only count a single credit even though it may use multiple buffers. : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 Credit Used : RSP on BL",
        "Counter": "0",
        "EventCode": "0x5c",
        "EventName": "UNC_M3UPI_VN1_CREDITS_USED.WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Used : RSP on BL : Number of times a VN1 credit was used on the WB message channel.  In order for a request to be transferred across QPI, it must be guaranteed to have a flit buffer on the remote socket to sink into.  There are two credit pools, VNA and VN1.  VNA is a shared pool used to achieve high performance.  The VN1 pool has reserved entries for each message class and is used to prevent deadlock.  Requests first attempt to acquire a VNA credit, and then fall back to VN1 if they fail.  This counts the number of times a VN1 credit was used.  Note that a single VN1 credit holds access to potentially multiple flit buffers.  For example, a transfer that uses VNA could use 9 flit buffers and in that case uses 9 credits.  A transfer on VN1 will only count a single credit even though it may use multiple buffers. : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 No Credits : WB on BL",
        "Counter": "0",
        "EventCode": "0x5e",
        "EventName": "UNC_M3UPI_VN1_NO_CREDITS.NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 No Credits : WB on BL : Number of Cycles there were no VN1 Credits : Data Response (WB) messages on BL.  WB is generally used to transmit data with coherency.  For example, remote reads and writes, or cache to cache transfers will transmit their data using WB.",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 No Credits : NCB on BL",
        "Counter": "0",
        "EventCode": "0x5e",
        "EventName": "UNC_M3UPI_VN1_NO_CREDITS.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 No Credits : NCB on BL : Number of Cycles there were no VN1 Credits : Non-Coherent Broadcast (NCB) messages on BL.  NCB is generally used to transmit data without coherency.  For example, non-coherent read data returns.",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 No Credits : REQ on AD",
        "Counter": "0",
        "EventCode": "0x5e",
        "EventName": "UNC_M3UPI_VN1_NO_CREDITS.REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 No Credits : REQ on AD : Number of Cycles there were no VN1 Credits : Home (REQ) messages on AD.  REQ is generally used to send requests, request responses, and snoop responses.",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 No Credits : RSP on AD",
        "Counter": "0",
        "EventCode": "0x5e",
        "EventName": "UNC_M3UPI_VN1_NO_CREDITS.RSP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 No Credits : RSP on AD : Number of Cycles there were no VN1 Credits : Response (RSP) messages on AD.  RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 No Credits : SNP on AD",
        "Counter": "0",
        "EventCode": "0x5e",
        "EventName": "UNC_M3UPI_VN1_NO_CREDITS.SNP",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 No Credits : SNP on AD : Number of Cycles there were no VN1 Credits : Snoops (SNP) messages on AD.  SNP is used for outgoing snoops.",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "VN1 No Credits : RSP on BL",
        "Counter": "0",
        "EventCode": "0x5e",
        "EventName": "UNC_M3UPI_VN1_NO_CREDITS.WB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 No Credits : RSP on BL : Number of Cycles there were no VN1 Credits : Response (RSP) messages on BL. RSP packets are used to transmit a variety of protocol flits including grants and completions (CMP).",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_EQ_LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_EQ_LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x82",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_EQ_LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_EQ_LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0xa0",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_GT_LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_GT_LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x81",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_GT_LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_GT_LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x90",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_LT_LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_LT_LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x84",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_LT_LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.BOTHNONZERO_RT_LT_LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0xc0",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.RT_EQ_LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.RT_EQ_LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.RT_EQ_LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.RT_EQ_LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.RT_GT_LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.RT_GT_LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.RT_GT_LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.RT_GT_LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.RT_LT_LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.RT_LT_LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_OCC_COMPARE.RT_LT_LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7e",
        "EventName": "UNC_M3UPI_WB_OCC_COMPARE.RT_LT_LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.LOCALDEST_VN0",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.LOCALDEST_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.LOCALDEST_VN1",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.LOCALDEST_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.LOCAL_AND_RT_VN0",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.LOCAL_AND_RT_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.LOCAL_AND_RT_VN1",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.LOCAL_AND_RT_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.ROUTETHRU_VN0",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.ROUTETHRU_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.ROUTETHRU_VN1",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.ROUTETHRU_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.WAITING4PULL_VN0",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.WAITING4PULL_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_WB_PENDING.WAITING4PULL_VN1",
        "Counter": "0",
        "EventCode": "0x7d",
        "EventName": "UNC_M3UPI_WB_PENDING.WAITING4PULL_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.ARB",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.ARB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message is making arbitration request",
        "UMask": "0x4",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.ARRIVED",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.ARRIVED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message arrived in ingress pipeline",
        "UMask": "0x1",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.BYPASS",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.BYPASS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message took bypass path",
        "UMask": "0x2",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.FLITTED",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.FLITTED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message was slotted into flit (non bypass)",
        "UMask": "0x10",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.LOST_ARB",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.LOST_ARB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message lost arbitration",
        "UMask": "0x8",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.LOST_OLD",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.LOST_OLD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message was dropped because it became too old",
        "UMask": "0x20",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "UNC_M3UPI_XPT_PFTCH.LOST_QFULL",
        "Counter": "0",
        "EventCode": "0x61",
        "EventName": "UNC_M3UPI_XPT_PFTCH.LOST_QFULL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": ": xpt prefetch message was dropped because it was overwritten by new message while prefetch queue was full",
        "UMask": "0x40",
        "Unit": "M3UPI"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (AD Bounceable)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.AD_BNC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD Bounceable : Number of allocations into the CRS Egress",
        "UMask": "0x1",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (AD credited)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.AD_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD credited : Number of allocations into the CRS Egress",
        "UMask": "0x2",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (AK)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.AK",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AK : Number of allocations into the CRS Egress",
        "UMask": "0x10",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (AKC)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.AKC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AKC : Number of allocations into the CRS Egress",
        "UMask": "0x40",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (BL Bounceable)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.BL_BNC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL Bounceable : Number of allocations into the CRS Egress",
        "UMask": "0x4",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (BL credited)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.BL_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL credited : Number of allocations into the CRS Egress",
        "UMask": "0x8",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of allocations into the CRS Egress  used to queue up requests destined to the mesh (IV)",
        "Counter": "0,1,2,3",
        "EventCode": "0x47",
        "EventName": "UNC_MDF_CRS_TxR_INSERTS.IV",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "IV : Number of allocations into the CRS Egress",
        "UMask": "0x20",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of cycles incoming messages from the vertical ring that are bounced at the SBO Ingress (V-EMIB) (AD)",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_MDF_CRS_TxR_V_BOUNCES.AD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD : Number of cycles incoming messages from the vertical ring that are bounced at the SBO",
        "UMask": "0x1",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of cycles incoming messages from the vertical ring that are bounced at the SBO Ingress (V-EMIB) (AK)",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_MDF_CRS_TxR_V_BOUNCES.AK",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AK : Number of cycles incoming messages from the vertical ring that are bounced at the SBO",
        "UMask": "0x4",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of cycles incoming messages from the vertical ring that are bounced at the SBO Ingress (V-EMIB) (AKC)",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_MDF_CRS_TxR_V_BOUNCES.AKC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AKC : Number of cycles incoming messages from the vertical ring that are bounced at the SBO",
        "UMask": "0x10",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of cycles incoming messages from the vertical ring that are bounced at the SBO Ingress (V-EMIB) (BL)",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_MDF_CRS_TxR_V_BOUNCES.BL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL : Number of cycles incoming messages from the vertical ring that are bounced at the SBO",
        "UMask": "0x2",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Number of cycles incoming messages from the vertical ring that are bounced at the SBO Ingress (V-EMIB) (IV)",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_MDF_CRS_TxR_V_BOUNCES.IV",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "IV : Number of cycles incoming messages from the vertical ring that are bounced at the SBO",
        "UMask": "0x8",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Counts the number of cycles when the distress signals are asserted based on SBO Ingress threshold",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_MDF_FAST_ASSERTED.AD_BNC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "AD bnc : Counts the number of cycles when the  distress signals are asserted based on SBO Ingress threshold",
        "UMask": "0x1",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "Counts the number of cycles when the distress signals are asserted based on SBO Ingress threshold",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_MDF_FAST_ASSERTED.BL_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "BL bnc : Counts the number of cycles when the  distress signals are asserted based on SBO Ingress threshold",
        "UMask": "0x2",
        "Unit": "MDF"
    },
    {
        "BriefDescription": "UPI Clockticks",
        "Counter": "0,1,2,3",
        "EventCode": "0x01",
        "EventName": "UNC_UPI_CLOCKTICKS",
        "PerPkg": "1",
        "PublicDescription": "Number of UPI LL clock cycles while the event is enabled",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Direct packet attempts : D2C",
        "Counter": "0,1,2,3",
        "EventCode": "0x12",
        "EventName": "UNC_UPI_DIRECT_ATTEMPTS.D2C",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Direct packet attempts : D2C : Counts the number of DRS packets that we attempted to do direct2core/direct2UPI on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Direct packet attempts : D2K",
        "Counter": "0,1,2,3",
        "EventCode": "0x12",
        "EventName": "UNC_UPI_DIRECT_ATTEMPTS.D2K",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Direct packet attempts : D2K : Counts the number of DRS packets that we attempted to do direct2core/direct2UPI on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AD_VNA_EQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AD_VNA_EQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AD_VNA_EQ1",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AD_VNA_EQ1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AD_VNA_EQ2",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AD_VNA_EQ2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ1",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ2",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ3",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.AK_VNA_EQ3",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_FLOWQ_NO_VNA_CRD.BL_VNA_EQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x18",
        "EventName": "UNC_UPI_FLOWQ_NO_VNA_CRD.BL_VNA_EQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Cycles in L1",
        "Counter": "0,1,2,3",
        "EventCode": "0x21",
        "EventName": "UNC_UPI_L1_POWER_CYCLES",
        "PerPkg": "1",
        "PublicDescription": "Cycles in L1 : Number of UPI qfclk cycles spent in L1 power mode.  L1 is a mode that totally shuts down a UPI link.  Use edge detect to count the number of instances when the UPI link entered L1.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another. Because L1 totally shuts down the link, it takes a good amount of time to exit this mode.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_BYP_BLOCKED.BGF_CRD",
        "Counter": "0,1,2,3",
        "EventCode": "0x14",
        "EventName": "UNC_UPI_M3_BYP_BLOCKED.BGF_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_BYP_BLOCKED.FLOWQ_AD_VNA_LE2",
        "Counter": "0,1,2,3",
        "EventCode": "0x14",
        "EventName": "UNC_UPI_M3_BYP_BLOCKED.FLOWQ_AD_VNA_LE2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_BYP_BLOCKED.FLOWQ_AK_VNA_LE3",
        "Counter": "0,1,2,3",
        "EventCode": "0x14",
        "EventName": "UNC_UPI_M3_BYP_BLOCKED.FLOWQ_AK_VNA_LE3",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_BYP_BLOCKED.FLOWQ_BL_VNA_EQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x14",
        "EventName": "UNC_UPI_M3_BYP_BLOCKED.FLOWQ_BL_VNA_EQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_BYP_BLOCKED.GV_BLOCK",
        "Counter": "0,1,2,3",
        "EventCode": "0x14",
        "EventName": "UNC_UPI_M3_BYP_BLOCKED.GV_BLOCK",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_CRD_RETURN_BLOCKED",
        "Counter": "0,1,2,3",
        "EventCode": "0x16",
        "EventName": "UNC_UPI_M3_CRD_RETURN_BLOCKED",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.BGF_CRD",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.BGF_CRD",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_AD_VNA_BTW_2_THRESH",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_AD_VNA_BTW_2_THRESH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_AD_VNA_LE2",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_AD_VNA_LE2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_AK_VNA_LE3",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_AK_VNA_LE3",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_BL_VNA_BTW_0_THRESH",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_BL_VNA_BTW_0_THRESH",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_BL_VNA_EQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.FLOWQ_BL_VNA_EQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_M3_RXQ_BLOCKED.GV_BLOCK",
        "Counter": "0,1,2,3",
        "EventCode": "0x15",
        "EventName": "UNC_UPI_M3_RXQ_BLOCKED.GV_BLOCK",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Cycles where phy is not in L0, L0c, L0p, L1",
        "Counter": "0,1,2,3",
        "EventCode": "0x20",
        "EventName": "UNC_UPI_PHY_INIT_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "L1 Req Nack",
        "Counter": "0,1,2,3",
        "EventCode": "0x23",
        "EventName": "UNC_UPI_POWER_L1_NACK",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "L1 Req Nack : Counts the number of times a link sends/receives a LinkReqNAck.  When the UPI links would like to change power state, the Tx side initiates a request to the Rx side requesting to change states.  This requests can either be accepted or denied.  If the Rx side replies with an Ack, the power mode will change.  If it replies with NAck, no change will take place.  This can be filtered based on Rx and Tx.  An Rx LinkReqNAck refers to receiving an NAck (meaning this agent's Tx originally requested the power change).  A Tx LinkReqNAck refers to sending this command (meaning the peer agent's Tx originally requested the power change and this agent accepted it).",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "L1 Req (same as L1 Ack).",
        "Counter": "0,1,2,3",
        "EventCode": "0x22",
        "EventName": "UNC_UPI_POWER_L1_REQ",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "L1 Req (same as L1 Ack). : Counts the number of times a link sends/receives a LinkReqAck.  When the UPI links would like to change power state, the Tx side initiates a request to the Rx side requesting to change states.  This requests can either be accepted or denied.  If the Rx side replies with an Ack, the power mode will change.  If it replies with NAck, no change will take place.  This can be filtered based on Rx and Tx.  An Rx LinkReqAck refers to receiving an Ack (meaning this agent's Tx originally requested the power change).  A Tx LinkReqAck refers to sending this command (meaning the peer agent's Tx originally requested the power change and this agent accepted it).",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_REQ_SLOT2_FROM_M3.ACK",
        "Counter": "0,1,2,3",
        "EventCode": "0x46",
        "EventName": "UNC_UPI_REQ_SLOT2_FROM_M3.ACK",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_REQ_SLOT2_FROM_M3.VN0",
        "Counter": "0,1,2,3",
        "EventCode": "0x46",
        "EventName": "UNC_UPI_REQ_SLOT2_FROM_M3.VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_REQ_SLOT2_FROM_M3.VN1",
        "Counter": "0,1,2,3",
        "EventCode": "0x46",
        "EventName": "UNC_UPI_REQ_SLOT2_FROM_M3.VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_REQ_SLOT2_FROM_M3.VNA",
        "Counter": "0,1,2,3",
        "EventCode": "0x46",
        "EventName": "UNC_UPI_REQ_SLOT2_FROM_M3.VNA",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Cycles in L0p",
        "Counter": "0,1,2,3",
        "EventCode": "0x25",
        "EventName": "UNC_UPI_RxL0P_POWER_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles in L0p : Number of UPI qfclk cycles spent in L0p power mode.  L0p is a mode where we disable 1/2 of the UPI lanes, decreasing our bandwidth in order to save power.  It increases snoop and data transfer latencies and decreases overall bandwidth.  This mode can be very useful in NUMA optimized workloads that largely only utilize UPI for snoops and their responses.  Use edge detect to count the number of instances when the UPI link entered L0p.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Cycles in L0",
        "Counter": "0,1,2,3",
        "EventCode": "0x24",
        "EventName": "UNC_UPI_RxL0_POWER_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles in L0 : Number of UPI qfclk cycles spent in L0 power mode in the Link Layer.  L0 is the default mode which provides the highest performance with the most power.  Use edge detect to count the number of instances that the link entered L0.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.  The phy layer  sometimes leaves L0 for training, which will not be captured by this event.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.DATA",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.DATA",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.LLCRD",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.LLCRD",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.LLCTRL",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.LLCTRL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.NULL",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.NULL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.PROTHDR",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.PROTHDR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.SLOT0",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.SLOT1",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_ANY_FLITS.SLOT2",
        "Counter": "0,1,2,3",
        "EventCode": "0x4B",
        "EventName": "UNC_UPI_RxL_ANY_FLITS.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Receive path of a UPI Port : Non-Coherent Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x05",
        "EventName": "UNC_UPI_RxL_BASIC_HDR_MATCH.NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Receive path of a UPI Port : Non-Coherent Bypass : Matches on Receive path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0xe",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Receive path of a UPI Port : Non-Coherent Bypass, Match Opcode",
        "Counter": "0,1,2,3",
        "EventCode": "0x05",
        "EventName": "UNC_UPI_RxL_BASIC_HDR_MATCH.NCB_OPC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Receive path of a UPI Port : Non-Coherent Bypass, Match Opcode : Matches on Receive path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0x10e",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Receive path of a UPI Port : Non-Coherent Standard",
        "Counter": "0,1,2,3",
        "EventCode": "0x05",
        "EventName": "UNC_UPI_RxL_BASIC_HDR_MATCH.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Receive path of a UPI Port : Non-Coherent Standard : Matches on Receive path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0xf",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Receive path of a UPI Port : Non-Coherent Standard, Match Opcode",
        "Counter": "0,1,2,3",
        "EventCode": "0x05",
        "EventName": "UNC_UPI_RxL_BASIC_HDR_MATCH.NCS_OPC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Receive path of a UPI Port : Non-Coherent Standard, Match Opcode : Matches on Receive path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0x10f",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Flit Buffer Bypassed : Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x31",
        "EventName": "UNC_UPI_RxL_BYPASSED.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Flit Buffer Bypassed : Slot 0 : Counts the number of times that an incoming flit was able to bypass the flit buffer and pass directly across the BGF and into the Egress.  This is a latency optimization, and should generally be the common case.  If this value is less than the number of flits transferred, it implies that there was queueing getting onto the ring, and thus the transactions saw higher latency.",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Flit Buffer Bypassed : Slot 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x31",
        "EventName": "UNC_UPI_RxL_BYPASSED.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Flit Buffer Bypassed : Slot 1 : Counts the number of times that an incoming flit was able to bypass the flit buffer and pass directly across the BGF and into the Egress.  This is a latency optimization, and should generally be the common case.  If this value is less than the number of flits transferred, it implies that there was queueing getting onto the ring, and thus the transactions saw higher latency.",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Flit Buffer Bypassed : Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x31",
        "EventName": "UNC_UPI_RxL_BYPASSED.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Flit Buffer Bypassed : Slot 2 : Counts the number of times that an incoming flit was able to bypass the flit buffer and pass directly across the BGF and into the Egress.  This is a latency optimization, and should generally be the common case.  If this value is less than the number of flits transferred, it implies that there was queueing getting onto the ring, and thus the transactions saw higher latency.",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "CRC Errors Detected",
        "Counter": "0,1,2,3",
        "EventCode": "0x0b",
        "EventName": "UNC_UPI_RxL_CRC_ERRORS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "CRC Errors Detected : Number of CRC errors detected in the UPI Agent.  Each UPI flit incorporates 8 bits of CRC for error detection.  This counts the number of flits where the CRC was able to detect an error.  After an error has been detected, the UPI agent will send a request to the transmitting socket to resend the flit (as well as any flits that came after it).",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "LLR Requests Sent",
        "Counter": "0,1,2,3",
        "EventCode": "0x08",
        "EventName": "UNC_UPI_RxL_CRC_LLR_REQ_TRANSMIT",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "LLR Requests Sent : Number of LLR Requests were transmitted.  This should generally be <= the number of CRC errors detected.  If multiple errors are detected before the Rx side receives a LLC_REQ_ACK from the Tx side, there is no need to send more LLR_REQ_NACKs..",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "VN0 Credit Consumed",
        "Counter": "0,1,2,3",
        "EventCode": "0x39",
        "EventName": "UNC_UPI_RxL_CREDITS_CONSUMED_VN0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN0 Credit Consumed : Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "VN1 Credit Consumed",
        "Counter": "0,1,2,3",
        "EventCode": "0x3a",
        "EventName": "UNC_UPI_RxL_CREDITS_CONSUMED_VN1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VN1 Credit Consumed : Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "VNA Credit Consumed",
        "Counter": "0,1,2,3",
        "EventCode": "0x38",
        "EventName": "UNC_UPI_RxL_CREDITS_CONSUMED_VNA",
        "Experimental": "1",
        "FCMask": "0x00000000",
        "PerPkg": "1",
        "PortMask": "0x00000000",
        "PublicDescription": "Counts the number of times that an RxQ VNA credit was consumed (i.e. message uses a VNA credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : All Data",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.ALL_DATA",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : All Data : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0xf",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Null FLITs received from any slot",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.ALL_NULL",
        "PerPkg": "1",
        "UMask": "0x27",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Data",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.DATA",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Data : Shows legal flit time (hides impact of L0p and L0c). : Count Data Flits (which consume all slots), but how much to count is based on Slot0-2 mask, so count can be 0-3 depending on which slots are enabled for counting..",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Idle",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.IDLE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Idle : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x47",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : LLCRD Not Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.LLCRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : LLCRD Not Empty : Shows legal flit time (hides impact of L0p and L0c). : Enables counting of LLCRD (with non-zero payload). This only applies to slot 2 since LLCRD is only allowed in slot 2",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : LLCTRL",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.LLCTRL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : LLCTRL : Shows legal flit time (hides impact of L0p and L0c). : Equivalent to an idle packet.  Enables counting of slot 0 LLCTRL messages.",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : All Non Data",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.NON_DATA",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : All Non Data : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x97",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Slot NULL or LLCRD Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.NULL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Slot NULL or LLCRD Empty : Shows legal flit time (hides impact of L0p and L0c). : LLCRD with all zeros is treated as NULL. Slot 1 is not treated as NULL if slot 0 is a dual slot. This can apply to slot 0,1, or 2.",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Protocol Header",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.PROTHDR",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Protocol Header : Shows legal flit time (hides impact of L0p and L0c). : Enables count of protocol headers in slot 0,1,2 (depending on slot uMask bits)",
        "UMask": "0x80",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Slot 0 : Shows legal flit time (hides impact of L0p and L0c). : Count Slot 0 - Other mask bits determine types of headers to count.",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Slot 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Slot 1 : Shows legal flit time (hides impact of L0p and L0c). : Count Slot 1 - Other mask bits determine types of headers to count.",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Received : Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x03",
        "EventName": "UNC_UPI_RxL_FLITS.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Received : Slot 2 : Shows legal flit time (hides impact of L0p and L0c). : Count Slot 2 - Other mask bits determine types of headers to count.",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Flit Buffer Allocations : Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x30",
        "EventName": "UNC_UPI_RxL_INSERTS.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Flit Buffer Allocations : Slot 0 : Number of allocations into the UPI Rx Flit Buffer.  Generally, when data is transmitted across UPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Flit Buffer Allocations : Slot 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x30",
        "EventName": "UNC_UPI_RxL_INSERTS.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Flit Buffer Allocations : Slot 1 : Number of allocations into the UPI Rx Flit Buffer.  Generally, when data is transmitted across UPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Flit Buffer Allocations : Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x30",
        "EventName": "UNC_UPI_RxL_INSERTS.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Flit Buffer Allocations : Slot 2 : Number of allocations into the UPI Rx Flit Buffer.  Generally, when data is transmitted across UPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Occupancy - All Packets : Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x32",
        "EventName": "UNC_UPI_RxL_OCCUPANCY.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Occupancy - All Packets : Slot 0 : Accumulates the number of elements in the UPI RxQ in each cycle.  Generally, when data is transmitted across UPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Occupancy - All Packets : Slot 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x32",
        "EventName": "UNC_UPI_RxL_OCCUPANCY.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Occupancy - All Packets : Slot 1 : Accumulates the number of elements in the UPI RxQ in each cycle.  Generally, when data is transmitted across UPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "RxQ Occupancy - All Packets : Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x32",
        "EventName": "UNC_UPI_RxL_OCCUPANCY.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RxQ Occupancy - All Packets : Slot 2 : Accumulates the number of elements in the UPI RxQ in each cycle.  Generally, when data is transmitted across UPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_SLOT_BYPASS.S0_RXQ1",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_UPI_RxL_SLOT_BYPASS.S0_RXQ1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_SLOT_BYPASS.S0_RXQ2",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_UPI_RxL_SLOT_BYPASS.S0_RXQ2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_SLOT_BYPASS.S1_RXQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_UPI_RxL_SLOT_BYPASS.S1_RXQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_SLOT_BYPASS.S1_RXQ2",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_UPI_RxL_SLOT_BYPASS.S1_RXQ2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_SLOT_BYPASS.S2_RXQ0",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_UPI_RxL_SLOT_BYPASS.S2_RXQ0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_RxL_SLOT_BYPASS.S2_RXQ1",
        "Counter": "0,1,2,3",
        "EventCode": "0x33",
        "EventName": "UNC_UPI_RxL_SLOT_BYPASS.S2_RXQ1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.CFG_CTL",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.CFG_CTL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.DFX",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.DFX",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.RETRY",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.RETRY",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.RXQ",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.RXQ",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.RXQ_BYPASS",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.RXQ_BYPASS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.RXQ_CRED",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.RXQ_CRED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.SPARE",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.SPARE",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_CLK_ACTIVE.TXQ",
        "Counter": "0,1,2,3",
        "EventCode": "0x2a",
        "EventName": "UNC_UPI_TxL0P_CLK_ACTIVE.TXQ",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Cycles in L0p",
        "Counter": "0,1,2,3",
        "EventCode": "0x27",
        "EventName": "UNC_UPI_TxL0P_POWER_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles in L0p : Number of UPI qfclk cycles spent in L0p power mode.  L0p is a mode where we disable 1/2 of the UPI lanes, decreasing our bandwidth in order to save power.  It increases snoop and data transfer latencies and decreases overall bandwidth.  This mode can be very useful in NUMA optimized workloads that largely only utilize UPI for snoops and their responses.  Use edge detect to count the number of instances when the UPI link entered L0p.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_POWER_CYCLES_LL_ENTER",
        "Counter": "0,1,2,3",
        "EventCode": "0x28",
        "EventName": "UNC_UPI_TxL0P_POWER_CYCLES_LL_ENTER",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL0P_POWER_CYCLES_M3_EXIT",
        "Counter": "0,1,2,3",
        "EventCode": "0x29",
        "EventName": "UNC_UPI_TxL0P_POWER_CYCLES_M3_EXIT",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Cycles in L0",
        "Counter": "0,1,2,3",
        "EventCode": "0x26",
        "EventName": "UNC_UPI_TxL0_POWER_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles in L0 : Number of UPI qfclk cycles spent in L0 power mode in the Link Layer.  L0 is the default mode which provides the highest performance with the most power.  Use edge detect to count the number of instances that the link entered L0.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.  The phy layer  sometimes leaves L0 for training, which will not be captured by this event.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.DATA",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.DATA",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.LLCRD",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.LLCRD",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.LLCTRL",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.LLCTRL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.NULL",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.NULL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.PROTHDR",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.PROTHDR",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.SLOT0",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.SLOT1",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_TxL_ANY_FLITS.SLOT2",
        "Counter": "0,1,2,3",
        "EventCode": "0x4A",
        "EventName": "UNC_UPI_TxL_ANY_FLITS.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Bypass",
        "Counter": "0,1,2,3",
        "EventCode": "0x04",
        "EventName": "UNC_UPI_TxL_BASIC_HDR_MATCH.NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Bypass : Matches on Transmit path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0xe",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Bypass, Match Opcode",
        "Counter": "0,1,2,3",
        "EventCode": "0x04",
        "EventName": "UNC_UPI_TxL_BASIC_HDR_MATCH.NCB_OPC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Bypass, Match Opcode : Matches on Transmit path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0x10e",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Standard",
        "Counter": "0,1,2,3",
        "EventCode": "0x04",
        "EventName": "UNC_UPI_TxL_BASIC_HDR_MATCH.NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Standard : Matches on Transmit path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0xf",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Standard, Match Opcode",
        "Counter": "0,1,2,3",
        "EventCode": "0x04",
        "EventName": "UNC_UPI_TxL_BASIC_HDR_MATCH.NCS_OPC",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Matches on Transmit path of a UPI Port : Non-Coherent Standard, Match Opcode : Matches on Transmit path of a UPI port. Match based on UMask specific bits: Z: Message Class (3-bit) Y: Message Class Enable W: Opcode (4-bit) V: Opcode Enable U: Local Enable T: Remote Enable S: Data Hdr Enable R: Non-Data Hdr Enable Q: Dual Slot Hdr Enable P: Single Slot Hdr Enable Link Layer control types are excluded (LL CTRL, slot NULL, LLCRD) even under specific opcode match_en cases. Note: If Message Class is disabled, we expect opcode to also be disabled.",
        "UMask": "0x10f",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Tx Flit Buffer Bypassed",
        "Counter": "0,1,2,3",
        "EventCode": "0x41",
        "EventName": "UNC_UPI_TxL_BYPASSED",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Tx Flit Buffer Bypassed : Counts the number of times that an incoming flit was able to bypass the Tx flit buffer and pass directly out the UPI Link. Generally, when data is transmitted across UPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : All Data",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.ALL_DATA",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : All Data : Counts number of data flits across this UPI link.",
        "UMask": "0xf",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : All LLCRD Not Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.ALL_LLCRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : All Data : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x17",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : All LLCTRL",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.ALL_LLCTRL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : All LLCTRL : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x47",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "All Null Flits",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.ALL_NULL",
        "PerPkg": "1",
        "UMask": "0x27",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : All Protocol Header",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.ALL_PROTHDR",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : All ProtDDR : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x87",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Data",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.DATA",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Data : Shows legal flit time (hides impact of L0p and L0c). : Count Data Flits (which consume all slots), but how much to count is based on Slot0-2 mask, so count can be 0-3 depending on which slots are enabled for counting..",
        "UMask": "0x8",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Idle",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.IDLE",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Idle : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x47",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : LLCRD Not Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.LLCRD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : LLCRD Not Empty : Shows legal flit time (hides impact of L0p and L0c). : Enables counting of LLCRD (with non-zero payload). This only applies to slot 2 since LLCRD is only allowed in slot 2",
        "UMask": "0x10",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : LLCTRL",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.LLCTRL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : LLCTRL : Shows legal flit time (hides impact of L0p and L0c). : Equivalent to an idle packet.  Enables counting of slot 0 LLCTRL messages.",
        "UMask": "0x40",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : All Non Data",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.NON_DATA",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : All Non Data : Shows legal flit time (hides impact of L0p and L0c).",
        "UMask": "0x97",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Slot NULL or LLCRD Empty",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.NULL",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Slot NULL or LLCRD Empty : Shows legal flit time (hides impact of L0p and L0c). : LLCRD with all zeros is treated as NULL. Slot 1 is not treated as NULL if slot 0 is a dual slot. This can apply to slot 0,1, or 2.",
        "UMask": "0x20",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Protocol Header",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.PROTHDR",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Protocol Header : Shows legal flit time (hides impact of L0p and L0c). : Enables count of protocol headers in slot 0,1,2 (depending on slot uMask bits)",
        "UMask": "0x80",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Slot 0",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.SLOT0",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Slot 0 : Shows legal flit time (hides impact of L0p and L0c). : Count Slot 0 - Other mask bits determine types of headers to count.",
        "UMask": "0x1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Slot 1",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.SLOT1",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Slot 1 : Shows legal flit time (hides impact of L0p and L0c). : Count Slot 1 - Other mask bits determine types of headers to count.",
        "UMask": "0x2",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Valid Flits Sent : Slot 2",
        "Counter": "0,1,2,3",
        "EventCode": "0x02",
        "EventName": "UNC_UPI_TxL_FLITS.SLOT2",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Valid Flits Sent : Slot 2 : Shows legal flit time (hides impact of L0p and L0c). : Count Slot 2 - Other mask bits determine types of headers to count.",
        "UMask": "0x4",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Tx Flit Buffer Allocations",
        "Counter": "0,1,2,3",
        "EventCode": "0x40",
        "EventName": "UNC_UPI_TxL_INSERTS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Tx Flit Buffer Allocations : Number of allocations into the UPI Tx Flit Buffer.  Generally, when data is transmitted across UPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Tx Flit Buffer Occupancy",
        "Counter": "0,1,2,3",
        "EventCode": "0x42",
        "EventName": "UNC_UPI_TxL_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Tx Flit Buffer Occupancy : Accumulates the number of flits in the TxQ.  Generally, when data is transmitted across UPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link. This can be used with the cycles not empty event to track average occupancy, or the allocations event to track average lifetime in the TxQ.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "UNC_UPI_VNA_CREDIT_RETURN_BLOCKED_VN01",
        "Counter": "0,1,2,3",
        "EventCode": "0x45",
        "EventName": "UNC_UPI_VNA_CREDIT_RETURN_BLOCKED_VN01",
        "Experimental": "1",
        "PerPkg": "1",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "VNA Credits Pending Return - Occupancy",
        "Counter": "0,1,2,3",
        "EventCode": "0x44",
        "EventName": "UNC_UPI_VNA_CREDIT_RETURN_OCCUPANCY",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "VNA Credits Pending Return - Occupancy : Number of VNA credits in the Rx side that are waitng to be returned back across the link.",
        "Unit": "UPI"
    },
    {
        "BriefDescription": "Message Received : Doorbell",
        "Counter": "0,1",
        "EventCode": "0x42",
        "EventName": "UNC_U_EVENT_MSG.DOORBELL_RCVD",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "Message Received : Interrupt",
        "Counter": "0,1",
        "EventCode": "0x42",
        "EventName": "UNC_U_EVENT_MSG.INT_PRIO",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Received : Interrupt : Interrupts",
        "UMask": "0x10",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "Message Received : IPI",
        "Counter": "0,1",
        "EventCode": "0x42",
        "EventName": "UNC_U_EVENT_MSG.IPI_RCVD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Received : IPI : Inter Processor Interrupts",
        "UMask": "0x4",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "Message Received : MSI",
        "Counter": "0,1",
        "EventCode": "0x42",
        "EventName": "UNC_U_EVENT_MSG.MSI_RCVD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Received : MSI : Message Signaled Interrupts - interrupts sent by devices (including PCIe via IOxAPIC) (Socket Mode only)",
        "UMask": "0x2",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "Message Received : VLW",
        "Counter": "0,1",
        "EventCode": "0x42",
        "EventName": "UNC_U_EVENT_MSG.VLW_RCVD",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Message Received : VLW : Virtual Logical Wire (legacy) message were received from Uncore.",
        "UMask": "0x1",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_CBO_NCB",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_CBO_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_CBO_NCS",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_CBO_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_UPI_NCB",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_UPI_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_UPI_NCS",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.RxC_CYCLES_NE_UPI_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_CBO_NCB",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_CBO_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_CBO_NCS",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_CBO_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_UPI_NCB",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_UPI_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_UPI_NCS",
        "Counter": "0",
        "EventCode": "0x4d",
        "EventName": "UNC_U_M2U_MISC1.TxC_CYCLES_CRD_OVF_UPI_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.RxC_CYCLES_EMPTY_BL",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.RxC_CYCLES_EMPTY_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.RxC_CYCLES_FULL_BL",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.RxC_CYCLES_FULL_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.TxC_CYCLES_CRD_OVF_VN0_NCB",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.TxC_CYCLES_CRD_OVF_VN0_NCB",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.TxC_CYCLES_CRD_OVF_VN0_NCS",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.TxC_CYCLES_CRD_OVF_VN0_NCS",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x8",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.TxC_CYCLES_EMPTY_AK",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.TxC_CYCLES_EMPTY_AK",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x20",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.TxC_CYCLES_EMPTY_AKC",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.TxC_CYCLES_EMPTY_AKC",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x40",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.TxC_CYCLES_EMPTY_BL",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.TxC_CYCLES_EMPTY_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x10",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC2.TxC_CYCLES_FULL_BL",
        "Counter": "0",
        "EventCode": "0x4e",
        "EventName": "UNC_U_M2U_MISC2.TxC_CYCLES_FULL_BL",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x80",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC3.TxC_CYCLES_FULL_AK",
        "Counter": "0",
        "EventCode": "0x4f",
        "EventName": "UNC_U_M2U_MISC3.TxC_CYCLES_FULL_AK",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_M2U_MISC3.TxC_CYCLES_FULL_AKC",
        "Counter": "0",
        "EventCode": "0x4f",
        "EventName": "UNC_U_M2U_MISC3.TxC_CYCLES_FULL_AKC",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "Cycles PHOLD Assert to Ack : Assert to ACK",
        "Counter": "0,1",
        "EventCode": "0x45",
        "EventName": "UNC_U_PHOLD_CYCLES.ASSERT_TO_ACK",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles PHOLD Assert to Ack : Assert to ACK : PHOLD cycles.",
        "UMask": "0x1",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_RACU_DRNG.PFTCH_BUF_EMPTY",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_U_RACU_DRNG.PFTCH_BUF_EMPTY",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x4",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_RACU_DRNG.RDRAND",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_U_RACU_DRNG.RDRAND",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x1",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "UNC_U_RACU_DRNG.RDSEED",
        "Counter": "0",
        "EventCode": "0x4c",
        "EventName": "UNC_U_RACU_DRNG.RDSEED",
        "Experimental": "1",
        "PerPkg": "1",
        "UMask": "0x2",
        "Unit": "UBOX"
    },
    {
        "BriefDescription": "RACU Request",
        "Counter": "0,1",
        "EventCode": "0x46",
        "EventName": "UNC_U_RACU_REQUESTS",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "RACU Request : Number outstanding register requests within message channel tracker",
        "Unit": "UBOX"
    }
]