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 <[email protected]>
>
> Reviewed-by: Kan Liang <[email protected]>
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