linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
@ 2022-08-03  6:38 Ian Rogers
  2022-08-03  6:38 ` [PATCH v1 2/3] perf vendor events: Remove bad ivytown " Ian Rogers
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Ian Rogers @ 2022-08-03  6:38 UTC (permalink / raw)
  To: Zhengjun Xing, Kan Liang, Andi Kleen, perry.taylor,
	caleb.biggers, kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel
  Cc: Stephane Eranian, Ian Rogers

The event converter scripts at:
https://github.com/intel/event-converter-for-linux-perf
passes Filter values from data on 01.org that is bogus in a perf command
line and can cause perf to infinitely recurse in parse events. Remove
such events using the updated patch:
https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6

Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
Signed-off-by: Ian Rogers <irogers@google.com>
---
 .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
 .../arch/x86/broadwellde/uncore-other.json    |  33 --
 2 files changed, 488 deletions(-)

diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
index caadbca1b15b..75655478952f 100644
--- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
+++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
@@ -32,72 +32,6 @@
         "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Cache Lookups; Any Request",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.ANY",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
-        "UMask": "0x11",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Data Read Request",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Lookups that Match NID",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.NID",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Any Read Request",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.READ",
-        "Filter": "CBoFilter0[22:18]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
-        "UMask": "0x21",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; External Snoop Request",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
-        "UMask": "0x9",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Write Requests",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
-        "UMask": "0x5",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Lines Victimized; Lines in E state",
         "Counter": "0,1,2,3",
@@ -148,17 +82,6 @@
         "UMask": "0x1",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x37",
-        "EventName": "UNC_C_LLC_VICTIMS.NID",
-        "Filter": "CBoFilter1[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
         "Counter": "0,1,2,3",
@@ -789,17 +712,6 @@
         "UMask": "0x1",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Probe Queue Retries; Target Node Filter",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x28",
-        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
         "Counter": "0,1,2,3",
@@ -840,17 +752,6 @@
         "UMask": "0x20",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Ingress Request Queue Rejects",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x32",
-        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
         "Counter": "0,1,2,3",
@@ -891,17 +792,6 @@
         "UMask": "0x2",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x29",
-        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "ISMQ Retries; Any Reject",
         "Counter": "0,1,2,3",
@@ -932,17 +822,6 @@
         "UMask": "0x20",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "ISMQ Retries",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x33",
-        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "ISMQ Retries; No QPI Credits",
         "Counter": "0,1,2,3",
@@ -963,17 +842,6 @@
         "UMask": "0x8",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "ISMQ Retries",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x33",
-        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
-        "UMask": "0x80",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
         "Counter": "0,1,2,3",
@@ -994,17 +862,6 @@
         "UMask": "0x2",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x2A",
-        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Ingress Occupancy; IPQ",
         "EventCode": "0x11",
@@ -1109,17 +966,6 @@
         "UMask": "0x28",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x21",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Misses to Local Memory",
         "Counter": "0,1,2,3",
@@ -1130,28 +976,6 @@
         "UMask": "0x2A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x23",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; Miss Opcode Match",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Misses to Remote Memory",
         "Counter": "0,1,2,3",
@@ -1162,94 +986,6 @@
         "UMask": "0x8A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x83",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x48",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Evictions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
-        "UMask": "0x44",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Miss All",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
-        "UMask": "0x4A",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
-        "UMask": "0x43",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
-        "UMask": "0x50",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; Opcode Match",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
-        "UMask": "0x1",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Remote Memory",
         "Counter": "0,1,2,3",
@@ -1260,17 +996,6 @@
         "UMask": "0x88",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x81",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Writebacks",
         "Counter": "0,1,2,3",
@@ -1308,16 +1033,6 @@
         "UMask": "0x28",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x21",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy; Miss All",
         "EventCode": "0x36",
@@ -1336,26 +1051,6 @@
         "UMask": "0x2A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x23",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy",
         "EventCode": "0x36",
@@ -1365,86 +1060,6 @@
         "UMask": "0x8A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x83",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x48",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
-        "UMask": "0x44",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
-        "UMask": "0x4A",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
-        "UMask": "0x43",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
-        "UMask": "0x50",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; Opcode Match",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
-        "UMask": "0x1",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy",
         "EventCode": "0x36",
@@ -1454,16 +1069,6 @@
         "UMask": "0x88",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x81",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy; Writebacks",
         "EventCode": "0x36",
@@ -1610,66 +1215,6 @@
         "UMask": "0x8",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x4",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Address",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
-        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
-        "PerPkg": "1",
-        "UMask": "0x1",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x10",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x8",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
-        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x3",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Opcode",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x2",
-        "Unit": "HA"
-    },
     {
         "BriefDescription": "BT Cycles Not Empty",
         "Counter": "0,1,2,3",
diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
index 71bdf75d8016..24c82ca873bd 100644
--- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
+++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
@@ -416,17 +416,6 @@
         "UMask": "0x10",
         "Unit": "IRP"
     },
-    {
-        "BriefDescription": "Inbound Transaction Count; Select Source",
-        "Counter": "0,1",
-        "EventCode": "0x16",
-        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
-        "Filter": "IRPFilter[4:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
-        "UMask": "0x40",
-        "Unit": "IRP"
-    },
     {
         "BriefDescription": "Inbound Transaction Count; Other",
         "Counter": "0,1",
@@ -1112,17 +1101,6 @@
         "UMask": "0x2",
         "Unit": "UBOX"
     },
-    {
-        "BriefDescription": "Filter Match",
-        "Counter": "0,1",
-        "EventCode": "0x41",
-        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
-        "Filter": "UBoxFilter[3:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
-        "UMask": "0x1",
-        "Unit": "UBOX"
-    },
     {
         "BriefDescription": "Filter Match",
         "Counter": "0,1",
@@ -1133,17 +1111,6 @@
         "UMask": "0x8",
         "Unit": "UBOX"
     },
-    {
-        "BriefDescription": "Filter Match",
-        "Counter": "0,1",
-        "EventCode": "0x41",
-        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
-        "Filter": "UBoxFilter[3:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
-        "UMask": "0x4",
-        "Unit": "UBOX"
-    },
     {
         "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
         "Counter": "0,1",
-- 
2.37.1.455.g008518b4e5-goog


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v1 2/3] perf vendor events: Remove bad ivytown uncore events
  2022-08-03  6:38 [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events Ian Rogers
@ 2022-08-03  6:38 ` Ian Rogers
  2022-08-04  0:18   ` Ian Rogers
  2022-08-03  6:38 ` [PATCH v1 3/3] perf vendor events: Remove bad jaketown " Ian Rogers
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Ian Rogers @ 2022-08-03  6:38 UTC (permalink / raw)
  To: Zhengjun Xing, Kan Liang, Andi Kleen, perry.taylor,
	caleb.biggers, kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel
  Cc: Stephane Eranian, Ian Rogers

The event converter scripts at:
https://github.com/intel/event-converter-for-linux-perf
passes Filter values from data on 01.org that is bogus in a perf command
line and can cause perf to infinitely recurse in parse events. Remove
such events using the updated patch:
https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6

Fixes: 6220136831e3 ("perf vendor events: Update Intel ivytown")
Signed-off-by: Ian Rogers <irogers@google.com>
---
 .../arch/x86/ivytown/uncore-cache.json        | 378 ------------------
 .../arch/x86/ivytown/uncore-interconnect.json |  11 -
 .../arch/x86/ivytown/uncore-other.json        |  35 +-
 .../arch/x86/ivytown/uncore-power.json        | 190 ---------
 4 files changed, 1 insertion(+), 613 deletions(-)

diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json
index 1e53bee8af5c..85bc9c76c0cc 100644
--- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json
+++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json
@@ -15,61 +15,6 @@
         "PublicDescription": "Since occupancy counts can only be captured in the Cbo's 0 counter, this event allows a user to capture occupancy related information by filtering the Cb0 occupancy count captured in Counter 0.   The filtering available is found in the control register - threshold, invert and edge detect.   E.g. setting threshold to 1 can effectively monitor how many cycles the monitored queue has an entry.",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Cache Lookups; Any Request",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.ANY",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
-        "UMask": "0x11",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Data Read Request",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Read transactions",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Lookups that Match NID",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.NID",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; External Snoop Request",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
-        "UMask": "0x9",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Write Requests",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
-        "Filter": "CBoFilter0[23:17]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
-        "UMask": "0x5",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Lines Victimized; Lines in E state",
         "Counter": "0,1",
@@ -100,17 +45,6 @@
         "UMask": "0x1",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
-        "Counter": "0,1",
-        "EventCode": "0x37",
-        "EventName": "UNC_C_LLC_VICTIMS.NID",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Lines Victimized; Lines in S State",
         "Counter": "0,1",
@@ -1029,17 +963,6 @@
         "UMask": "0x28",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x21",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Misses to Local Memory",
         "Counter": "0,1",
@@ -1050,28 +973,6 @@
         "UMask": "0x2A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x23",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; Miss Opcode Match",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Misses to Remote Memory",
         "Counter": "0,1",
@@ -1082,94 +983,6 @@
         "UMask": "0x8A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x83",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x48",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Evictions",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
-        "UMask": "0x44",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Miss All",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
-        "UMask": "0x4A",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
-        "UMask": "0x43",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
-        "UMask": "0x50",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; Opcode Match",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
-        "UMask": "0x1",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Remote Memory",
         "Counter": "0,1",
@@ -1180,17 +993,6 @@
         "UMask": "0x88",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x81",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Writebacks",
         "Counter": "0,1",
@@ -1228,16 +1030,6 @@
         "UMask": "0x28",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x21",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy; Miss All",
         "EventCode": "0x36",
@@ -1256,26 +1048,6 @@
         "UMask": "0x2A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
-        "UMask": "0x23",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy",
         "EventCode": "0x36",
@@ -1285,86 +1057,6 @@
         "UMask": "0x8A",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x83",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
-        "UMask": "0x48",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
-        "UMask": "0x44",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
-        "UMask": "0x4A",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
-        "UMask": "0x43",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
-        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
-        "Filter": "CBoFilter1[15:0]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
-        "UMask": "0x50",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; Opcode Match",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
-        "UMask": "0x1",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy",
         "EventCode": "0x36",
@@ -1374,16 +1066,6 @@
         "UMask": "0x88",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
-        "Filter": "CBoFilter1[28:20]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
-        "UMask": "0x81",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Occupancy; Writebacks",
         "EventCode": "0x36",
@@ -1520,66 +1202,6 @@
         "UMask": "0x8",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x4",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Address",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
-        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
-        "PerPkg": "1",
-        "UMask": "0x1",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x10",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x8",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
-        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x3",
-        "Unit": "HA"
-    },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Opcode",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
-        "Filter": "HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x2",
-        "Unit": "HA"
-    },
     {
         "BriefDescription": "BT Bypass",
         "Counter": "0,1,2,3",
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json
index b50685fbde12..abd1e11af7fd 100644
--- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json
+++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json
@@ -8,17 +8,6 @@
         "PublicDescription": "Counts the number of clocks in the QPI LL.  This clock runs at 1/8th the GT/s speed of the QPI link.  For example, a 8GT/s link will have qfclk or 1GHz.  JKT does not support dynamic link speeds, so this frequency is fixed.",
         "Unit": "QPI LL"
     },
-    {
-        "BriefDescription": "Count of CTO Events",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x38",
-        "EventName": "UNC_Q_CTO_COUNT",
-        "ExtSel": "1",
-        "Filter": "QPIMask0[17:0],QPIMatch0[17:0],QPIMask1[19:16],QPIMatch1[19:16]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of CTO (cluster trigger outs) events that were asserted across the two slots.  If both slots trigger in a given cycle, the event will increment by 2.  You can use edge detect to count the number of cases when both events triggered.",
-        "Unit": "QPI LL"
-    },
     {
         "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - Egress Credits",
         "Counter": "0,1,2,3",
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
index aa7a5059d79f..df4046a9d7f1 100644
--- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
+++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
@@ -247,24 +247,13 @@
         "UMask": "0x2",
         "Unit": "IRP"
     },
-    {
-        "BriefDescription": "Inbound Transaction Count; Select Source",
-        "Counter": "0,1",
-        "EventCode": "0x15",
-        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
-        "Filter": "IRPFilter[4:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
-        "UMask": "0x8",
-        "Unit": "IRP"
-    },
     {
         "BriefDescription": "Inbound Transaction Count: Read Prefetches",
         "Counter": "0,1",
         "EventCode": "0x15",
         "EventName": "UNC_I_TRANSACTIONS.PD_PREFETCHES",
         "PerPkg": "1",
-        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.",
+        "PublicDescription": "Counts the number of \\Inbound\\ transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.",
         "UMask": "0x4",
         "Unit": "IRP"
     },
@@ -2269,17 +2258,6 @@
         "UMask": "0x2",
         "Unit": "UBOX"
     },
-    {
-        "BriefDescription": "Filter Match",
-        "Counter": "0,1",
-        "EventCode": "0x41",
-        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
-        "Filter": "UBoxFilter[3:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
-        "UMask": "0x1",
-        "Unit": "UBOX"
-    },
     {
         "BriefDescription": "Filter Match",
         "Counter": "0,1",
@@ -2290,17 +2268,6 @@
         "UMask": "0x8",
         "Unit": "UBOX"
     },
-    {
-        "BriefDescription": "Filter Match",
-        "Counter": "0,1",
-        "EventCode": "0x41",
-        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
-        "Filter": "UBoxFilter[3:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
-        "UMask": "0x4",
-        "Unit": "UBOX"
-    },
     {
         "BriefDescription": "IDI Lock/SplitLock Cycles",
         "Counter": "0,1",
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json
index 304d861c368f..e0cb4cf09743 100644
--- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json
+++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json
@@ -292,196 +292,6 @@
         "PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state.  In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
         "Unit": "PCU"
     },
