Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2235370ybl; Thu, 15 Aug 2019 08:35:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqz671DXOmXCAzaAGpc9RToAyJV0QkFSVm9/3b5TIWBPU3ZR6TTWT8ToK+wcYnS2LIL4yt+u X-Received: by 2002:a5d:6911:: with SMTP id t17mr6003315wru.255.1565883340317; Thu, 15 Aug 2019 08:35:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565883339; cv=none; d=google.com; s=arc-20160816; b=ksMtaHrzJEd4Z5EnvHvA2hbl589SIEpious7BwKNeeylsSBRsOEIPOta3+56qdtar9 qrTMbwow3TwMjUir0jrGwc8Z1dfzxtkX68MdmGetkJhVhutN2cUAxBJBiUASu9Pc4EJ0 esWiec+3wTlKc8kB5EZwb0mKPB/evoz7a1Ke1xlf+UAkTAinBXwge2btMrZHPmEWZR+X kkwtHvkWV+4jjPmoc1ALcjFr+F8pVV0jX8zbUfaxRhw8StCtMrqwfd181mSiOGu8ozxw NX1Fl7aN0LeUPQ7pQQsRI8ROPZqYGWhBaBGLxWPdUjEiqpGXrmNOawMHT2wJfBCHFQaz kD5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=J6VMuEcYDXrkwnJeQrWO5xfpP2U3Sd6IaG+J7itJ8tY=; b=rerTGMmM644PrMo6/bRGD7S43FHNIXecr9oNbQKwjU+khz0vBmv+Y/u0/QuQWCCai2 Aenf/k1XZj7v8X/IDWeTS6XgjhzvBLXuHxRMy3SiljO8SrDinMggZ8a3WB7qntRR9VAY yyjxlazzhoaPv1LhpK7y9c1XZaz/s92cV/k2qXQNplo5jSphhUxpZLz3cw884YTBJ3gp AdqNYIrY/hOG6auRdx4MiSfT5dYMNJ0j/6d5Ys5iVyjoRSmgoB1cXHC9M9aezXkfNppo uBX5iyiiEK1YmyWXSmnWH5w9AMM3IlhpVYSpimwywv4229U0hZexIX8+8KFpZtDnHk8I JXwA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t16si2368717pfq.88.2019.08.15.08.35.23; Thu, 15 Aug 2019 08:35:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733081AbfHOOmt (ORCPT + 99 others); Thu, 15 Aug 2019 10:42:49 -0400 Received: from mga06.intel.com ([134.134.136.31]:7348 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729838AbfHOOmt (ORCPT ); Thu, 15 Aug 2019 10:42:49 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Aug 2019 07:42:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,389,1559545200"; d="scan'208";a="201228303" Received: from linux.intel.com ([10.54.29.200]) by fmsmga004.fm.intel.com with ESMTP; 15 Aug 2019 07:42:46 -0700 Received: from [10.251.20.19] (kliang2-mobl.ccr.corp.intel.com [10.251.20.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by linux.intel.com (Postfix) with ESMTPS id 5ECBF580522; Thu, 15 Aug 2019 07:42:45 -0700 (PDT) Subject: Re: [PATCH] perf vendor events intel: Add Tremontx event file v1.02 To: Haiyan Song , acme@kernel.org, jolsa@kernel.org, peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com Cc: Linux-kernel@vger.kernel.org, ak@linux.intel.com, kan.liang@intel.com, yao.jin@intel.com References: <20190815035942.30602-1-haiyanx.song@intel.com> From: "Liang, Kan" Message-ID: Date: Thu, 15 Aug 2019 10:42:44 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190815035942.30602-1-haiyanx.song@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/14/2019 11:59 PM, Haiyan Song wrote: > Add a Intel event file for perf. > > Signed-off-by: Haiyan Song Reviewed-by: Kan Liang 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 >