Em Thu, Aug 15, 2019 at 10:42:44AM -0400, Liang, Kan escreveu:
> 
> 
> On 8/14/2019 11:59 PM, Haiyan Song wrote:
> > Add a Intel event file for perf.
> > 
> > Signed-off-by: Haiyan Song <haiyanx.s...@intel.com>
> 
> Reviewed-by: Kan Liang <kan.li...@linux.intel.com>

Thanks, applied.

- Arnaldo
 
> Thanks,
> Kan
> 
> > ---
> >   tools/perf/pmu-events/arch/x86/mapfile.csv         |   1 +
> >   tools/perf/pmu-events/arch/x86/tremontx/cache.json | 111 ++++++
> >   .../pmu-events/arch/x86/tremontx/frontend.json     |  26 ++
> >   .../perf/pmu-events/arch/x86/tremontx/memory.json  |  26 ++
> >   tools/perf/pmu-events/arch/x86/tremontx/other.json |  26 ++
> >   .../pmu-events/arch/x86/tremontx/pipeline.json     | 111 ++++++
> >   .../arch/x86/tremontx/uncore-memory.json           |  73 ++++
> >   .../pmu-events/arch/x86/tremontx/uncore-other.json | 431 
> > +++++++++++++++++++++
> >   .../pmu-events/arch/x86/tremontx/uncore-power.json |  11 +
> >   .../arch/x86/tremontx/virtual-memory.json          |  86 ++++
> >   10 files changed, 902 insertions(+)
> >   create mode 100644 tools/perf/pmu-events/arch/x86/tremontx/cache.json
> >   create mode 100644 tools/perf/pmu-events/arch/x86/tremontx/frontend.json
> >   create mode 100644 tools/perf/pmu-events/arch/x86/tremontx/memory.json
> >   create mode 100644 tools/perf/pmu-events/arch/x86/tremontx/other.json
> >   create mode 100644 tools/perf/pmu-events/arch/x86/tremontx/pipeline.json
> >   create mode 100644 
> > tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json
> >   create mode 100644 
> > tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json
> >   create mode 100644 
> > tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json
> >   create mode 100644 
> > tools/perf/pmu-events/arch/x86/tremontx/virtual-memory.json
> > 
> > diff --git a/tools/perf/pmu-events/arch/x86/mapfile.csv 
> > b/tools/perf/pmu-events/arch/x86/mapfile.csv
> > index b90e5fec2f32..745ced083844 100644
> > --- a/tools/perf/pmu-events/arch/x86/mapfile.csv
> > +++ b/tools/perf/pmu-events/arch/x86/mapfile.csv
> > @@ -35,4 +35,5 @@ GenuineIntel-6-55-[01234],v1,skylakex,core
> >   GenuineIntel-6-55-[56789ABCDEF],v1,cascadelakex,core
> >   GenuineIntel-6-7D,v1,icelake,core
> >   GenuineIntel-6-7E,v1,icelake,core
> > +GenuineIntel-6-86,v1,tremontx,core
> >   AuthenticAMD-23-[[:xdigit:]]+,v1,amdfam17h,core
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/cache.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/cache.json
> > new file mode 100644
> > index 000000000000..f88040171b4d
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/cache.json
> > @@ -0,0 +1,111 @@
> > +[
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts cacheable memory requests that miss 
> > in the the Last Level Cache.  Requests include Demand Loads, Reads for 
> > Ownership(RFO), Instruction fetches and L1 HW prefetches. If the platform 
> > has an L3 cache, last level cache is the L3, otherwise it is the L2.",
> > +        "EventCode": "0x2e",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x41",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "LONGEST_LAT_CACHE.MISS",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts memory requests originating from the 
> > core that miss in the last level cache. If the platform has an L3 cache, 
> > last level cache is the L3, otherwise it is the L2."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts cacheable memory requests that access 
> > the Last Level Cache.  Requests include Demand Loads, Reads for 
> > Ownership(RFO), Instruction fetches and L1 HW prefetches. If the platform 
> > has an L3 cache, last level cache is the L3, otherwise it is the L2.",
> > +        "EventCode": "0x2e",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x4f",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "LONGEST_LAT_CACHE.REFERENCE",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts memory requests originating from the 
> > core that reference a cache line in the last level cache. If the platform 
> > has an L3 cache, last level cache is the L3, otherwise it is the L2."
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of load uops retired. This 
> > event is Precise Event capable",
> > +        "EventCode": "0xd0",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x81",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_UOPS_RETIRED.ALL_LOADS",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of load uops retired.",
> > +        "Data_LA": "1"
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of store uops retired. 
> > This event is Precise Event capable",
> > +        "EventCode": "0xd0",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x82",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_UOPS_RETIRED.ALL_STORES",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of store uops retired.",
> > +        "Data_LA": "1"
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xd1",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x1",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_LOAD_UOPS_RETIRED.L1_HIT",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of load uops retired that 
> > hit the level 1 data cache",
> > +        "Data_LA": "1"
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xd1",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x2",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_LOAD_UOPS_RETIRED.L2_HIT",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of load uops retired that 
> > hit in the level 2 cache",
> > +        "Data_LA": "1"
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xd1",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x4",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_LOAD_UOPS_RETIRED.L3_HIT",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of load uops retired that 
> > miss in the level 3 cache"
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xd1",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x8",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_LOAD_UOPS_RETIRED.L1_MISS",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of load uops retired that 
> > miss in the level 1 data cache",
> > +        "Data_LA": "1"
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xd1",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x10",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MEM_LOAD_UOPS_RETIRED.L2_MISS",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of load uops retired that 
> > miss in the level 2 cache",
> > +        "Data_LA": "1"
> > +    }
> > +]
> > \ No newline at end of file
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/frontend.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/frontend.json
> > new file mode 100644
> > index 000000000000..73b0a1ed5756
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/frontend.json
> > @@ -0,0 +1,26 @@
> > +[
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts requests to the Instruction Cache 
> > (ICache)  for one or more bytes in an ICache Line and that cache line is 
> > not in the ICache (miss).  The event strives to count on a cache line 
> > basis, so that multiple accesses which miss in a single cache line count as 
> > one ICACHE.MISS.  Specifically, the event counts when straight line code 
> > crosses the cache line boundary, or when a branch target is to a new line, 
> > and that cache line is not in the ICache.",
> > +        "EventCode": "0x80",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x2",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "ICACHE.MISSES",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts requests to the Instruction Cache 
> > (ICache) for one or more bytes in a cache line and they do not hit in the 
> > ICache (miss)."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts requests to the Instruction Cache 
> > (ICache) for one or more bytes in an ICache Line.  The event strives to 
> > count on a cache line basis, so that multiple fetches to a single cache 
> > line count as one ICACHE.ACCESS.  Specifically, the event counts when 
> > accesses from straight line code crosses the cache line boundary, or when a 
> > branch target is to a new line.",
> > +        "EventCode": "0x80",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "ICACHE.ACCESSES",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts requests to the Instruction Cache 
> > (ICache) for one or more bytes cache Line."
> > +    }
> > +]
> > \ No newline at end of file
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/memory.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/memory.json
> > new file mode 100644
> > index 000000000000..65469e84f35b
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/memory.json
> > @@ -0,0 +1,26 @@
> > +[
> > +    {
> > +        "PublicDescription": "Offcore response can be programmed only with 
> > a specific pair of event select and counter MSR, and with specific event 
> > codes and predefine mask bit value in a dedicated MSR to specify attributes 
> > of the offcore transaction.",
> > +        "EventCode": "0XB7",
> > +        "MSRValue": "0x000000003F04000001",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x1",
> > +        "EventName": "OCR.DEMAND_DATA_RD.L3_MISS",
> > +        "MSRIndex": "0x1a6,0x1a7",
> > +        "SampleAfterValue": "100003",
> > +        "BriefDescription": "Counts demand data reads that was not 
> > supplied by the L3 cache.",
> > +        "Offcore": "1"
> > +    },
> > +    {
> > +        "PublicDescription": "Offcore response can be programmed only with 
> > a specific pair of event select and counter MSR, and with specific event 
> > codes and predefine mask bit value in a dedicated MSR to specify attributes 
> > of the offcore transaction.",
> > +        "EventCode": "0XB7",
> > +        "MSRValue": "0x000000003F04000002",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x1",
> > +        "EventName": "OCR.DEMAND_RFO.L3_MISS",
> > +        "MSRIndex": "0x1a6,0x1a7",
> > +        "SampleAfterValue": "100003",
> > +        "BriefDescription": "Counts all demand reads for ownership (RFO) 
> > requests and software based prefetches for exclusive ownership (PREFETCHW) 
> > that was not supplied by the L3 cache.",
> > +        "Offcore": "1"
> > +    }
> > +]
> > \ No newline at end of file
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/other.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/other.json
> > new file mode 100644
> > index 000000000000..85bf3c8f3914
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/other.json
> > @@ -0,0 +1,26 @@
> > +[
> > +    {
> > +        "PublicDescription": "Offcore response can be programmed only with 
> > a specific pair of event select and counter MSR, and with specific event 
> > codes and predefine mask bit value in a dedicated MSR to specify attributes 
> > of the offcore transaction.",
> > +        "EventCode": "0XB7",
> > +        "MSRValue": "0x000000000000010001",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x1",
> > +        "EventName": "OCR.DEMAND_DATA_RD.ANY_RESPONSE",
> > +        "MSRIndex": "0x1a6,0x1a7",
> > +        "SampleAfterValue": "100003",
> > +        "BriefDescription": "Counts demand data reads that have any 
> > response type.",
> > +        "Offcore": "1"
> > +    },
> > +    {
> > +        "PublicDescription": "Offcore response can be programmed only with 
> > a specific pair of event select and counter MSR, and with specific event 
> > codes and predefine mask bit value in a dedicated MSR to specify attributes 
> > of the offcore transaction.",
> > +        "EventCode": "0XB7",
> > +        "MSRValue": "0x000000000000010002",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x1",
> > +        "EventName": "OCR.DEMAND_RFO.ANY_RESPONSE",
> > +        "MSRIndex": "0x1a6,0x1a7",
> > +        "SampleAfterValue": "100003",
> > +        "BriefDescription": "Counts all demand reads for ownership (RFO) 
> > requests and software based prefetches for exclusive ownership (PREFETCHW) 
> > that have any response type.",
> > +        "Offcore": "1"
> > +    }
> > +]
> > \ No newline at end of file
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/pipeline.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/pipeline.json
> > new file mode 100644
> > index 000000000000..05a8f6a7d9c0
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/pipeline.json
> > @@ -0,0 +1,111 @@
> > +[
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of instructions that 
> > retire. For instructions that consist of multiple uops, this event counts 
> > the retirement of the last uop of the instruction. The counter continues 
> > counting during hardware interrupts, traps, and inside interrupt handlers.  
> > This event uses fixed counter 0.",
> > +        "Counter": "32",
> > +        "UMask": "0x1",
> > +        "PEBScounters": "32",
> > +        "EventName": "INST_RETIRED.ANY",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts the number of instructions retired. 
> > (Fixed event)"
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of core cycles while the 
> > core is not in a halt state.  The core enters the halt state when it is 
> > running the HLT instruction. The core frequency may change from time to 
> > time. For this reason this event may have a changing ratio with regards to 
> > time.  This event uses fixed counter 1.",
> > +        "Counter": "33",
> > +        "UMask": "0x2",
> > +        "PEBScounters": "33",
> > +        "EventName": "CPU_CLK_UNHALTED.CORE",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts the number of unhalted core clock 
> > cycles. (Fixed event)"
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of reference cycles that 
> > the core is not in a halt state. The core enters the halt state when it is 
> > running the HLT instruction.  The core frequency may change from time.  
> > This event is not affected by core frequency changes and at a fixed 
> > frequency.  This event uses fixed counter 2.",
> > +        "Counter": "34",
> > +        "UMask": "0x3",
> > +        "PEBScounters": "34",
> > +        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts the number of unhalted reference clock 
> > cycles at TSC frequency. (Fixed event)"
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of core cycles while the 
> > core is not in a halt state.  The core enters the halt state when it is 
> > running the HLT instruction. The core frequency may change from time to 
> > time. For this reason this event may have a changing ratio with regards to 
> > time.  This event uses a programmable general purpose performance counter.",
> > +        "EventCode": "0x3c",
> > +        "Counter": "0,1,2,3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "CPU_CLK_UNHALTED.CORE_P",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts the number of unhalted core clock 
> > cycles."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts reference cycles (at TSC frequency) 
> > when core is not halted.  This event uses a programmable general purpose 
> > perfmon counter.",
> > +        "EventCode": "0x3c",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x1",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "CPU_CLK_UNHALTED.REF",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts the number of unhalted reference clock 
> > cycles at TSC frequency."
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of instructions that 
> > retire execution. For instructions that consist of multiple uops, this 
> > event counts the retirement of the last uop of the instruction. The event 
> > continues counting during hardware interrupts, traps, and inside interrupt 
> > handlers.  This is an architectural performance event.  This event uses a 
> > Programmable general purpose perfmon counter. *This event is Precise Event 
> > capable:  The EventingRIP field in the PEBS record is precise to the 
> > address of the instruction which caused the event.",
> > +        "EventCode": "0xc0",
> > +        "Counter": "0,1,2,3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "INST_RETIRED.ANY_P",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts the number of instructions retired."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xc3",
> > +        "Counter": "0,1,2,3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "MACHINE_CLEARS.ANY",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "20003",
> > +        "BriefDescription": "Counts all machine clears due to, but not 
> > limited to memory ordering, memory disambiguation, SMC, page faults and FP 
> > assist."
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts branch instructions retired for all 
> > branch types. This event is Precise Event capable. This is an architectural 
> > event.",
> > +        "EventCode": "0xc4",
> > +        "Counter": "0,1,2,3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of branch instructions 
> > retired for all branch types."
> > +    },
> > +    {
> > +        "PEBS": "1",
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts mispredicted branch instructions 
> > retired for all branch types. This event is Precise Event capable. This is 
> > an architectural event.",
> > +        "EventCode": "0xc5",
> > +        "Counter": "0,1,2,3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of mispredicted branch 
> > instructions retired."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "EventCode": "0xcd",
> > +        "Counter": "0,1,2,3",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "CYCLES_DIV_BUSY.ANY",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Counts cycles the floating point divider or 
> > integer divider or both are busy.  Does not imply a stall waiting for 
> > either divider."
> > +    }
> > +]
> > \ No newline at end of file
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json
> > new file mode 100644
> > index 000000000000..15376f2cf052
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json
> > @@ -0,0 +1,73 @@
> > +[
> > +    {
> > +        "BriefDescription": "read requests to memory controller. Derived 
> > from unc_m_cas_count.rd",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x04",
> > +        "EventName": "LLC_MISSES.MEM_READ",
> > +        "PerPkg": "1",
> > +        "ScaleUnit": "64Bytes",
> > +        "UMask": "0x0f",
> > +        "Unit": "iMC"
> > +    },
> > +    {
> > +        "BriefDescription": "write requests to memory controller. Derived 
> > from unc_m_cas_count.wr",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x04",
> > +        "EventName": "LLC_MISSES.MEM_WRITE",
> > +        "PerPkg": "1",
> > +        "ScaleUnit": "64Bytes",
> > +        "UMask": "0x30",
> > +        "Unit": "iMC"
> > +    },
> > +    {
> > +        "BriefDescription": "Memory controller clock ticks",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventName": "UNC_M_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "Unit": "iMC"
> > +    },
> > +    {
> > +        "BriefDescription": "Pre-charge for reads",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x02",
> > +        "EventName": "UNC_M_PRE_COUNT.RD",
> > +        "PerPkg": "1",
> > +        "UMask": "0x04",
> > +        "Unit": "iMC"
> > +    },
> > +    {
> > +        "BriefDescription": "Pre-charge for writes",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x02",
> > +        "EventName": "UNC_M_PRE_COUNT.WR",
> > +        "PerPkg": "1",
> > +        "UMask": "0x08",
> > +        "Unit": "iMC"
> > +    },
> > +    {
> > +        "BriefDescription": "Precharge due to read on page miss, write on 
> > page miss or PGT",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x02",
> > +        "EventName": "UNC_M_PRE_COUNT.ALL",
> > +        "PerPkg": "1",
> > +        "UMask": "0x1c",
> > +        "Unit": "iMC"
> > +    },
> > +    {
> > +        "BriefDescription": "DRAM Precharge commands. : Precharge due to 
> > page table",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x02",
> > +        "EventName": "UNC_M_PRE_COUNT.PGT",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "DRAM Precharge commands. : Precharge due to 
> > page table : Counts the number of DRAM Precharge commands sent on this 
> > channel.",
> > +        "UMask": "0x10",
> > +        "Unit": "iMC"
> > +    }
> > +]
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json
> > new file mode 100644
> > index 000000000000..6deff1fe89e3
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json
> > @@ -0,0 +1,431 @@
> > +[
> > +    {
> > +        "BriefDescription": "Uncore cache clock ticks",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventName": "UNC_CHA_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "LLC misses - Uncacheable reads (from cpu) . 
> > Derived from unc_cha_tor_inserts.ia_miss",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "LLC_MISSES.UNCACHEABLE",
> > +        "Filter": "config1=0x40e33",
> > +        "PerPkg": "1",
> > +        "UMask": "0xC001FE01",
> > +        "UMaskExt": "0xC001FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "MMIO reads. Derived from 
> > unc_cha_tor_inserts.ia_miss",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "LLC_MISSES.MMIO_READ",
> > +        "Filter": "config1=0x40040e33",
> > +        "PerPkg": "1",
> > +        "UMask": "0xC001FE01",
> > +        "UMaskExt": "0xC001FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "MMIO writes. Derived from 
> > unc_cha_tor_inserts.ia_miss",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "LLC_MISSES.MMIO_WRITE",
> > +        "Filter": "config1=0x40041e33",
> > +        "PerPkg": "1",
> > +        "UMask": "0xC001FE01",
> > +        "UMaskExt": "0xC001FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "Streaming stores (full cache line). Derived 
> > from unc_cha_tor_inserts.ia_miss",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "LLC_REFERENCES.STREAMING_FULL",
> > +        "Filter": "config1=0x41833",
> > +        "PerPkg": "1",
> > +        "ScaleUnit": "64Bytes",
> > +        "UMask": "0xC001FE01",
> > +        "UMaskExt": "0xC001FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "Streaming stores (partial cache line). 
> > Derived from unc_cha_tor_inserts.ia_miss",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "LLC_REFERENCES.STREAMING_PARTIAL",
> > +        "Filter": "config1=0x41a33",
> > +        "PerPkg": "1",
> > +        "ScaleUnit": "64Bytes",
> > +        "UMask": "0xC001FE01",
> > +        "UMaskExt": "0xC001FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth reading at IIO. Derived 
> > from unc_iio_data_req_of_cpu.mem_read.part0",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "LLC_MISSES.PCIE_READ",
> > +        "FCMask": "0x07",
> > +        "Filter": "ch_mask=0x1f",
> > +        "MetricExpr": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART0 
> > +UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART1 
> > +UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART2 
> > +UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART3",
> > +        "MetricName": "LLC_MISSES.PCIE_READ",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x01",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth writing at IIO. Derived 
> > from unc_iio_data_req_of_cpu.mem_write.part0",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "LLC_MISSES.PCIE_WRITE",
> > +        "FCMask": "0x07",
> > +        "Filter": "ch_mask=0x1f",
> > +        "MetricExpr": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART0 
> > +UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART1 
> > +UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART2 
> > +UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART3",
> > +        "MetricName": "LLC_MISSES.PCIE_WRITE",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x01",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth writing at IIO, part 1",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART1",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x02",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth writing at IIO, part 2",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART2",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x04",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth writing at IIO, part 3",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART3",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x08",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth reading at IIO, part 1",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART1",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x02",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth reading at IIO, part 2",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART2",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x04",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "PCI Express bandwidth reading at IIO, part 3",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART3",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x08",
> > +        "ScaleUnit": "4Bytes",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; CRd misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_CRD",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Code read from local IA that 
> > misses in the snoop filter",
> > +        "UMask": "0xC80FFE01",
> > +        "UMaskExt": "0xC80FFE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; CRd Pref misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_CRD_PREF",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Code read prefetch from local 
> > IA that misses in the snoop filter",
> > +        "UMask": "0xC88FFE01",
> > +        "UMaskExt": "0xC88FFE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; DRd Opt misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_DRD_OPT",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Data read opt from local IA 
> > that misses in the snoop filter",
> > +        "UMask": "0xC827FE01",
> > +        "UMaskExt": "0xC827FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; DRd Opt Pref misses from local 
> > IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_DRD_OPT_PREF",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Data read opt prefetch from 
> > local IA that misses in the snoop filter",
> > +        "UMask": "0xC8A7FE01",
> > +        "UMaskExt": "0xC8A7FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; RFO misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_RFO",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Read for ownership from local 
> > IA that misses in the snoop filter",
> > +        "UMask": "0xC807FE01",
> > +        "UMaskExt": "0xC807FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; RFO pref misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_RFO_PREF",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Read for ownership prefetch 
> > from local IA that misses in the snoop filter",
> > +        "UMask": "0xC887FE01",
> > +        "UMaskExt": "0xC887FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; WCiL misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_WCIL",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Data read from local IA that 
> > misses in the snoop filter",
> > +        "UMask": "0xC86FFE01",
> > +        "UMaskExt": "0xC86FFE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "TOR Inserts; WCiLF misses from local IA",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x35",
> > +        "EventName": "UNC_CHA_TOR_INSERTS.IA_MISS_WCILF",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "TOR Inserts; Data read from local IA that 
> > misses in the snoop filter",
> > +        "UMask": "0xC867FE01",
> > +        "UMaskExt": "0xC867FE",
> > +        "Unit": "CHA"
> > +    },
> > +    {
> > +        "BriefDescription": "Clockticks of the integrated IO (IIO) traffic 
> > controller",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x01",
> > +        "EventName": "UNC_IIO_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "Clockticks of the integrated IO (IIO) 
> > traffic controller",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card reading from 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART4",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x10",
> > +        "PublicDescription": "Data requested of the CPU : Card reading 
> > from DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x16 card plugged in to stack, Or x8 card plugged in to Lane 0/1, Or x4 card 
> > is plugged in to slot 0",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card reading from 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART5",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x20",
> > +        "PublicDescription": "Data requested of the CPU : Card reading 
> > from DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x4 card is plugged in to slot 1",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card reading from 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART6",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x40",
> > +        "PublicDescription": "Data requested of the CPU : Card reading 
> > from DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x8 card plugged in to Lane 2/3, Or x4 card is plugged in to slot 1",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card reading from 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_READ.PART7",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x80",
> > +        "PublicDescription": "Data requested of the CPU : Card reading 
> > from DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x4 card is plugged in to slot 3",
> > +        "UMask": "0x04",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card writing to 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART4",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x10",
> > +        "PublicDescription": "Data requested of the CPU : Card writing to 
> > DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x16 card plugged in to stack, Or x8 card plugged in to Lane 0/1, Or x4 card 
> > is plugged in to slot 0",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card writing to 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART5",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x20",
> > +        "PublicDescription": "Data requested of the CPU : Card writing to 
> > DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x4 card is plugged in to slot 1",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card writing to 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART6",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x40",
> > +        "PublicDescription": "Data requested of the CPU : Card writing to 
> > DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x8 card plugged in to Lane 2/3, Or x4 card is plugged in to slot 1",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Data requested of the CPU : Card writing to 
> > DRAM",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x83",
> > +        "EventName": "UNC_IIO_DATA_REQ_OF_CPU.MEM_WRITE.PART7",
> > +        "FCMask": "0x07",
> > +        "PerPkg": "1",
> > +        "PortMask": "0x80",
> > +        "PublicDescription": "Data requested of the CPU : Card writing to 
> > DRAM : Number of DWs (4 bytes) the card requests of the main die.    
> > Includes all requests initiated by the Card, including reads and writes. : 
> > x4 card is plugged in to slot 3",
> > +        "UMask": "0x01",
> > +        "Unit": "IIO"
> > +    },
> > +    {
> > +        "BriefDescription": "Clockticks of the IO coherency tracker (IRP)",
> > +        "Counter": "0,1",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x01",
> > +        "EventName": "UNC_I_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "Clockticks of the IO coherency tracker 
> > (IRP)",
> > +        "Unit": "IRP"
> > +    },
> > +    {
> > +        "BriefDescription": "Clockticks of the mesh to memory (M2M)",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventName": "UNC_M2M_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "Clockticks of the mesh to memory (M2M)",
> > +        "Unit": "M2M"
> > +    },
> > +    {
> > +        "BriefDescription": "Clockticks of the mesh to PCI (M2P)",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0x01",
> > +        "EventName": "UNC_M2P_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "Clockticks of the mesh to PCI (M2P)",
> > +        "Unit": "M2PCIe"
> > +    },
> > +    {
> > +        "BriefDescription": "Clockticks in the UBOX using a dedicated 
> > 48-bit Fixed Counter",
> > +        "Counter": "FIXED",
> > +        "CounterType": "PGMABLE",
> > +        "EventCode": "0xff",
> > +        "EventName": "UNC_U_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "Clockticks in the UBOX using a dedicated 
> > 48-bit Fixed Counter",
> > +        "Unit": "UBOX"
> > +    }
> > +]
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json
> > new file mode 100644
> > index 000000000000..ea62c092b43f
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json
> > @@ -0,0 +1,11 @@
> > +[
> > +    {
> > +        "BriefDescription": "Clockticks of the power control unit (PCU)",
> > +        "Counter": "0,1,2,3",
> > +        "CounterType": "PGMABLE",
> > +        "EventName": "UNC_P_CLOCKTICKS",
> > +        "PerPkg": "1",
> > +        "PublicDescription": "Clockticks of the power control unit (PCU)",
> > +        "Unit": "PCU"
> > +    }
> > +]
> > diff --git a/tools/perf/pmu-events/arch/x86/tremontx/virtual-memory.json 
> > b/tools/perf/pmu-events/arch/x86/tremontx/virtual-memory.json
> > new file mode 100644
> > index 000000000000..93e407a0f645
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/x86/tremontx/virtual-memory.json
> > @@ -0,0 +1,86 @@
> > +[
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts page walks completed due to demand 
> > data loads (including SW prefetches) whose address translations missed in 
> > all TLB levels and were mapped to 4K pages.  The page walks can end with or 
> > without a page fault.",
> > +        "EventCode": "0x08",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x2",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "DTLB_LOAD_MISSES.WALK_COMPLETED_4K",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Page walk completed due to a demand load to a 
> > 4K page."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts page walks completed due to demand 
> > data loads (including SW prefetches) whose address translations missed in 
> > all TLB levels and were mapped to 2M or 4M pages.  The page walks can end 
> > with or without a page fault.",
> > +        "EventCode": "0x08",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x4",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Page walk completed due to a demand load to a 
> > 2M or 4M page."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts page walks completed due to demand 
> > data stores whose address translations missed in the TLB and were mapped to 
> > 4K pages.  The page walks can end with or without a page fault.",
> > +        "EventCode": "0x49",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x2",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "DTLB_STORE_MISSES.WALK_COMPLETED_4K",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Page walk completed due to a demand data 
> > store to a 4K page."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts page walks completed due to demand 
> > data stores whose address translations missed in the TLB and were mapped to 
> > 2M or 4M pages.  The page walks can end with or without a page fault.",
> > +        "EventCode": "0x49",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x4",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Page walk completed due to a demand data 
> > store to a 2M or 4M page."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts the number of times the machine was 
> > unable to find a translation in the Instruction Translation Lookaside 
> > Buffer (ITLB) and new translation was filled into the ITLB.  The event is 
> > speculative in nature, but will not count translations (page walks) that 
> > are begun and not finished, or translations that are finished but not 
> > filled into the ITLB.",
> > +        "EventCode": "0x81",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x4",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "ITLB.FILLS",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "200003",
> > +        "BriefDescription": "Counts the number of times there was an ITLB 
> > miss and a new translation was filled into the ITLB."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts page walks completed due to 
> > instruction fetches whose address translations missed in the TLB and were 
> > mapped to 4K pages.  The page walks can end with or without a page fault.",
> > +        "EventCode": "0x85",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x2",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "ITLB_MISSES.WALK_COMPLETED_4K",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Page walk completed due to an instruction 
> > fetch in a 4K page."
> > +    },
> > +    {
> > +        "CollectPEBSRecord": "2",
> > +        "PublicDescription": "Counts page walks completed due to 
> > instruction fetches whose address translations missed in the TLB and were 
> > mapped to 2M or 4M pages.  The page walks can end with or without a page 
> > fault.",
> > +        "EventCode": "0x85",
> > +        "Counter": "0,1,2,3",
> > +        "UMask": "0x4",
> > +        "PEBScounters": "0,1,2,3",
> > +        "EventName": "ITLB_MISSES.WALK_COMPLETED_2M_4M",
> > +        "PDIR_COUNTER": "na",
> > +        "SampleAfterValue": "2000003",
> > +        "BriefDescription": "Page walk completed due to an instruction 
> > fetch in a 2M or 4M page."
> > +    }
> > +]
> > \ No newline at end of file
> > 

-- 

- Arnaldo

Reply via email to