-    {
-        "BriefDescription": "Core 0 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x1e",
-        "EventName": "UNC_P_DEMOTIONS_CORE0",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 1 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x1f",
-        "EventName": "UNC_P_DEMOTIONS_CORE1",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 10 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x42",
-        "EventName": "UNC_P_DEMOTIONS_CORE10",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 11 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x43",
-        "EventName": "UNC_P_DEMOTIONS_CORE11",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 12 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x44",
-        "EventName": "UNC_P_DEMOTIONS_CORE12",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 13 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x45",
-        "EventName": "UNC_P_DEMOTIONS_CORE13",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 14 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x46",
-        "EventName": "UNC_P_DEMOTIONS_CORE14",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 2 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_P_DEMOTIONS_CORE2",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 3 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x21",
-        "EventName": "UNC_P_DEMOTIONS_CORE3",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 4 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x22",
-        "EventName": "UNC_P_DEMOTIONS_CORE4",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 5 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x23",
-        "EventName": "UNC_P_DEMOTIONS_CORE5",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 6 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x24",
-        "EventName": "UNC_P_DEMOTIONS_CORE6",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 7 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x25",
-        "EventName": "UNC_P_DEMOTIONS_CORE7",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 8 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x40",
-        "EventName": "UNC_P_DEMOTIONS_CORE8",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core 9 C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x41",
-        "EventName": "UNC_P_DEMOTIONS_CORE9",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xb",
-        "EventName": "UNC_P_FREQ_BAND0_CYCLES",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xc",
-        "EventName": "UNC_P_FREQ_BAND1_CYCLES",
-        "Filter": "PCUFilter[15:8]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xd",
-        "EventName": "UNC_P_FREQ_BAND2_CYCLES",
-        "Filter": "PCUFilter[23:16]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xe",
-        "EventName": "UNC_P_FREQ_BAND3_CYCLES",
-        "Filter": "PCUFilter[31:24]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
     {
         "BriefDescription": "Current Strongest Upper Limit Cycles",
         "Counter": "0,1,2,3",
-- 
2.37.1.455.g008518b4e5-goog


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v1 3/3] perf vendor events: Remove bad jaketown uncore events
  2022-08-03  6:38 [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events Ian Rogers
  2022-08-03  6:38 ` [PATCH v1 2/3] perf vendor events: Remove bad ivytown " Ian Rogers
@ 2022-08-03  6:38 ` Ian Rogers
  2022-08-03  6:56 ` [PATCH v1 1/3] perf vendor events: Remove bad broadwellde " Ian Rogers
  2022-08-03 13:33 ` Liang, Kan
  3 siblings, 0 replies; 10+ messages in thread
From: Ian Rogers @ 2022-08-03  6:38 UTC (permalink / raw)
  To: Zhengjun Xing, Kan Liang, Andi Kleen, perry.taylor,
	caleb.biggers, kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel
  Cc: Stephane Eranian, Ian Rogers

The event converter scripts at:
https://github.com/intel/event-converter-for-linux-perf
passes Filter values from data on 01.org that is bogus in a perf command
line and can cause perf to infinitely recurse in parse events. Remove
such events using the updated patch:
https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6

Fixes: 376d8b581b76 ("perf vendor events: Update Intel jaketown")
Signed-off-by: Ian Rogers <irogers@google.com>
---
 .../arch/x86/jaketown/uncore-cache.json       | 223 ------------------
 .../arch/x86/jaketown/uncore-other.json       |  33 ---
 .../arch/x86/jaketown/uncore-power.json       | 110 ---------
 3 files changed, 366 deletions(-)

diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-cache.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-cache.json
index cf28ffa778ba..4c6600677e7b 100644
--- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-cache.json
+++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-cache.json
@@ -15,50 +15,6 @@
         "PublicDescription": "Since occupancy counts can only be captured in the Cbo's 0 counter, this event allows a user to capture occupancy related information by filtering the Cb0 occupancy count captured in Counter 0.   The filtering available is found in the control register - threshold, invert and edge detect.   E.g. setting threshold to 1 can effectively monitor how many cycles the monitored queue has an entry.",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Cache Lookups; Data Read Request",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
-        "Filter": "CBoFilter[22:18]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; RTID",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.NID",
-        "Filter": "CBoFilter[22:18], CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; External Snoop Request",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
-        "Filter": "CBoFilter[22:18]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.",
-        "UMask": "0x9",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "Cache Lookups; Write Requests",
-        "Counter": "0,1",
-        "EventCode": "0x34",
-        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
-        "Filter": "CBoFilter[22:18]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.",
-        "UMask": "0x5",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Lines Victimized; Lines in E state",
         "Counter": "0,1",
@@ -89,17 +45,6 @@
         "UMask": "0x1",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
-        "Counter": "0,1",
-        "EventCode": "0x37",
-        "EventName": "UNC_C_LLC_VICTIMS.NID",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.",
-        "UMask": "0x40",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Lines Victimized; Lines in S State",
         "Counter": "0,1",
@@ -608,94 +553,6 @@
         "UMask": "0xa",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Inserts; Miss Opcode Match",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
-        "Filter": "CBoFilter[31:23]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x48",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Evictions",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x44",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Miss All",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x4a",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
-        "Filter": "CBoFilter[31:23], CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x43",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
-        "Filter": "CBoFilter[31:23], CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x50",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Inserts; Opcode Match",
-        "Counter": "0,1",
-        "EventCode": "0x35",
-        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
-        "Filter": "CBoFilter[31:23]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).",
-        "UMask": "0x1",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "TOR Inserts; Writebacks",
         "Counter": "0,1",
@@ -733,76 +590,6 @@
         "UMask": "0xa",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
-        "Filter": "CBoFilter[31:23]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x3",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x48",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x44",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
-        "Filter": "CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x4a",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
-        "Filter": "CBoFilter[31:23], CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x43",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
-        "Filter": "CBoFilter[31:23], CBoFilter[17:10]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x41",
-        "Unit": "CBO"
-    },
-    {
-        "BriefDescription": "TOR Occupancy; Opcode Match",
-        "EventCode": "0x36",
-        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
-        "Filter": "CBoFilter[31:23]",
-        "PerPkg": "1",
-        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select 'MISS_OPC_MATCH' and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182)",
-        "UMask": "0x1",
-        "Unit": "CBO"
-    },
     {
         "BriefDescription": "Egress Allocations; AD - Cachebo",
         "Counter": "0,1",
@@ -893,16 +680,6 @@
         "UMask": "0x4",
         "Unit": "CBO"
     },
-    {
-        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x20",
-        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
-        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
-        "PerPkg": "1",
-        "UMask": "0x3",
-        "Unit": "HA"
-    },
     {
         "BriefDescription": "HA to iMC Bypass; Not Taken",
         "Counter": "0,1,2,3",
diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json
index 99fc673c59e9..05a85c458b3a 100644
--- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json
+++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json
@@ -247,17 +247,6 @@
         "UMask": "0x2",
         "Unit": "IRP"
     },
-    {
-        "BriefDescription": "Inbound Transaction Count; Select Source",
-        "Counter": "0,1",
-        "EventCode": "0x15",
-        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
-        "Filter": "IRPFilter[4:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of 'Inbound' transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.",
-        "UMask": "0x8",
-        "Unit": "IRP"
-    },
     {
         "BriefDescription": "Inbound Transaction Count; Read Prefetches",
         "Counter": "0,1",
@@ -1373,17 +1362,6 @@
         "UMask": "0x2",
         "Unit": "UBOX"
     },
-    {
-        "BriefDescription": "Filter Match",
-        "Counter": "0,1",
-        "EventCode": "0x41",
-        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
-        "Filter": "UBoxFilter[3:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
-        "UMask": "0x1",
-        "Unit": "UBOX"
-    },
     {
         "BriefDescription": "Filter Match",
         "Counter": "0,1",
@@ -1394,17 +1372,6 @@
         "UMask": "0x8",
         "Unit": "UBOX"
     },
-    {
-        "BriefDescription": "Filter Match",
-        "Counter": "0,1",
-        "EventCode": "0x41",
-        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
-        "Filter": "UBoxFilter[3:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
-        "UMask": "0x4",
-        "Unit": "UBOX"
-    },
     {
         "BriefDescription": "IDI Lock/SplitLock Cycles",
         "Counter": "0,1",
diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json
index 04228344cb9c..c89a48f6afe2 100644
--- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json
+++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json
@@ -87,26 +87,6 @@
         "PublicDescription": "Number of cycles spent performing core C state transitions.  There is one event per core.",
         "Unit": "PCU"
     },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x1e",
-        "EventName": "UNC_P_DEMOTIONS_CORE0",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x1f",
-        "EventName": "UNC_P_DEMOTIONS_CORE1",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
     {
         "BriefDescription": "Core C State Demotions",
         "Counter": "0,1,2,3",
@@ -116,96 +96,6 @@
         "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
         "Unit": "PCU"
     },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x21",
-        "EventName": "UNC_P_DEMOTIONS_CORE3",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x22",
-        "EventName": "UNC_P_DEMOTIONS_CORE4",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x23",
-        "EventName": "UNC_P_DEMOTIONS_CORE5",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x24",
-        "EventName": "UNC_P_DEMOTIONS_CORE6",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Core C State Demotions",
-        "Counter": "0,1,2,3",
-        "EventCode": "0x25",
-        "EventName": "UNC_P_DEMOTIONS_CORE7",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xb",
-        "EventName": "UNC_P_FREQ_BAND0_CYCLES",
-        "Filter": "PCUFilter[7:0]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xc",
-        "EventName": "UNC_P_FREQ_BAND1_CYCLES",
-        "Filter": "PCUFilter[15:8]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xd",
-        "EventName": "UNC_P_FREQ_BAND2_CYCLES",
-        "Filter": "PCUFilter[23:16]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
-    {
-        "BriefDescription": "Frequency Residency",
-        "Counter": "0,1,2,3",
-        "EventCode": "0xe",
-        "EventName": "UNC_P_FREQ_BAND3_CYCLES",
-        "Filter": "PCUFilter[31:24]",
-        "PerPkg": "1",
-        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
-        "Unit": "PCU"
-    },
     {
         "BriefDescription": "Current Strongest Upper Limit Cycles",
         "Counter": "0,1,2,3",
-- 
2.37.1.455.g008518b4e5-goog


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
  2022-08-03  6:38 [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events Ian Rogers
  2022-08-03  6:38 ` [PATCH v1 2/3] perf vendor events: Remove bad ivytown " Ian Rogers
  2022-08-03  6:38 ` [PATCH v1 3/3] perf vendor events: Remove bad jaketown " Ian Rogers
@ 2022-08-03  6:56 ` Ian Rogers
  2022-08-03 13:33 ` Liang, Kan
  3 siblings, 0 replies; 10+ messages in thread
From: Ian Rogers @ 2022-08-03  6:56 UTC (permalink / raw)
  To: Zhengjun Xing, Kan Liang, Andi Kleen, perry.taylor,
	caleb.biggers, kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel
  Cc: Stephane Eranian

On Tue, Aug 2, 2022 at 11:39 PM Ian Rogers <irogers@google.com> wrote:
>
> The event converter scripts at:
> https://github.com/intel/event-converter-for-linux-perf
> passes Filter values from data on 01.org that is bogus in a perf command
> line and can cause perf to infinitely recurse in parse events. Remove
> such events using the updated patch:
> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
>
> Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
> Signed-off-by: Ian Rogers <irogers@google.com>

Hi,

I also spotted broken uncore events in Arnaldo's perf/core for SKX and
CLX that are bad, like UNC_CHA_TOR_INSERTS.REM_ALL. This is less of an
issue than these 3 patches as it doesn't break perf's start-up. Those
events are also fixed by:
https://github.com/intel/event-converter-for-linux-perf/pull/15
but I've not sent updated events as it appears Zhengjun is preparing
to update the uncore events for SKX and CLX.

Thanks,
Ian

> ---
>  .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
>  .../arch/x86/broadwellde/uncore-other.json    |  33 --
>  2 files changed, 488 deletions(-)
>
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> index caadbca1b15b..75655478952f 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> @@ -32,72 +32,6 @@
>          "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Cache Lookups; Any Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
> -        "UMask": "0x11",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Data Read Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.NID",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Any Read Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.READ",
> -        "Filter": "CBoFilter0[22:18]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; External Snoop Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
> -        "UMask": "0x9",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Write Requests",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
> -        "UMask": "0x5",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Lines Victimized; Lines in E state",
>          "Counter": "0,1,2,3",
> @@ -148,17 +82,6 @@
>          "UMask": "0x1",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x37",
> -        "EventName": "UNC_C_LLC_VICTIMS.NID",
> -        "Filter": "CBoFilter1[17:10]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
>          "Counter": "0,1,2,3",
> @@ -789,17 +712,6 @@
>          "UMask": "0x1",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Probe Queue Retries; Target Node Filter",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x28",
> -        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
>          "Counter": "0,1,2,3",
> @@ -840,17 +752,6 @@
>          "UMask": "0x20",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Ingress Request Queue Rejects",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x32",
> -        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
>          "Counter": "0,1,2,3",
> @@ -891,17 +792,6 @@
>          "UMask": "0x2",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x29",
> -        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "ISMQ Retries; Any Reject",
>          "Counter": "0,1,2,3",
> @@ -932,17 +822,6 @@
>          "UMask": "0x20",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "ISMQ Retries",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x33",
> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "ISMQ Retries; No QPI Credits",
>          "Counter": "0,1,2,3",
> @@ -963,17 +842,6 @@
>          "UMask": "0x8",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "ISMQ Retries",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x33",
> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> -        "UMask": "0x80",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
>          "Counter": "0,1,2,3",
> @@ -994,17 +862,6 @@
>          "UMask": "0x2",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x2A",
> -        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Ingress Occupancy; IPQ",
>          "EventCode": "0x11",
> @@ -1109,17 +966,6 @@
>          "UMask": "0x28",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Misses to Local Memory",
>          "Counter": "0,1,2,3",
> @@ -1130,28 +976,6 @@
>          "UMask": "0x2A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x23",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
>          "Counter": "0,1,2,3",
> @@ -1162,94 +986,6 @@
>          "UMask": "0x8A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x83",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x48",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
> -        "UMask": "0x44",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
> -        "UMask": "0x4A",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
> -        "UMask": "0x43",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
> -        "UMask": "0x50",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
> -        "UMask": "0x1",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Remote Memory",
>          "Counter": "0,1,2,3",
> @@ -1260,17 +996,6 @@
>          "UMask": "0x88",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x81",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Writebacks",
>          "Counter": "0,1,2,3",
> @@ -1308,16 +1033,6 @@
>          "UMask": "0x28",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy; Miss All",
>          "EventCode": "0x36",
> @@ -1336,26 +1051,6 @@
>          "UMask": "0x2A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x23",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy",
>          "EventCode": "0x36",
> @@ -1365,86 +1060,6 @@
>          "UMask": "0x8A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x83",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x48",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
> -        "UMask": "0x44",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
> -        "UMask": "0x4A",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
> -        "UMask": "0x43",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
> -        "UMask": "0x50",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; Opcode Match",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
> -        "UMask": "0x1",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy",
>          "EventCode": "0x36",
> @@ -1454,16 +1069,6 @@
>          "UMask": "0x88",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x81",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy; Writebacks",
>          "EventCode": "0x36",
> @@ -1610,66 +1215,6 @@
>          "UMask": "0x8",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x4",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Address",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x1",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x10",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x8",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x3",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x2",
> -        "Unit": "HA"
> -    },
>      {
>          "BriefDescription": "BT Cycles Not Empty",
>          "Counter": "0,1,2,3",
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> index 71bdf75d8016..24c82ca873bd 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> @@ -416,17 +416,6 @@
>          "UMask": "0x10",
>          "Unit": "IRP"
>      },
> -    {
> -        "BriefDescription": "Inbound Transaction Count; Select Source",
> -        "Counter": "0,1",
> -        "EventCode": "0x16",
> -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
> -        "Filter": "IRPFilter[4:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
> -        "UMask": "0x40",
> -        "Unit": "IRP"
> -    },
>      {
>          "BriefDescription": "Inbound Transaction Count; Other",
>          "Counter": "0,1",
> @@ -1112,17 +1101,6 @@
>          "UMask": "0x2",
>          "Unit": "UBOX"
>      },
> -    {
> -        "BriefDescription": "Filter Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
> -        "Filter": "UBoxFilter[3:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> -        "UMask": "0x1",
> -        "Unit": "UBOX"
> -    },
>      {
>          "BriefDescription": "Filter Match",
>          "Counter": "0,1",
> @@ -1133,17 +1111,6 @@
>          "UMask": "0x8",
>          "Unit": "UBOX"
>      },
> -    {
> -        "BriefDescription": "Filter Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
> -        "Filter": "UBoxFilter[3:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> -        "UMask": "0x4",
> -        "Unit": "UBOX"
> -    },
>      {
>          "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
>          "Counter": "0,1",
> --
> 2.37.1.455.g008518b4e5-goog
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
  2022-08-03  6:38 [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events Ian Rogers
                   ` (2 preceding siblings ...)
  2022-08-03  6:56 ` [PATCH v1 1/3] perf vendor events: Remove bad broadwellde " Ian Rogers
@ 2022-08-03 13:33 ` Liang, Kan
  2022-08-03 17:06   ` Ian Rogers
  3 siblings, 1 reply; 10+ messages in thread
From: Liang, Kan @ 2022-08-03 13:33 UTC (permalink / raw)
  To: Ian Rogers, Zhengjun Xing, Andi Kleen, perry.taylor,
	caleb.biggers, kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel
  Cc: Stephane Eranian



On 2022-08-03 2:38 a.m., Ian Rogers wrote:
> The event converter scripts at:
> https://github.com/intel/event-converter-for-linux-perf
> passes Filter values from data on 01.org that is bogus in a perf command
> line and can cause perf to infinitely recurse in parse events. Remove
> such events using the updated patch:
> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
> 
> Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
>  .../arch/x86/broadwellde/uncore-other.json    |  33 --
>  2 files changed, 488 deletions(-)
> 
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> index caadbca1b15b..75655478952f 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> @@ -32,72 +32,6 @@
>          "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Cache Lookups; Any Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
> -        "Filter": "CBoFilter0[23:17]",


The bogus Filter value is introduced from the previous commit ef908a192512.

+    {
+        "BriefDescription": "Cache Lookups; Any Request",
         "Counter": "0,1,2,3",
         "EventCode": "0x34",
         "EventName": "UNC_C_LLC_LOOKUP.ANY",
-        "Filter": "filter_state=0x1",
+        "Filter": "CBoFilter0[23:17]",
         "PerPkg": "1",
-        "ScaleUnit": "64Bytes",
+        "PublicDescription": "Counts the number of times the LLC was
accessed - this includes code, data, prefetches and hints coming from
L2.  This has numerous filters available.  Note the non-standard
filtering equation.  This event will count requests that lookup the
cache multiple times with multiple increments.  One must ALWAYS set
umask bit 0 and select a state or states to match.  Otherwise, the event
will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI]
state.; Filters for any transaction originating from the IPQ or IRQ.
This does not include lookups originating from the ISMQ.",
         "UMask": "0x11",
         "Unit": "CBO"
     },

If I recall correctly, the event list in the 01.org should always have
Filter value CBoFilter0[23:17]. It probably be the converter tool to
change it to "filter_state=0x1". I'm not sure why the converter tool
doesn't do it now.

If that's the case, I think we should fix the current converter tool,
rather than simply delete the event.

Also, it seems the bogus Filter value is not captured by the perf test.
I think it's better to improve the perf test to test it.


Thanks,
Kan
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
> -        "UMask": "0x11",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Data Read Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.NID",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Any Read Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.READ",
> -        "Filter": "CBoFilter0[22:18]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; External Snoop Request",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
> -        "UMask": "0x9",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Write Requests",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
> -        "UMask": "0x5",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Lines Victimized; Lines in E state",
>          "Counter": "0,1,2,3",
> @@ -148,17 +82,6 @@
>          "UMask": "0x1",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x37",
> -        "EventName": "UNC_C_LLC_VICTIMS.NID",
> -        "Filter": "CBoFilter1[17:10]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
>          "Counter": "0,1,2,3",
> @@ -789,17 +712,6 @@
>          "UMask": "0x1",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Probe Queue Retries; Target Node Filter",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x28",
> -        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
>          "Counter": "0,1,2,3",
> @@ -840,17 +752,6 @@
>          "UMask": "0x20",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Ingress Request Queue Rejects",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x32",
> -        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
>          "Counter": "0,1,2,3",
> @@ -891,17 +792,6 @@
>          "UMask": "0x2",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x29",
> -        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "ISMQ Retries; Any Reject",
>          "Counter": "0,1,2,3",
> @@ -932,17 +822,6 @@
>          "UMask": "0x20",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "ISMQ Retries",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x33",
> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "ISMQ Retries; No QPI Credits",
>          "Counter": "0,1,2,3",
> @@ -963,17 +842,6 @@
>          "UMask": "0x8",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "ISMQ Retries",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x33",
> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> -        "UMask": "0x80",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
>          "Counter": "0,1,2,3",
> @@ -994,17 +862,6 @@
>          "UMask": "0x2",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x2A",
> -        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Ingress Occupancy; IPQ",
>          "EventCode": "0x11",
> @@ -1109,17 +966,6 @@
>          "UMask": "0x28",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Misses to Local Memory",
>          "Counter": "0,1,2,3",
> @@ -1130,28 +976,6 @@
>          "UMask": "0x2A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x23",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
>          "Counter": "0,1,2,3",
> @@ -1162,94 +986,6 @@
>          "UMask": "0x8A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x83",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x48",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
> -        "UMask": "0x44",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
> -        "UMask": "0x4A",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
> -        "UMask": "0x43",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
> -        "UMask": "0x50",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
> -        "UMask": "0x1",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Remote Memory",
>          "Counter": "0,1,2,3",
> @@ -1260,17 +996,6 @@
>          "UMask": "0x88",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x81",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Writebacks",
>          "Counter": "0,1,2,3",
> @@ -1308,16 +1033,6 @@
>          "UMask": "0x28",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy; Miss All",
>          "EventCode": "0x36",
> @@ -1336,26 +1051,6 @@
>          "UMask": "0x2A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x23",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy",
>          "EventCode": "0x36",
> @@ -1365,86 +1060,6 @@
>          "UMask": "0x8A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x83",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x48",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
> -        "UMask": "0x44",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
> -        "UMask": "0x4A",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
> -        "UMask": "0x43",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
> -        "UMask": "0x50",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; Opcode Match",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
> -        "UMask": "0x1",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy",
>          "EventCode": "0x36",
> @@ -1454,16 +1069,6 @@
>          "UMask": "0x88",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x81",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy; Writebacks",
>          "EventCode": "0x36",
> @@ -1610,66 +1215,6 @@
>          "UMask": "0x8",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x4",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Address",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x1",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x10",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x8",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x3",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x2",
> -        "Unit": "HA"
> -    },
>      {
>          "BriefDescription": "BT Cycles Not Empty",
>          "Counter": "0,1,2,3",
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> index 71bdf75d8016..24c82ca873bd 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> @@ -416,17 +416,6 @@
>          "UMask": "0x10",
>          "Unit": "IRP"
>      },
> -    {
> -        "BriefDescription": "Inbound Transaction Count; Select Source",
> -        "Counter": "0,1",
> -        "EventCode": "0x16",
> -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
> -        "Filter": "IRPFilter[4:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
> -        "UMask": "0x40",
> -        "Unit": "IRP"
> -    },
>      {
>          "BriefDescription": "Inbound Transaction Count; Other",
>          "Counter": "0,1",
> @@ -1112,17 +1101,6 @@
>          "UMask": "0x2",
>          "Unit": "UBOX"
>      },
> -    {
> -        "BriefDescription": "Filter Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
> -        "Filter": "UBoxFilter[3:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> -        "UMask": "0x1",
> -        "Unit": "UBOX"
> -    },
>      {
>          "BriefDescription": "Filter Match",
>          "Counter": "0,1",
> @@ -1133,17 +1111,6 @@
>          "UMask": "0x8",
>          "Unit": "UBOX"
>      },
> -    {
> -        "BriefDescription": "Filter Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
> -        "Filter": "UBoxFilter[3:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> -        "UMask": "0x4",
> -        "Unit": "UBOX"
> -    },
>      {
>          "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
>          "Counter": "0,1",

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
  2022-08-03 13:33 ` Liang, Kan
@ 2022-08-03 17:06   ` Ian Rogers
  2022-08-04 13:05     ` Liang, Kan
  0 siblings, 1 reply; 10+ messages in thread
From: Ian Rogers @ 2022-08-03 17:06 UTC (permalink / raw)
  To: Liang, Kan
  Cc: Zhengjun Xing, Andi Kleen, perry.taylor, caleb.biggers,
	kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel,
	Stephane Eranian

On Wed, Aug 3, 2022 at 6:33 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>
>
>
> On 2022-08-03 2:38 a.m., Ian Rogers wrote:
> > The event converter scripts at:
> > https://github.com/intel/event-converter-for-linux-perf
> > passes Filter values from data on 01.org that is bogus in a perf command
> > line and can cause perf to infinitely recurse in parse events. Remove
> > such events using the updated patch:
> > https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
> >
> > Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> >  .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
> >  .../arch/x86/broadwellde/uncore-other.json    |  33 --
> >  2 files changed, 488 deletions(-)
> >
> > diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> > index caadbca1b15b..75655478952f 100644
> > --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> > +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> > @@ -32,72 +32,6 @@
> >          "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "Cache Lookups; Any Request",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x34",
> > -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
> > -        "Filter": "CBoFilter0[23:17]",
>
>
> The bogus Filter value is introduced from the previous commit ef908a192512.
>
> +    {
> +        "BriefDescription": "Cache Lookups; Any Request",
>          "Counter": "0,1,2,3",
>          "EventCode": "0x34",
>          "EventName": "UNC_C_LLC_LOOKUP.ANY",
> -        "Filter": "filter_state=0x1",
> +        "Filter": "CBoFilter0[23:17]",
>          "PerPkg": "1",
> -        "ScaleUnit": "64Bytes",
> +        "PublicDescription": "Counts the number of times the LLC was
> accessed - this includes code, data, prefetches and hints coming from
> L2.  This has numerous filters available.  Note the non-standard
> filtering equation.  This event will count requests that lookup the
> cache multiple times with multiple increments.  One must ALWAYS set
> umask bit 0 and select a state or states to match.  Otherwise, the event
> will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI]
> state.; Filters for any transaction originating from the IPQ or IRQ.
> This does not include lookups originating from the ISMQ.",
>          "UMask": "0x11",
>          "Unit": "CBO"
>      },
>
> If I recall correctly, the event list in the 01.org should always have
> Filter value CBoFilter0[23:17]. It probably be the converter tool to
> change it to "filter_state=0x1". I'm not sure why the converter tool
> doesn't do it now.
>
> If that's the case, I think we should fix the current converter tool,
> rather than simply delete the event.
>
> Also, it seems the bogus Filter value is not captured by the perf test.
> I think it's better to improve the perf test to test it.
>
>
> Thanks,
> Kan

Thanks Kan,

There is an existing CHAFilter drop, which skips a bunch of events on
more recent architectures than broadwellde/Ivytown/jaketown:
https://github.com/intel/event-converter-for-linux-perf/blob/master/uncore_csv_json.py#L243

I would like to include these events too, but I don't believe 1 is the
correct constant in all cases, there is also the difference between
filter_state and filter_opc, etc. I spent some time looking into this
but couldn't convince myself anything I'd do would be correct.

These changes fix an issue that causes perf to crash at
startup/parse-events PMU initialization on these models. I think we
should prioritize landing this fix and then follow up with the
corrected events. Correcting them can also fix the CHAFilter issue
too, which would have a wider impact.

Thanks,
Ian

> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
> > -        "UMask": "0x11",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "Cache Lookups; Data Read Request",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x34",
> > -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
> > -        "Filter": "CBoFilter0[23:17]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> > -        "UMask": "0x3",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x34",
> > -        "EventName": "UNC_C_LLC_LOOKUP.NID",
> > -        "Filter": "CBoFilter0[23:17]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> > -        "UMask": "0x41",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "Cache Lookups; Any Read Request",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x34",
> > -        "EventName": "UNC_C_LLC_LOOKUP.READ",
> > -        "Filter": "CBoFilter0[22:18]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> > -        "UMask": "0x21",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "Cache Lookups; External Snoop Request",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x34",
> > -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
> > -        "Filter": "CBoFilter0[23:17]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
> > -        "UMask": "0x9",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "Cache Lookups; Write Requests",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x34",
> > -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
> > -        "Filter": "CBoFilter0[23:17]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
> > -        "UMask": "0x5",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "Lines Victimized; Lines in E state",
> >          "Counter": "0,1,2,3",
> > @@ -148,17 +82,6 @@
> >          "UMask": "0x1",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x37",
> > -        "EventName": "UNC_C_LLC_VICTIMS.NID",
> > -        "Filter": "CBoFilter1[17:10]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> > -        "UMask": "0x40",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
> >          "Counter": "0,1,2,3",
> > @@ -789,17 +712,6 @@
> >          "UMask": "0x1",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "Probe Queue Retries; Target Node Filter",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x28",
> > -        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> > -        "UMask": "0x40",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
> >          "Counter": "0,1,2,3",
> > @@ -840,17 +752,6 @@
> >          "UMask": "0x20",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "Ingress Request Queue Rejects",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x32",
> > -        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> > -        "UMask": "0x40",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
> >          "Counter": "0,1,2,3",
> > @@ -891,17 +792,6 @@
> >          "UMask": "0x2",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x29",
> > -        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> > -        "UMask": "0x40",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "ISMQ Retries; Any Reject",
> >          "Counter": "0,1,2,3",
> > @@ -932,17 +822,6 @@
> >          "UMask": "0x20",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "ISMQ Retries",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x33",
> > -        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> > -        "UMask": "0x40",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "ISMQ Retries; No QPI Credits",
> >          "Counter": "0,1,2,3",
> > @@ -963,17 +842,6 @@
> >          "UMask": "0x8",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "ISMQ Retries",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x33",
> > -        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> > -        "UMask": "0x80",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
> >          "Counter": "0,1,2,3",
> > @@ -994,17 +862,6 @@
> >          "UMask": "0x2",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x2A",
> > -        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> > -        "UMask": "0x40",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "Ingress Occupancy; IPQ",
> >          "EventCode": "0x11",
> > @@ -1109,17 +966,6 @@
> >          "UMask": "0x28",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
> > -        "UMask": "0x21",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Inserts; Misses to Local Memory",
> >          "Counter": "0,1,2,3",
> > @@ -1130,28 +976,6 @@
> >          "UMask": "0x2A",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
> > -        "UMask": "0x23",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
> > -        "UMask": "0x3",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
> >          "Counter": "0,1,2,3",
> > @@ -1162,94 +986,6 @@
> >          "UMask": "0x8A",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> > -        "UMask": "0x83",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; NID Matched",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> > -        "UMask": "0x48",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
> > -        "UMask": "0x44",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
> > -        "UMask": "0x4A",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
> > -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
> > -        "UMask": "0x43",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
> > -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
> > -        "UMask": "0x41",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
> > -        "UMask": "0x50",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Inserts; Opcode Match",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
> > -        "UMask": "0x1",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Inserts; Remote Memory",
> >          "Counter": "0,1,2,3",
> > @@ -1260,17 +996,6 @@
> >          "UMask": "0x88",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x35",
> > -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> > -        "UMask": "0x81",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Inserts; Writebacks",
> >          "Counter": "0,1,2,3",
> > @@ -1308,16 +1033,6 @@
> >          "UMask": "0x28",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
> > -        "UMask": "0x21",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Occupancy; Miss All",
> >          "EventCode": "0x36",
> > @@ -1336,26 +1051,6 @@
> >          "UMask": "0x2A",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
> > -        "UMask": "0x23",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
> > -        "UMask": "0x3",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Occupancy",
> >          "EventCode": "0x36",
> > @@ -1365,86 +1060,6 @@
> >          "UMask": "0x8A",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
> > -        "UMask": "0x83",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; NID Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> > -        "UMask": "0x48",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
> > -        "UMask": "0x44",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; NID Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
> > -        "UMask": "0x4A",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
> > -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
> > -        "UMask": "0x43",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
> > -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
> > -        "UMask": "0x41",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
> > -        "Filter": "CBoFilter1[15:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
> > -        "UMask": "0x50",
> > -        "Unit": "CBO"
> > -    },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; Opcode Match",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
> > -        "UMask": "0x1",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Occupancy",
> >          "EventCode": "0x36",
> > @@ -1454,16 +1069,6 @@
> >          "UMask": "0x88",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
> > -        "EventCode": "0x36",
> > -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
> > -        "Filter": "CBoFilter1[28:20]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
> > -        "UMask": "0x81",
> > -        "Unit": "CBO"
> > -    },
> >      {
> >          "BriefDescription": "TOR Occupancy; Writebacks",
> >          "EventCode": "0x36",
> > @@ -1610,66 +1215,6 @@
> >          "UMask": "0x8",
> >          "Unit": "CBO"
> >      },
> > -    {
> > -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x20",
> > -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
> > -        "Filter": "HA_OpcodeMatch[5:0]",
> > -        "PerPkg": "1",
> > -        "UMask": "0x4",
> > -        "Unit": "HA"
> > -    },
> > -    {
> > -        "BriefDescription": "QPI Address/Opcode Match; Address",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x20",
> > -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
> > -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
> > -        "PerPkg": "1",
> > -        "UMask": "0x1",
> > -        "Unit": "HA"
> > -    },
> > -    {
> > -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x20",
> > -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
> > -        "Filter": "HA_OpcodeMatch[5:0]",
> > -        "PerPkg": "1",
> > -        "UMask": "0x10",
> > -        "Unit": "HA"
> > -    },
> > -    {
> > -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x20",
> > -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
> > -        "Filter": "HA_OpcodeMatch[5:0]",
> > -        "PerPkg": "1",
> > -        "UMask": "0x8",
> > -        "Unit": "HA"
> > -    },
> > -    {
> > -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x20",
> > -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
> > -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
> > -        "PerPkg": "1",
> > -        "UMask": "0x3",
> > -        "Unit": "HA"
> > -    },
> > -    {
> > -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
> > -        "Counter": "0,1,2,3",
> > -        "EventCode": "0x20",
> > -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
> > -        "Filter": "HA_OpcodeMatch[5:0]",
> > -        "PerPkg": "1",
> > -        "UMask": "0x2",
> > -        "Unit": "HA"
> > -    },
> >      {
> >          "BriefDescription": "BT Cycles Not Empty",
> >          "Counter": "0,1,2,3",
> > diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> > index 71bdf75d8016..24c82ca873bd 100644
> > --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> > +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> > @@ -416,17 +416,6 @@
> >          "UMask": "0x10",
> >          "Unit": "IRP"
> >      },
> > -    {
> > -        "BriefDescription": "Inbound Transaction Count; Select Source",
> > -        "Counter": "0,1",
> > -        "EventCode": "0x16",
> > -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
> > -        "Filter": "IRPFilter[4:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
> > -        "UMask": "0x40",
> > -        "Unit": "IRP"
> > -    },
> >      {
> >          "BriefDescription": "Inbound Transaction Count; Other",
> >          "Counter": "0,1",
> > @@ -1112,17 +1101,6 @@
> >          "UMask": "0x2",
> >          "Unit": "UBOX"
> >      },
> > -    {
> > -        "BriefDescription": "Filter Match",
> > -        "Counter": "0,1",
> > -        "EventCode": "0x41",
> > -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
> > -        "Filter": "UBoxFilter[3:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> > -        "UMask": "0x1",
> > -        "Unit": "UBOX"
> > -    },
> >      {
> >          "BriefDescription": "Filter Match",
> >          "Counter": "0,1",
> > @@ -1133,17 +1111,6 @@
> >          "UMask": "0x8",
> >          "Unit": "UBOX"
> >      },
> > -    {
> > -        "BriefDescription": "Filter Match",
> > -        "Counter": "0,1",
> > -        "EventCode": "0x41",
> > -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
> > -        "Filter": "UBoxFilter[3:0]",
> > -        "PerPkg": "1",
> > -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> > -        "UMask": "0x4",
> > -        "Unit": "UBOX"
> > -    },
> >      {
> >          "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
> >          "Counter": "0,1",

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 2/3] perf vendor events: Remove bad ivytown uncore events
  2022-08-03  6:38 ` [PATCH v1 2/3] perf vendor events: Remove bad ivytown " Ian Rogers
@ 2022-08-04  0:18   ` Ian Rogers
  0 siblings, 0 replies; 10+ messages in thread
From: Ian Rogers @ 2022-08-04  0:18 UTC (permalink / raw)
  To: Zhengjun Xing, Kan Liang, Andi Kleen, perry.taylor,
	caleb.biggers, kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel
  Cc: Stephane Eranian

On Tue, Aug 2, 2022 at 11:39 PM Ian Rogers <irogers@google.com> wrote:
>
> The event converter scripts at:
> https://github.com/intel/event-converter-for-linux-perf
> passes Filter values from data on 01.org that is bogus in a perf command
> line and can cause perf to infinitely recurse in parse events. Remove
> such events using the updated patch:
> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
>
> Fixes: 6220136831e3 ("perf vendor events: Update Intel ivytown")
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  .../arch/x86/ivytown/uncore-cache.json        | 378 ------------------
>  .../arch/x86/ivytown/uncore-interconnect.json |  11 -
>  .../arch/x86/ivytown/uncore-other.json        |  35 +-
>  .../arch/x86/ivytown/uncore-power.json        | 190 ---------
>  4 files changed, 1 insertion(+), 613 deletions(-)
>
> diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json
> index 1e53bee8af5c..85bc9c76c0cc 100644
> --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json
> +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-cache.json
> @@ -15,61 +15,6 @@
>          "PublicDescription": "Since occupancy counts can only be captured in the Cbo's 0 counter, this event allows a user to capture occupancy related information by filtering the Cb0 occupancy count captured in Counter 0.   The filtering available is found in the control register - threshold, invert and edge detect.   E.g. setting threshold to 1 can effectively monitor how many cycles the monitored queue has an entry.",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Cache Lookups; Any Request",
> -        "Counter": "0,1",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
> -        "UMask": "0x11",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Data Read Request",
> -        "Counter": "0,1",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Read transactions",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
> -        "Counter": "0,1",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.NID",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; External Snoop Request",
> -        "Counter": "0,1",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
> -        "UMask": "0x9",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "Cache Lookups; Write Requests",
> -        "Counter": "0,1",
> -        "EventCode": "0x34",
> -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
> -        "Filter": "CBoFilter0[23:17]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set filter mask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:17] bits correspond to [M'FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
> -        "UMask": "0x5",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Lines Victimized; Lines in E state",
>          "Counter": "0,1",
> @@ -100,17 +45,6 @@
>          "UMask": "0x1",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
> -        "Counter": "0,1",
> -        "EventCode": "0x37",
> -        "EventName": "UNC_C_LLC_VICTIMS.NID",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x40",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "Lines Victimized; Lines in S State",
>          "Counter": "0,1",
> @@ -1029,17 +963,6 @@
>          "UMask": "0x28",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Misses to Local Memory",
>          "Counter": "0,1",
> @@ -1050,28 +973,6 @@
>          "UMask": "0x2A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x23",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
>          "Counter": "0,1",
> @@ -1082,94 +983,6 @@
>          "UMask": "0x8A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x83",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x48",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
> -        "UMask": "0x44",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
> -        "UMask": "0x4A",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
> -        "UMask": "0x43",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
> -        "UMask": "0x50",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Inserts; Opcode Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
> -        "UMask": "0x1",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Remote Memory",
>          "Counter": "0,1",
> @@ -1180,17 +993,6 @@
>          "UMask": "0x88",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
> -        "Counter": "0,1",
> -        "EventCode": "0x35",
> -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x81",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Inserts; Writebacks",
>          "Counter": "0,1",
> @@ -1228,16 +1030,6 @@
>          "UMask": "0x28",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x21",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy; Miss All",
>          "EventCode": "0x36",
> @@ -1256,26 +1048,6 @@
>          "UMask": "0x2A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
> -        "UMask": "0x23",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
> -        "UMask": "0x3",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy",
>          "EventCode": "0x36",
> @@ -1285,86 +1057,6 @@
>          "UMask": "0x8A",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x83",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> -        "UMask": "0x48",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
> -        "UMask": "0x44",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
> -        "UMask": "0x4A",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
> -        "UMask": "0x43",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
> -        "UMask": "0x41",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
> -        "Filter": "CBoFilter1[15:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
> -        "UMask": "0x50",
> -        "Unit": "CBO"
> -    },
> -    {
> -        "BriefDescription": "TOR Occupancy; Opcode Match",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
> -        "UMask": "0x1",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy",
>          "EventCode": "0x36",
> @@ -1374,16 +1066,6 @@
>          "UMask": "0x88",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
> -        "EventCode": "0x36",
> -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
> -        "Filter": "CBoFilter1[28:20]",
> -        "PerPkg": "1",
> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
> -        "UMask": "0x81",
> -        "Unit": "CBO"
> -    },
>      {
>          "BriefDescription": "TOR Occupancy; Writebacks",
>          "EventCode": "0x36",
> @@ -1520,66 +1202,6 @@
>          "UMask": "0x8",
>          "Unit": "CBO"
>      },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x4",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Address",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x1",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x10",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x8",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x3",
> -        "Unit": "HA"
> -    },
> -    {
> -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
> -        "Filter": "HA_OpcodeMatch[5:0]",
> -        "PerPkg": "1",
> -        "UMask": "0x2",
> -        "Unit": "HA"
> -    },
>      {
>          "BriefDescription": "BT Bypass",
>          "Counter": "0,1,2,3",
> diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json
> index b50685fbde12..abd1e11af7fd 100644
> --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json
> +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-interconnect.json
> @@ -8,17 +8,6 @@
>          "PublicDescription": "Counts the number of clocks in the QPI LL.  This clock runs at 1/8th the GT/s speed of the QPI link.  For example, a 8GT/s link will have qfclk or 1GHz.  JKT does not support dynamic link speeds, so this frequency is fixed.",
>          "Unit": "QPI LL"
>      },
> -    {
> -        "BriefDescription": "Count of CTO Events",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x38",
> -        "EventName": "UNC_Q_CTO_COUNT",
> -        "ExtSel": "1",
> -        "Filter": "QPIMask0[17:0],QPIMatch0[17:0],QPIMask1[19:16],QPIMatch1[19:16]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of CTO (cluster trigger outs) events that were asserted across the two slots.  If both slots trigger in a given cycle, the event will increment by 2.  You can use edge detect to count the number of cases when both events triggered.",
> -        "Unit": "QPI LL"
> -    },
>      {
>          "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - Egress Credits",
>          "Counter": "0,1,2,3",
> diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
> index aa7a5059d79f..df4046a9d7f1 100644
> --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
> +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
> @@ -247,24 +247,13 @@
>          "UMask": "0x2",
>          "Unit": "IRP"
>      },
> -    {
> -        "BriefDescription": "Inbound Transaction Count; Select Source",
> -        "Counter": "0,1",
> -        "EventCode": "0x15",
> -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
> -        "Filter": "IRPFilter[4:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
> -        "UMask": "0x8",
> -        "Unit": "IRP"
> -    },
>      {
>          "BriefDescription": "Inbound Transaction Count: Read Prefetches",
>          "Counter": "0,1",
>          "EventCode": "0x15",
>          "EventName": "UNC_I_TRANSACTIONS.PD_PREFETCHES",
>          "PerPkg": "1",
> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.",
> +        "PublicDescription": "Counts the number of \\Inbound\\ transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.",

Sorry, this needs to be manually fixed. I'll send a v2 with it corrected.

Thanks,
Ian

>          "UMask": "0x4",
>          "Unit": "IRP"
>      },
> @@ -2269,17 +2258,6 @@
>          "UMask": "0x2",
>          "Unit": "UBOX"
>      },
> -    {
> -        "BriefDescription": "Filter Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
> -        "Filter": "UBoxFilter[3:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> -        "UMask": "0x1",
> -        "Unit": "UBOX"
> -    },
>      {
>          "BriefDescription": "Filter Match",
>          "Counter": "0,1",
> @@ -2290,17 +2268,6 @@
>          "UMask": "0x8",
>          "Unit": "UBOX"
>      },
> -    {
> -        "BriefDescription": "Filter Match",
> -        "Counter": "0,1",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
> -        "Filter": "UBoxFilter[3:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> -        "UMask": "0x4",
> -        "Unit": "UBOX"
> -    },
>      {
>          "BriefDescription": "IDI Lock/SplitLock Cycles",
>          "Counter": "0,1",
> diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json
> index 304d861c368f..e0cb4cf09743 100644
> --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json
> +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json
> @@ -292,196 +292,6 @@
>          "PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state.  In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
>          "Unit": "PCU"
>      },
> -    {
> -        "BriefDescription": "Core 0 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x1e",
> -        "EventName": "UNC_P_DEMOTIONS_CORE0",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 1 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x1f",
> -        "EventName": "UNC_P_DEMOTIONS_CORE1",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 10 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x42",
> -        "EventName": "UNC_P_DEMOTIONS_CORE10",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 11 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x43",
> -        "EventName": "UNC_P_DEMOTIONS_CORE11",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 12 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x44",
> -        "EventName": "UNC_P_DEMOTIONS_CORE12",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 13 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x45",
> -        "EventName": "UNC_P_DEMOTIONS_CORE13",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 14 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x46",
> -        "EventName": "UNC_P_DEMOTIONS_CORE14",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 2 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x20",
> -        "EventName": "UNC_P_DEMOTIONS_CORE2",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 3 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x21",
> -        "EventName": "UNC_P_DEMOTIONS_CORE3",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 4 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x22",
> -        "EventName": "UNC_P_DEMOTIONS_CORE4",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 5 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x23",
> -        "EventName": "UNC_P_DEMOTIONS_CORE5",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 6 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x24",
> -        "EventName": "UNC_P_DEMOTIONS_CORE6",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 7 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x25",
> -        "EventName": "UNC_P_DEMOTIONS_CORE7",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 8 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x40",
> -        "EventName": "UNC_P_DEMOTIONS_CORE8",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Core 9 C State Demotions",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0x41",
> -        "EventName": "UNC_P_DEMOTIONS_CORE9",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Frequency Residency",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0xb",
> -        "EventName": "UNC_P_FREQ_BAND0_CYCLES",
> -        "Filter": "PCUFilter[7:0]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Frequency Residency",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0xc",
> -        "EventName": "UNC_P_FREQ_BAND1_CYCLES",
> -        "Filter": "PCUFilter[15:8]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Frequency Residency",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0xd",
> -        "EventName": "UNC_P_FREQ_BAND2_CYCLES",
> -        "Filter": "PCUFilter[23:16]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
> -        "Unit": "PCU"
> -    },
> -    {
> -        "BriefDescription": "Frequency Residency",
> -        "Counter": "0,1,2,3",
> -        "EventCode": "0xe",
> -        "EventName": "UNC_P_FREQ_BAND3_CYCLES",
> -        "Filter": "PCUFilter[31:24]",
> -        "PerPkg": "1",
> -        "PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter.  One can use all four counters with this event, so it is possible to track up to 4 configurable bands.  One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
> -        "Unit": "PCU"
> -    },
>      {
>          "BriefDescription": "Current Strongest Upper Limit Cycles",
>          "Counter": "0,1,2,3",
> --
> 2.37.1.455.g008518b4e5-goog
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
  2022-08-03 17:06   ` Ian Rogers
@ 2022-08-04 13:05     ` Liang, Kan
  2022-08-04 15:00       ` Ian Rogers
  0 siblings, 1 reply; 10+ messages in thread
From: Liang, Kan @ 2022-08-04 13:05 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Zhengjun Xing, Andi Kleen, perry.taylor, caleb.biggers,
	kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel,
	Stephane Eranian



On 2022-08-03 1:06 p.m., Ian Rogers wrote:
> On Wed, Aug 3, 2022 at 6:33 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>>
>>
>>
>> On 2022-08-03 2:38 a.m., Ian Rogers wrote:
>>> The event converter scripts at:
>>> https://github.com/intel/event-converter-for-linux-perf
>>> passes Filter values from data on 01.org that is bogus in a perf command
>>> line and can cause perf to infinitely recurse in parse events. Remove
>>> such events using the updated patch:
>>> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
>>>
>>> Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
>>> Signed-off-by: Ian Rogers <irogers@google.com>
>>> ---
>>>  .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
>>>  .../arch/x86/broadwellde/uncore-other.json    |  33 --
>>>  2 files changed, 488 deletions(-)
>>>
>>> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
>>> index caadbca1b15b..75655478952f 100644
>>> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
>>> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
>>> @@ -32,72 +32,6 @@
>>>          "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Cache Lookups; Any Request",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x34",
>>> -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
>>> -        "Filter": "CBoFilter0[23:17]",
>>
>>
>> The bogus Filter value is introduced from the previous commit ef908a192512.
>>
>> +    {
>> +        "BriefDescription": "Cache Lookups; Any Request",
>>          "Counter": "0,1,2,3",
>>          "EventCode": "0x34",
>>          "EventName": "UNC_C_LLC_LOOKUP.ANY",
>> -        "Filter": "filter_state=0x1",
>> +        "Filter": "CBoFilter0[23:17]",
>>          "PerPkg": "1",
>> -        "ScaleUnit": "64Bytes",
>> +        "PublicDescription": "Counts the number of times the LLC was
>> accessed - this includes code, data, prefetches and hints coming from
>> L2.  This has numerous filters available.  Note the non-standard
>> filtering equation.  This event will count requests that lookup the
>> cache multiple times with multiple increments.  One must ALWAYS set
>> umask bit 0 and select a state or states to match.  Otherwise, the event
>> will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI]
>> state.; Filters for any transaction originating from the IPQ or IRQ.
>> This does not include lookups originating from the ISMQ.",
>>          "UMask": "0x11",
>>          "Unit": "CBO"
>>      },
>>
>> If I recall correctly, the event list in the 01.org should always have
>> Filter value CBoFilter0[23:17]. It probably be the converter tool to
>> change it to "filter_state=0x1". I'm not sure why the converter tool
>> doesn't do it now.
>>
>> If that's the case, I think we should fix the current converter tool,
>> rather than simply delete the event.
>>
>> Also, it seems the bogus Filter value is not captured by the perf test.
>> I think it's better to improve the perf test to test it.
>>
>>
>> Thanks,
>> Kan
> 
> Thanks Kan,
> 
> There is an existing CHAFilter drop, which skips a bunch of events on
> more recent architectures than broadwellde/Ivytown/jaketown:
> https://github.com/intel/event-converter-for-linux-perf/blob/master/uncore_csv_json.py#L243
> 
> I would like to include these events too, but I don't believe 1 is the
> correct constant in all cases, there is also the difference between
> filter_state and filter_opc, etc. I spent some time looking into this
> but couldn't convince myself anything I'd do would be correct.
> 

For this event, it must be filter_state, since the CBoFilter0 is
[23:17]. Yes, I agree that 1 seems wrong. 1 should mean the I state. If
we'd like to collect any lookup, I think we should use 0x1F here.

There are so many events which have the similar CBoFilter0. I don't
think we can find the correct value for all of them.

Could we modify the converter tool and only drop the "Filter":
"CBoFilter0[23:17]" for now?
For the end-users, I think they can still use the below format to access
the event for any state.

perf stat -e uncore_cbo/UNC_C_LLC_LOOKUP.ANY,filter_state=0x1f/

If they are only interest in the I state,

perf stat -e uncore_cbo/UNC_C_LLC_LOOKUP.ANY,filter_state=0x1/


> These changes fix an issue that causes perf to crash at
> startup/parse-events PMU initialization on these models. I think we
> should prioritize landing this fix and then follow up with the
> corrected events. Correcting them can also fix the CHAFilter issue
> too, which would have a wider impact.
> 

If the "Filter": "CBoFilter0[23:17]" line is removed, I think the crash
should be gone. We can find a solution to support the CBoFilter0 later.
For example, we may either change the perf tool to give user a hint, or
find a correct value for the filter.

Thanks,
Kan

> Thanks,
> Ian
> 
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
>>> -        "UMask": "0x11",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "Cache Lookups; Data Read Request",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x34",
>>> -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
>>> -        "Filter": "CBoFilter0[23:17]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
>>> -        "UMask": "0x3",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x34",
>>> -        "EventName": "UNC_C_LLC_LOOKUP.NID",
>>> -        "Filter": "CBoFilter0[23:17]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>> -        "UMask": "0x41",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "Cache Lookups; Any Read Request",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x34",
>>> -        "EventName": "UNC_C_LLC_LOOKUP.READ",
>>> -        "Filter": "CBoFilter0[22:18]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
>>> -        "UMask": "0x21",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "Cache Lookups; External Snoop Request",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x34",
>>> -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
>>> -        "Filter": "CBoFilter0[23:17]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
>>> -        "UMask": "0x9",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "Cache Lookups; Write Requests",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x34",
>>> -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
>>> -        "Filter": "CBoFilter0[23:17]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
>>> -        "UMask": "0x5",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "Lines Victimized; Lines in E state",
>>>          "Counter": "0,1,2,3",
>>> @@ -148,17 +82,6 @@
>>>          "UMask": "0x1",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x37",
>>> -        "EventName": "UNC_C_LLC_VICTIMS.NID",
>>> -        "Filter": "CBoFilter1[17:10]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
>>>          "Counter": "0,1,2,3",
>>> @@ -789,17 +712,6 @@
>>>          "UMask": "0x1",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Probe Queue Retries; Target Node Filter",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x28",
>>> -        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
>>>          "Counter": "0,1,2,3",
>>> @@ -840,17 +752,6 @@
>>>          "UMask": "0x20",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Ingress Request Queue Rejects",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x32",
>>> -        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
>>>          "Counter": "0,1,2,3",
>>> @@ -891,17 +792,6 @@
>>>          "UMask": "0x2",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x29",
>>> -        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "ISMQ Retries; Any Reject",
>>>          "Counter": "0,1,2,3",
>>> @@ -932,17 +822,6 @@
>>>          "UMask": "0x20",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "ISMQ Retries",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x33",
>>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "ISMQ Retries; No QPI Credits",
>>>          "Counter": "0,1,2,3",
>>> @@ -963,17 +842,6 @@
>>>          "UMask": "0x8",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "ISMQ Retries",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x33",
>>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
>>> -        "UMask": "0x80",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
>>>          "Counter": "0,1,2,3",
>>> @@ -994,17 +862,6 @@
>>>          "UMask": "0x2",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x2A",
>>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "Ingress Occupancy; IPQ",
>>>          "EventCode": "0x11",
>>> @@ -1109,17 +966,6 @@
>>>          "UMask": "0x28",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
>>> -        "UMask": "0x21",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Inserts; Misses to Local Memory",
>>>          "Counter": "0,1,2,3",
>>> @@ -1130,28 +976,6 @@
>>>          "UMask": "0x2A",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
>>> -        "UMask": "0x23",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
>>> -        "UMask": "0x3",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
>>>          "Counter": "0,1,2,3",
>>> @@ -1162,94 +986,6 @@
>>>          "UMask": "0x8A",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
>>> -        "UMask": "0x83",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; NID Matched",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>> -        "UMask": "0x48",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
>>> -        "UMask": "0x44",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
>>> -        "UMask": "0x4A",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
>>> -        "UMask": "0x43",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
>>> -        "UMask": "0x41",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
>>> -        "UMask": "0x50",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; Opcode Match",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
>>> -        "UMask": "0x1",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Inserts; Remote Memory",
>>>          "Counter": "0,1,2,3",
>>> @@ -1260,17 +996,6 @@
>>>          "UMask": "0x88",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x35",
>>> -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
>>> -        "UMask": "0x81",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Inserts; Writebacks",
>>>          "Counter": "0,1,2,3",
>>> @@ -1308,16 +1033,6 @@
>>>          "UMask": "0x28",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
>>> -        "UMask": "0x21",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Occupancy; Miss All",
>>>          "EventCode": "0x36",
>>> @@ -1336,26 +1051,6 @@
>>>          "UMask": "0x2A",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
>>> -        "UMask": "0x23",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
>>> -        "UMask": "0x3",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Occupancy",
>>>          "EventCode": "0x36",
>>> @@ -1365,86 +1060,6 @@
>>>          "UMask": "0x8A",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
>>> -        "UMask": "0x83",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; NID Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>> -        "UMask": "0x48",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
>>> -        "UMask": "0x44",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; NID Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
>>> -        "UMask": "0x4A",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
>>> -        "UMask": "0x43",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
>>> -        "UMask": "0x41",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
>>> -        "Filter": "CBoFilter1[15:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
>>> -        "UMask": "0x50",
>>> -        "Unit": "CBO"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; Opcode Match",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
>>> -        "UMask": "0x1",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Occupancy",
>>>          "EventCode": "0x36",
>>> @@ -1454,16 +1069,6 @@
>>>          "UMask": "0x88",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
>>> -        "EventCode": "0x36",
>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
>>> -        "Filter": "CBoFilter1[28:20]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
>>> -        "UMask": "0x81",
>>> -        "Unit": "CBO"
>>> -    },
>>>      {
>>>          "BriefDescription": "TOR Occupancy; Writebacks",
>>>          "EventCode": "0x36",
>>> @@ -1610,66 +1215,6 @@
>>>          "UMask": "0x8",
>>>          "Unit": "CBO"
>>>      },
>>> -    {
>>> -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x20",
>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>> -        "PerPkg": "1",
>>> -        "UMask": "0x4",
>>> -        "Unit": "HA"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "QPI Address/Opcode Match; Address",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x20",
>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
>>> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
>>> -        "PerPkg": "1",
>>> -        "UMask": "0x1",
>>> -        "Unit": "HA"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x20",
>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>> -        "PerPkg": "1",
>>> -        "UMask": "0x10",
>>> -        "Unit": "HA"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x20",
>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>> -        "PerPkg": "1",
>>> -        "UMask": "0x8",
>>> -        "Unit": "HA"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x20",
>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
>>> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
>>> -        "PerPkg": "1",
>>> -        "UMask": "0x3",
>>> -        "Unit": "HA"
>>> -    },
>>> -    {
>>> -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
>>> -        "Counter": "0,1,2,3",
>>> -        "EventCode": "0x20",
>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>> -        "PerPkg": "1",
>>> -        "UMask": "0x2",
>>> -        "Unit": "HA"
>>> -    },
>>>      {
>>>          "BriefDescription": "BT Cycles Not Empty",
>>>          "Counter": "0,1,2,3",
>>> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
>>> index 71bdf75d8016..24c82ca873bd 100644
>>> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
>>> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
>>> @@ -416,17 +416,6 @@
>>>          "UMask": "0x10",
>>>          "Unit": "IRP"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Inbound Transaction Count; Select Source",
>>> -        "Counter": "0,1",
>>> -        "EventCode": "0x16",
>>> -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
>>> -        "Filter": "IRPFilter[4:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
>>> -        "UMask": "0x40",
>>> -        "Unit": "IRP"
>>> -    },
>>>      {
>>>          "BriefDescription": "Inbound Transaction Count; Other",
>>>          "Counter": "0,1",
>>> @@ -1112,17 +1101,6 @@
>>>          "UMask": "0x2",
>>>          "Unit": "UBOX"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Filter Match",
>>> -        "Counter": "0,1",
>>> -        "EventCode": "0x41",
>>> -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
>>> -        "Filter": "UBoxFilter[3:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
>>> -        "UMask": "0x1",
>>> -        "Unit": "UBOX"
>>> -    },
>>>      {
>>>          "BriefDescription": "Filter Match",
>>>          "Counter": "0,1",
>>> @@ -1133,17 +1111,6 @@
>>>          "UMask": "0x8",
>>>          "Unit": "UBOX"
>>>      },
>>> -    {
>>> -        "BriefDescription": "Filter Match",
>>> -        "Counter": "0,1",
>>> -        "EventCode": "0x41",
>>> -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
>>> -        "Filter": "UBoxFilter[3:0]",
>>> -        "PerPkg": "1",
>>> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
>>> -        "UMask": "0x4",
>>> -        "Unit": "UBOX"
>>> -    },
>>>      {
>>>          "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
>>>          "Counter": "0,1",

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
  2022-08-04 13:05     ` Liang, Kan
@ 2022-08-04 15:00       ` Ian Rogers
  2022-08-04 16:49         ` Liang, Kan
  0 siblings, 1 reply; 10+ messages in thread
From: Ian Rogers @ 2022-08-04 15:00 UTC (permalink / raw)
  To: Liang, Kan
  Cc: Zhengjun Xing, Andi Kleen, perry.taylor, caleb.biggers,
	kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel,
	Stephane Eranian

On Thu, Aug 4, 2022 at 6:05 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>
> On 2022-08-03 1:06 p.m., Ian Rogers wrote:
> > On Wed, Aug 3, 2022 at 6:33 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
> >>
> >>
> >>
> >> On 2022-08-03 2:38 a.m., Ian Rogers wrote:
> >>> The event converter scripts at:
> >>> https://github.com/intel/event-converter-for-linux-perf
> >>> passes Filter values from data on 01.org that is bogus in a perf command
> >>> line and can cause perf to infinitely recurse in parse events. Remove
> >>> such events using the updated patch:
> >>> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
> >>>
> >>> Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
> >>> Signed-off-by: Ian Rogers <irogers@google.com>
> >>> ---
> >>>  .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
> >>>  .../arch/x86/broadwellde/uncore-other.json    |  33 --
> >>>  2 files changed, 488 deletions(-)
> >>>
> >>> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> >>> index caadbca1b15b..75655478952f 100644
> >>> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> >>> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
> >>> @@ -32,72 +32,6 @@
> >>>          "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Cache Lookups; Any Request",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x34",
> >>> -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
> >>> -        "Filter": "CBoFilter0[23:17]",
> >>
> >>
> >> The bogus Filter value is introduced from the previous commit ef908a192512.
> >>
> >> +    {
> >> +        "BriefDescription": "Cache Lookups; Any Request",
> >>          "Counter": "0,1,2,3",
> >>          "EventCode": "0x34",
> >>          "EventName": "UNC_C_LLC_LOOKUP.ANY",
> >> -        "Filter": "filter_state=0x1",
> >> +        "Filter": "CBoFilter0[23:17]",
> >>          "PerPkg": "1",
> >> -        "ScaleUnit": "64Bytes",
> >> +        "PublicDescription": "Counts the number of times the LLC was
> >> accessed - this includes code, data, prefetches and hints coming from
> >> L2.  This has numerous filters available.  Note the non-standard
> >> filtering equation.  This event will count requests that lookup the
> >> cache multiple times with multiple increments.  One must ALWAYS set
> >> umask bit 0 and select a state or states to match.  Otherwise, the event
> >> will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI]
> >> state.; Filters for any transaction originating from the IPQ or IRQ.
> >> This does not include lookups originating from the ISMQ.",
> >>          "UMask": "0x11",
> >>          "Unit": "CBO"
> >>      },
> >>
> >> If I recall correctly, the event list in the 01.org should always have
> >> Filter value CBoFilter0[23:17]. It probably be the converter tool to
> >> change it to "filter_state=0x1". I'm not sure why the converter tool
> >> doesn't do it now.
> >>
> >> If that's the case, I think we should fix the current converter tool,
> >> rather than simply delete the event.
> >>
> >> Also, it seems the bogus Filter value is not captured by the perf test.
> >> I think it's better to improve the perf test to test it.
> >>
> >>
> >> Thanks,
> >> Kan
> >
> > Thanks Kan,
> >
> > There is an existing CHAFilter drop, which skips a bunch of events on
> > more recent architectures than broadwellde/Ivytown/jaketown:
> > https://github.com/intel/event-converter-for-linux-perf/blob/master/uncore_csv_json.py#L243
> >
> > I would like to include these events too, but I don't believe 1 is the
> > correct constant in all cases, there is also the difference between
> > filter_state and filter_opc, etc. I spent some time looking into this
> > but couldn't convince myself anything I'd do would be correct.
> >
>
> For this event, it must be filter_state, since the CBoFilter0 is
> [23:17]. Yes, I agree that 1 seems wrong. 1 should mean the I state. If
> we'd like to collect any lookup, I think we should use 0x1F here.
>
> There are so many events which have the similar CBoFilter0. I don't
> think we can find the correct value for all of them.
>
> Could we modify the converter tool and only drop the "Filter":
> "CBoFilter0[23:17]" for now?
> For the end-users, I think they can still use the below format to access
> the event for any state.
>
> perf stat -e uncore_cbo/UNC_C_LLC_LOOKUP.ANY,filter_state=0x1f/
>
> If they are only interest in the I state,
>
> perf stat -e uncore_cbo/UNC_C_LLC_LOOKUP.ANY,filter_state=0x1/
>
>
> > These changes fix an issue that causes perf to crash at
> > startup/parse-events PMU initialization on these models. I think we
> > should prioritize landing this fix and then follow up with the
> > corrected events. Correcting them can also fix the CHAFilter issue
> > too, which would have a wider impact.
> >
>
> If the "Filter": "CBoFilter0[23:17]" line is removed, I think the crash
> should be gone. We can find a solution to support the CBoFilter0 later.
> For example, we may either change the perf tool to give user a hint, or
> find a correct value for the filter.

Thanks Kan! In:
https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
I extended the dropped events from a filter value of CHAFilter to any of:
                "cbofilter",
                "chafilter",
                "ha_addrmatch",
                "ha_opcodematch",
                "irpfilter",
                "pcufilter",
                "qpimask",
                "uboxfilter"
The filter is also removed if it has a value of "fc, chnl" or starts
with 'chnl'. We can move CBoFilter into the removed not dropped
category, what about the others here?

Thanks,
Ian

> Thanks,
> Kan
>
> > Thanks,
> > Ian
> >
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
> >>> -        "UMask": "0x11",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "Cache Lookups; Data Read Request",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x34",
> >>> -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
> >>> -        "Filter": "CBoFilter0[23:17]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> >>> -        "UMask": "0x3",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x34",
> >>> -        "EventName": "UNC_C_LLC_LOOKUP.NID",
> >>> -        "Filter": "CBoFilter0[23:17]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> >>> -        "UMask": "0x41",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "Cache Lookups; Any Read Request",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x34",
> >>> -        "EventName": "UNC_C_LLC_LOOKUP.READ",
> >>> -        "Filter": "CBoFilter0[22:18]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
> >>> -        "UMask": "0x21",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "Cache Lookups; External Snoop Request",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x34",
> >>> -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
> >>> -        "Filter": "CBoFilter0[23:17]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
> >>> -        "UMask": "0x9",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "Cache Lookups; Write Requests",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x34",
> >>> -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
> >>> -        "Filter": "CBoFilter0[23:17]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
> >>> -        "UMask": "0x5",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Lines Victimized; Lines in E state",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -148,17 +82,6 @@
> >>>          "UMask": "0x1",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x37",
> >>> -        "EventName": "UNC_C_LLC_VICTIMS.NID",
> >>> -        "Filter": "CBoFilter1[17:10]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -789,17 +712,6 @@
> >>>          "UMask": "0x1",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Probe Queue Retries; Target Node Filter",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x28",
> >>> -        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -840,17 +752,6 @@
> >>>          "UMask": "0x20",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Ingress Request Queue Rejects",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x32",
> >>> -        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -891,17 +792,6 @@
> >>>          "UMask": "0x2",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x29",
> >>> -        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "ISMQ Retries; Any Reject",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -932,17 +822,6 @@
> >>>          "UMask": "0x20",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "ISMQ Retries",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x33",
> >>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "ISMQ Retries; No QPI Credits",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -963,17 +842,6 @@
> >>>          "UMask": "0x8",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "ISMQ Retries",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x33",
> >>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
> >>> -        "UMask": "0x80",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -994,17 +862,6 @@
> >>>          "UMask": "0x2",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x2A",
> >>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Ingress Occupancy; IPQ",
> >>>          "EventCode": "0x11",
> >>> @@ -1109,17 +966,6 @@
> >>>          "UMask": "0x28",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
> >>> -        "UMask": "0x21",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Inserts; Misses to Local Memory",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -1130,28 +976,6 @@
> >>>          "UMask": "0x2A",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
> >>> -        "UMask": "0x23",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
> >>> -        "UMask": "0x3",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -1162,94 +986,6 @@
> >>>          "UMask": "0x8A",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> >>> -        "UMask": "0x83",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; NID Matched",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> >>> -        "UMask": "0x48",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
> >>> -        "UMask": "0x44",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
> >>> -        "UMask": "0x4A",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
> >>> -        "UMask": "0x43",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
> >>> -        "UMask": "0x41",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
> >>> -        "UMask": "0x50",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; Opcode Match",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
> >>> -        "UMask": "0x1",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Inserts; Remote Memory",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -1260,17 +996,6 @@
> >>>          "UMask": "0x88",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x35",
> >>> -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
> >>> -        "UMask": "0x81",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Inserts; Writebacks",
> >>>          "Counter": "0,1,2,3",
> >>> @@ -1308,16 +1033,6 @@
> >>>          "UMask": "0x28",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
> >>> -        "UMask": "0x21",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Occupancy; Miss All",
> >>>          "EventCode": "0x36",
> >>> @@ -1336,26 +1051,6 @@
> >>>          "UMask": "0x2A",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
> >>> -        "UMask": "0x23",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
> >>> -        "UMask": "0x3",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Occupancy",
> >>>          "EventCode": "0x36",
> >>> @@ -1365,86 +1060,6 @@
> >>>          "UMask": "0x8A",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
> >>> -        "UMask": "0x83",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; NID Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
> >>> -        "UMask": "0x48",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
> >>> -        "UMask": "0x44",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; NID Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
> >>> -        "UMask": "0x4A",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
> >>> -        "UMask": "0x43",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
> >>> -        "UMask": "0x41",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
> >>> -        "Filter": "CBoFilter1[15:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
> >>> -        "UMask": "0x50",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; Opcode Match",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
> >>> -        "UMask": "0x1",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Occupancy",
> >>>          "EventCode": "0x36",
> >>> @@ -1454,16 +1069,6 @@
> >>>          "UMask": "0x88",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
> >>> -        "EventCode": "0x36",
> >>> -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
> >>> -        "Filter": "CBoFilter1[28:20]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
> >>> -        "UMask": "0x81",
> >>> -        "Unit": "CBO"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "TOR Occupancy; Writebacks",
> >>>          "EventCode": "0x36",
> >>> @@ -1610,66 +1215,6 @@
> >>>          "UMask": "0x8",
> >>>          "Unit": "CBO"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x20",
> >>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
> >>> -        "Filter": "HA_OpcodeMatch[5:0]",
> >>> -        "PerPkg": "1",
> >>> -        "UMask": "0x4",
> >>> -        "Unit": "HA"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "QPI Address/Opcode Match; Address",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x20",
> >>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
> >>> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
> >>> -        "PerPkg": "1",
> >>> -        "UMask": "0x1",
> >>> -        "Unit": "HA"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x20",
> >>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
> >>> -        "Filter": "HA_OpcodeMatch[5:0]",
> >>> -        "PerPkg": "1",
> >>> -        "UMask": "0x10",
> >>> -        "Unit": "HA"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x20",
> >>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
> >>> -        "Filter": "HA_OpcodeMatch[5:0]",
> >>> -        "PerPkg": "1",
> >>> -        "UMask": "0x8",
> >>> -        "Unit": "HA"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x20",
> >>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
> >>> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
> >>> -        "PerPkg": "1",
> >>> -        "UMask": "0x3",
> >>> -        "Unit": "HA"
> >>> -    },
> >>> -    {
> >>> -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
> >>> -        "Counter": "0,1,2,3",
> >>> -        "EventCode": "0x20",
> >>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
> >>> -        "Filter": "HA_OpcodeMatch[5:0]",
> >>> -        "PerPkg": "1",
> >>> -        "UMask": "0x2",
> >>> -        "Unit": "HA"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "BT Cycles Not Empty",
> >>>          "Counter": "0,1,2,3",
> >>> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> >>> index 71bdf75d8016..24c82ca873bd 100644
> >>> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> >>> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
> >>> @@ -416,17 +416,6 @@
> >>>          "UMask": "0x10",
> >>>          "Unit": "IRP"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Inbound Transaction Count; Select Source",
> >>> -        "Counter": "0,1",
> >>> -        "EventCode": "0x16",
> >>> -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
> >>> -        "Filter": "IRPFilter[4:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
> >>> -        "UMask": "0x40",
> >>> -        "Unit": "IRP"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Inbound Transaction Count; Other",
> >>>          "Counter": "0,1",
> >>> @@ -1112,17 +1101,6 @@
> >>>          "UMask": "0x2",
> >>>          "Unit": "UBOX"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Filter Match",
> >>> -        "Counter": "0,1",
> >>> -        "EventCode": "0x41",
> >>> -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
> >>> -        "Filter": "UBoxFilter[3:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> >>> -        "UMask": "0x1",
> >>> -        "Unit": "UBOX"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Filter Match",
> >>>          "Counter": "0,1",
> >>> @@ -1133,17 +1111,6 @@
> >>>          "UMask": "0x8",
> >>>          "Unit": "UBOX"
> >>>      },
> >>> -    {
> >>> -        "BriefDescription": "Filter Match",
> >>> -        "Counter": "0,1",
> >>> -        "EventCode": "0x41",
> >>> -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
> >>> -        "Filter": "UBoxFilter[3:0]",
> >>> -        "PerPkg": "1",
> >>> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
> >>> -        "UMask": "0x4",
> >>> -        "Unit": "UBOX"
> >>> -    },
> >>>      {
> >>>          "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
> >>>          "Counter": "0,1",

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events
  2022-08-04 15:00       ` Ian Rogers
@ 2022-08-04 16:49         ` Liang, Kan
  0 siblings, 0 replies; 10+ messages in thread
From: Liang, Kan @ 2022-08-04 16:49 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Zhengjun Xing, Andi Kleen, perry.taylor, caleb.biggers,
	kshipra.bopardikar, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel,
	Stephane Eranian



On 2022-08-04 11:00 a.m., Ian Rogers wrote:
> On Thu, Aug 4, 2022 at 6:05 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>>
>> On 2022-08-03 1:06 p.m., Ian Rogers wrote:
>>> On Wed, Aug 3, 2022 at 6:33 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>>>>
>>>>
>>>>
>>>> On 2022-08-03 2:38 a.m., Ian Rogers wrote:
>>>>> The event converter scripts at:
>>>>> https://github.com/intel/event-converter-for-linux-perf
>>>>> passes Filter values from data on 01.org that is bogus in a perf command
>>>>> line and can cause perf to infinitely recurse in parse events. Remove
>>>>> such events using the updated patch:
>>>>> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
>>>>>
>>>>> Fixes: ef908a192512 ("perf vendor events: Update Intel broadwellde")
>>>>> Signed-off-by: Ian Rogers <irogers@google.com>
>>>>> ---
>>>>>  .../arch/x86/broadwellde/uncore-cache.json    | 455 ------------------
>>>>>  .../arch/x86/broadwellde/uncore-other.json    |  33 --
>>>>>  2 files changed, 488 deletions(-)
>>>>>
>>>>> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
>>>>> index caadbca1b15b..75655478952f 100644
>>>>> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
>>>>> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-cache.json
>>>>> @@ -32,72 +32,6 @@
>>>>>          "PublicDescription": "Counts the number of cycles either the local distress or incoming distress signals are asserted.  Incoming distress includes both up and dn.",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Cache Lookups; Any Request",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x34",
>>>>> -        "EventName": "UNC_C_LLC_LOOKUP.ANY",
>>>>> -        "Filter": "CBoFilter0[23:17]",
>>>>
>>>>
>>>> The bogus Filter value is introduced from the previous commit ef908a192512.
>>>>
>>>> +    {
>>>> +        "BriefDescription": "Cache Lookups; Any Request",
>>>>          "Counter": "0,1,2,3",
>>>>          "EventCode": "0x34",
>>>>          "EventName": "UNC_C_LLC_LOOKUP.ANY",
>>>> -        "Filter": "filter_state=0x1",
>>>> +        "Filter": "CBoFilter0[23:17]",
>>>>          "PerPkg": "1",
>>>> -        "ScaleUnit": "64Bytes",
>>>> +        "PublicDescription": "Counts the number of times the LLC was
>>>> accessed - this includes code, data, prefetches and hints coming from
>>>> L2.  This has numerous filters available.  Note the non-standard
>>>> filtering equation.  This event will count requests that lookup the
>>>> cache multiple times with multiple increments.  One must ALWAYS set
>>>> umask bit 0 and select a state or states to match.  Otherwise, the event
>>>> will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI]
>>>> state.; Filters for any transaction originating from the IPQ or IRQ.
>>>> This does not include lookups originating from the ISMQ.",
>>>>          "UMask": "0x11",
>>>>          "Unit": "CBO"
>>>>      },
>>>>
>>>> If I recall correctly, the event list in the 01.org should always have
>>>> Filter value CBoFilter0[23:17]. It probably be the converter tool to
>>>> change it to "filter_state=0x1". I'm not sure why the converter tool
>>>> doesn't do it now.
>>>>
>>>> If that's the case, I think we should fix the current converter tool,
>>>> rather than simply delete the event.
>>>>
>>>> Also, it seems the bogus Filter value is not captured by the perf test.
>>>> I think it's better to improve the perf test to test it.
>>>>
>>>>
>>>> Thanks,
>>>> Kan
>>>
>>> Thanks Kan,
>>>
>>> There is an existing CHAFilter drop, which skips a bunch of events on
>>> more recent architectures than broadwellde/Ivytown/jaketown:
>>> https://github.com/intel/event-converter-for-linux-perf/blob/master/uncore_csv_json.py#L243
>>>
>>> I would like to include these events too, but I don't believe 1 is the
>>> correct constant in all cases, there is also the difference between
>>> filter_state and filter_opc, etc. I spent some time looking into this
>>> but couldn't convince myself anything I'd do would be correct.
>>>
>>
>> For this event, it must be filter_state, since the CBoFilter0 is
>> [23:17]. Yes, I agree that 1 seems wrong. 1 should mean the I state. If
>> we'd like to collect any lookup, I think we should use 0x1F here.
>>
>> There are so many events which have the similar CBoFilter0. I don't
>> think we can find the correct value for all of them.
>>
>> Could we modify the converter tool and only drop the "Filter":
>> "CBoFilter0[23:17]" for now?
>> For the end-users, I think they can still use the below format to access
>> the event for any state.
>>
>> perf stat -e uncore_cbo/UNC_C_LLC_LOOKUP.ANY,filter_state=0x1f/
>>
>> If they are only interest in the I state,
>>
>> perf stat -e uncore_cbo/UNC_C_LLC_LOOKUP.ANY,filter_state=0x1/
>>
>>
>>> These changes fix an issue that causes perf to crash at
>>> startup/parse-events PMU initialization on these models. I think we
>>> should prioritize landing this fix and then follow up with the
>>> corrected events. Correcting them can also fix the CHAFilter issue
>>> too, which would have a wider impact.
>>>
>>
>> If the "Filter": "CBoFilter0[23:17]" line is removed, I think the crash
>> should be gone. We can find a solution to support the CBoFilter0 later.
>> For example, we may either change the perf tool to give user a hint, or
>> find a correct value for the filter.
> 
> Thanks Kan! In:
> https://github.com/intel/event-converter-for-linux-perf/pull/15/commits/485e42418d4f520a641994a1b041c149bb34f4a6
> I extended the dropped events from a filter value of CHAFilter to any of:
>                 "cbofilter",
>                 "chafilter",

The above two should move to the "remove Filter field but not drop the
event category".

>                 "ha_addrmatch",
>                 "ha_opcodematch">                 "irpfilter",

I checked the BDX uncore codes. It looks like the uncore driver doesn't
support the above three filters. I think it should be OK to remove the
events completely for now.

>                 "pcufilter",>                 "qpimask",
>                 "uboxfilter"

The above three should move to the "remove Filter field but not drop the
event category" as well. The uncore driver has the filter support.

Thanks,
Kan

> The filter is also removed if it has a value of "fc, chnl" or starts
> with 'chnl'. We can move CBoFilter into the removed not dropped
> category, what about the others here?
> 
> Thanks,
> Ian
> 
>> Thanks,
>> Kan
>>
>>> Thanks,
>>> Ian
>>>
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for any transaction originating from the IPQ or IRQ.  This does not include lookups originating from the ISMQ.",
>>>>> -        "UMask": "0x11",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "Cache Lookups; Data Read Request",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x34",
>>>>> -        "EventName": "UNC_C_LLC_LOOKUP.DATA_READ",
>>>>> -        "Filter": "CBoFilter0[23:17]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
>>>>> -        "UMask": "0x3",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "Cache Lookups; Lookups that Match NID",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x34",
>>>>> -        "EventName": "UNC_C_LLC_LOOKUP.NID",
>>>>> -        "Filter": "CBoFilter0[23:17]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>>>> -        "UMask": "0x41",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "Cache Lookups; Any Read Request",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x34",
>>>>> -        "EventName": "UNC_C_LLC_LOOKUP.READ",
>>>>> -        "Filter": "CBoFilter0[22:18]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Read transactions",
>>>>> -        "UMask": "0x21",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "Cache Lookups; External Snoop Request",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x34",
>>>>> -        "EventName": "UNC_C_LLC_LOOKUP.REMOTE_SNOOP",
>>>>> -        "Filter": "CBoFilter0[23:17]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Filters for only snoop requests coming from the remote socket(s) through the IPQ.",
>>>>> -        "UMask": "0x9",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "Cache Lookups; Write Requests",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x34",
>>>>> -        "EventName": "UNC_C_LLC_LOOKUP.WRITE",
>>>>> -        "Filter": "CBoFilter0[23:17]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times the LLC was accessed - this includes code, data, prefetches and hints coming from L2.  This has numerous filters available.  Note the non-standard filtering equation.  This event will count requests that lookup the cache multiple times with multiple increments.  One must ALWAYS set umask bit 0 and select a state or states to match.  Otherwise, the event will count nothing.   CBoGlCtrl[22:18] bits correspond to [FMESI] state.; Writeback transactions from L2 to the LLC  This includes all write transactions -- both Cachable and UC.",
>>>>> -        "UMask": "0x5",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Lines Victimized; Lines in E state",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -148,17 +82,6 @@
>>>>>          "UMask": "0x1",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Lines Victimized; Victimized Lines that Match NID",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x37",
>>>>> -        "EventName": "UNC_C_LLC_VICTIMS.NID",
>>>>> -        "Filter": "CBoFilter1[17:10]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of lines that were victimized on a fill.  This can be filtered by the state that the line was in.; Qualify one of the other subevents by the Target NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.   In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Cbo Misc; DRd hitting non-M with raw CV=0",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -789,17 +712,6 @@
>>>>>          "UMask": "0x1",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Probe Queue Retries; Target Node Filter",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x28",
>>>>> -        "EventName": "UNC_C_RxR_IPQ_RETRY2.TARGET",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Number of times a snoop (probe) request had to retry.  Filters exist to cover some of the common cases retries.; Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Ingress Request Queue Rejects; Address Conflict",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -840,17 +752,6 @@
>>>>>          "UMask": "0x20",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Ingress Request Queue Rejects",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x32",
>>>>> -        "EventName": "UNC_C_RxR_IRQ_RETRY.NID",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Ingress Request Queue Rejects; No QPI Credits",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -891,17 +792,6 @@
>>>>>          "UMask": "0x2",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Ingress Request Queue Rejects; Target Node Filter",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x29",
>>>>> -        "EventName": "UNC_C_RxR_IRQ_RETRY2.TARGET",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times that a request from the IPQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "ISMQ Retries; Any Reject",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -932,17 +822,6 @@
>>>>>          "UMask": "0x20",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "ISMQ Retries",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x33",
>>>>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.NID",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "ISMQ Retries; No QPI Credits",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -963,17 +842,6 @@
>>>>>          "UMask": "0x8",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "ISMQ Retries",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x33",
>>>>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY.WB_CREDITS",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Number of times a transaction flowing through the ISMQ had to retry.  Transaction pass through the ISMQ as responses for requests that already exist in the Cbo.  Some examples include: when data is returned or when snoop responses come back from the cores.; Qualify one of the other subevents by a given RTID destination NID.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER1.nid.",
>>>>> -        "UMask": "0x80",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "ISMQ Request Queue Rejects; No AD Sbo Credits",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -994,17 +862,6 @@
>>>>>          "UMask": "0x2",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "ISMQ Request Queue Rejects; Target Node Filter",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x2A",
>>>>> -        "EventName": "UNC_C_RxR_ISMQ_RETRY2.TARGET",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of times that a request from the ISMQ was retried filtered by the Target NodeID as specified in the Cbox's Filter register.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Ingress Occupancy; IPQ",
>>>>>          "EventCode": "0x11",
>>>>> @@ -1109,17 +966,6 @@
>>>>>          "UMask": "0x28",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; Local Memory - Opcode Matched",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.LOCAL_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by locally HOMed memory.",
>>>>> -        "UMask": "0x21",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Inserts; Misses to Local Memory",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -1130,28 +976,6 @@
>>>>>          "UMask": "0x2A",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; Misses to Local Memory - Opcode Matched",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_LOCAL_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode, inserted into the TOR that are satisifed by locally HOMed memory.",
>>>>> -        "UMask": "0x23",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; Miss Opcode Match",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match an opcode.",
>>>>> -        "UMask": "0x3",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Inserts; Misses to Remote Memory",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -1162,94 +986,6 @@
>>>>>          "UMask": "0x8A",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; Misses to Remote Memory - Opcode Matched",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.MISS_REMOTE_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
>>>>> -        "UMask": "0x83",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; NID Matched",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_ALL",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched (matches an RTID destination) transactions inserted into the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.  In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>>>> -        "UMask": "0x48",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; NID Matched Evictions",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_EVICTION",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched eviction transactions inserted into the TOR.",
>>>>> -        "UMask": "0x44",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; NID Matched Miss All",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_ALL",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All NID matched miss requests that were inserted into the TOR.",
>>>>> -        "UMask": "0x4A",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched Miss",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_MISS_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Miss transactions inserted into the TOR that match a NID and an opcode.",
>>>>> -        "UMask": "0x43",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; NID and Opcode Matched",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match a NID and an opcode.",
>>>>> -        "UMask": "0x41",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; NID Matched Writebacks",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.NID_WB",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; NID matched write transactions inserted into the TOR.",
>>>>> -        "UMask": "0x50",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; Opcode Match",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; Transactions inserted into the TOR that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc)",
>>>>> -        "UMask": "0x1",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Inserts; Remote Memory",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -1260,17 +996,6 @@
>>>>>          "UMask": "0x88",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Inserts; Remote Memory - Opcode Matched",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x35",
>>>>> -        "EventName": "UNC_C_TOR_INSERTS.REMOTE_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of entries successfuly inserted into the TOR that match  qualifications specified by the subevent.  There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc  to DRD (0x182).; All transactions, satisifed by an opcode,  inserted into the TOR that are satisifed by remote caches or remote memory.",
>>>>> -        "UMask": "0x81",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Inserts; Writebacks",
>>>>>          "Counter": "0,1,2,3",
>>>>> @@ -1308,16 +1033,6 @@
>>>>>          "UMask": "0x28",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; Local Memory - Opcode Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.LOCAL_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by locally HOMed memory.",
>>>>> -        "UMask": "0x21",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Occupancy; Miss All",
>>>>>          "EventCode": "0x36",
>>>>> @@ -1336,26 +1051,6 @@
>>>>>          "UMask": "0x2A",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; Misses to Local Memory - Opcode Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_LOCAL_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by locally HOMed memory.",
>>>>> -        "UMask": "0x23",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; Miss Opcode Match",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries for miss transactions that match an opcode. This generally means that the request was sent to memory or MMIO.",
>>>>> -        "UMask": "0x3",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Occupancy",
>>>>>          "EventCode": "0x36",
>>>>> @@ -1365,86 +1060,6 @@
>>>>>          "UMask": "0x8A",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; Misses to Remote Memory - Opcode Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.MISS_REMOTE_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss transactions, satisifed by an opcode, in the TOR that are satisifed by remote caches or remote memory.",
>>>>> -        "UMask": "0x83",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; NID Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_ALL",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of NID matched outstanding requests in the TOR.  The NID is programmed in Cn_MSR_PMON_BOX_FILTER.nid.In conjunction with STATE = I, it is possible to monitor misses to specific NIDs in the system.",
>>>>> -        "UMask": "0x48",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; NID Matched Evictions",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_EVICTION",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding NID matched eviction transactions in the TOR .",
>>>>> -        "UMask": "0x44",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; NID Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_ALL",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID.",
>>>>> -        "UMask": "0x4A",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched Miss",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_MISS_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding Miss requests in the TOR that match a NID and an opcode.",
>>>>> -        "UMask": "0x43",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; NID and Opcode Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20], CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match a NID and an opcode.",
>>>>> -        "UMask": "0x41",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; NID Matched Writebacks",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.NID_WB",
>>>>> -        "Filter": "CBoFilter1[15:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); NID matched write transactions int the TOR.",
>>>>> -        "UMask": "0x50",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; Opcode Match",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); TOR entries that match an opcode (matched by Cn_MSR_PMON_BOX_FILTER.opc).",
>>>>> -        "UMask": "0x1",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Occupancy",
>>>>>          "EventCode": "0x36",
>>>>> @@ -1454,16 +1069,6 @@
>>>>>          "UMask": "0x88",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "TOR Occupancy; Remote Memory - Opcode Matched",
>>>>> -        "EventCode": "0x36",
>>>>> -        "EventName": "UNC_C_TOR_OCCUPANCY.REMOTE_OPCODE",
>>>>> -        "Filter": "CBoFilter1[28:20]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.   There are a number of subevent 'filters' but only a subset of the subevent combinations are valid.  Subevents that require an opcode or NID match require the Cn_MSR_PMON_BOX_FILTER.{opc, nid} field to be set.  If, for example, one wanted to count DRD Local Misses, one should select MISS_OPC_MATCH and set Cn_MSR_PMON_BOX_FILTER.opc to DRD (0x182); Number of outstanding  transactions, satisifed by an opcode,  in the TOR that are satisifed by remote caches or remote memory.",
>>>>> -        "UMask": "0x81",
>>>>> -        "Unit": "CBO"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "TOR Occupancy; Writebacks",
>>>>>          "EventCode": "0x36",
>>>>> @@ -1610,66 +1215,6 @@
>>>>>          "UMask": "0x8",
>>>>>          "Unit": "CBO"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "QPI Address/Opcode Match; AD Opcodes",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x20",
>>>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AD",
>>>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "UMask": "0x4",
>>>>> -        "Unit": "HA"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "QPI Address/Opcode Match; Address",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x20",
>>>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.ADDR",
>>>>> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "UMask": "0x1",
>>>>> -        "Unit": "HA"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "QPI Address/Opcode Match; AK Opcodes",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x20",
>>>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.AK",
>>>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "UMask": "0x10",
>>>>> -        "Unit": "HA"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "QPI Address/Opcode Match; BL Opcodes",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x20",
>>>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.BL",
>>>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "UMask": "0x8",
>>>>> -        "Unit": "HA"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "QPI Address/Opcode Match; Address & Opcode Match",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x20",
>>>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.FILT",
>>>>> -        "Filter": "HA_AddrMatch0[31:6], HA_AddrMatch1[13:0], HA_OpcodeMatch[5:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "UMask": "0x3",
>>>>> -        "Unit": "HA"
>>>>> -    },
>>>>> -    {
>>>>> -        "BriefDescription": "QPI Address/Opcode Match; Opcode",
>>>>> -        "Counter": "0,1,2,3",
>>>>> -        "EventCode": "0x20",
>>>>> -        "EventName": "UNC_H_ADDR_OPC_MATCH.OPC",
>>>>> -        "Filter": "HA_OpcodeMatch[5:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "UMask": "0x2",
>>>>> -        "Unit": "HA"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "BT Cycles Not Empty",
>>>>>          "Counter": "0,1,2,3",
>>>>> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
>>>>> index 71bdf75d8016..24c82ca873bd 100644
>>>>> --- a/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
>>>>> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
>>>>> @@ -416,17 +416,6 @@
>>>>>          "UMask": "0x10",
>>>>>          "Unit": "IRP"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Inbound Transaction Count; Select Source",
>>>>> -        "Counter": "0,1",
>>>>> -        "EventCode": "0x16",
>>>>> -        "EventName": "UNC_I_TRANSACTIONS.ORDERINGQ",
>>>>> -        "Filter": "IRPFilter[4:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Counts the number of Inbound transactions from the IRP to the Uncore.  This can be filtered based on request type in addition to the source queue.  Note the special filtering equation.  We do OR-reduction on the request type.  If the SOURCE bit is set, then we also do AND qualification based on the source portID.; Tracks only those requests that come from the port specified in the IRP_PmonFilter.OrderingQ register.  This register allows one to select one specific queue.  It is not possible to monitor multiple queues at a time.  If this bit is not set, then requests from all sources will be counted.",
>>>>> -        "UMask": "0x40",
>>>>> -        "Unit": "IRP"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Inbound Transaction Count; Other",
>>>>>          "Counter": "0,1",
>>>>> @@ -1112,17 +1101,6 @@
>>>>>          "UMask": "0x2",
>>>>>          "Unit": "UBOX"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Filter Match",
>>>>> -        "Counter": "0,1",
>>>>> -        "EventCode": "0x41",
>>>>> -        "EventName": "UNC_U_FILTER_MATCH.ENABLE",
>>>>> -        "Filter": "UBoxFilter[3:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
>>>>> -        "UMask": "0x1",
>>>>> -        "Unit": "UBOX"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Filter Match",
>>>>>          "Counter": "0,1",
>>>>> @@ -1133,17 +1111,6 @@
>>>>>          "UMask": "0x8",
>>>>>          "Unit": "UBOX"
>>>>>      },
>>>>> -    {
>>>>> -        "BriefDescription": "Filter Match",
>>>>> -        "Counter": "0,1",
>>>>> -        "EventCode": "0x41",
>>>>> -        "EventName": "UNC_U_FILTER_MATCH.U2C_ENABLE",
>>>>> -        "Filter": "UBoxFilter[3:0]",
>>>>> -        "PerPkg": "1",
>>>>> -        "PublicDescription": "Filter match per thread (w/ or w/o Filter Enable).  Specify the thread to filter on using NCUPMONCTRLGLCTR.ThreadID.",
>>>>> -        "UMask": "0x4",
>>>>> -        "Unit": "UBOX"
>>>>> -    },
>>>>>      {
>>>>>          "BriefDescription": "Cycles PHOLD Assert to Ack; Assert to ACK",
>>>>>          "Counter": "0,1",

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-08-04 16:49 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-03  6:38 [PATCH v1 1/3] perf vendor events: Remove bad broadwellde uncore events Ian Rogers
2022-08-03  6:38 ` [PATCH v1 2/3] perf vendor events: Remove bad ivytown " Ian Rogers
2022-08-04  0:18   ` Ian Rogers
2022-08-03  6:38 ` [PATCH v1 3/3] perf vendor events: Remove bad jaketown " Ian Rogers
2022-08-03  6:56 ` [PATCH v1 1/3] perf vendor events: Remove bad broadwellde " Ian Rogers
2022-08-03 13:33 ` Liang, Kan
2022-08-03 17:06   ` Ian Rogers
2022-08-04 13:05     ` Liang, Kan
2022-08-04 15:00       ` Ian Rogers
2022-08-04 16:49         ` Liang, Kan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).