-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf vendor events: Add Goldmont Plus V1 event file
Add a Intel event file for perf. Signed-off-by: Kan Liang <Kan.liang@intel.com> Acked-by: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Kan Liang <kan.liang@intel.com> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Link: http://lkml.kernel.org/r/1508331907-395162-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
- Loading branch information
Kan Liang
authored and
Arnaldo Carvalho de Melo
committed
Oct 23, 2017
1 parent
b1f03ca
commit 65db92e
Showing
7 changed files
with
2,414 additions
and
0 deletions.
There are no files selected for viewing
1,453 changes: 1,453 additions & 0 deletions
1,453
tools/perf/pmu-events/arch/x86/goldmontplus/cache.json
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
[ | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts requests to the Instruction Cache (ICache) for one or more bytes in an ICache Line and that cache line is in the ICache (hit). The event strives to count on a cache line basis, so that multiple accesses which hit in a single cache line count as one ICACHE.HIT. 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 in the ICache. This event counts differently than Intel processors based on Silvermont microarchitecture.", | ||
"EventCode": "0x80", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x1", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "ICACHE.HIT", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "References per ICache line that are available in the ICache (hit). This event counts differently than Intel processors based on Silvermont microarchitecture" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"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. This event counts differently than Intel processors based on Silvermont microarchitecture.", | ||
"EventCode": "0x80", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x2", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "ICACHE.MISSES", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "References per ICache line that are not available in the ICache (miss). This event counts differently than Intel processors based on Silvermont microarchitecture" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"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.\r\nThis event counts differently than Intel processors based on Silvermont microarchitecture.", | ||
"EventCode": "0x80", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x3", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "ICACHE.ACCESSES", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "References per ICache line. This event counts differently than Intel processors based on Silvermont microarchitecture" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts the number of times the Microcode Sequencer (MS) starts a flow of uops from the MSROM. It does not count every time a uop is read from the MSROM. The most common case that this counts is when a micro-coded instruction is encountered by the front end of the machine. Other cases include when an instruction encounters a fault, trap, or microcode assist of any sort that initiates a flow of uops. The event will count MS startups for uops that are speculative, and subsequently cleared by branch mispredict or a machine clear.", | ||
"EventCode": "0xE7", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x1", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "MS_DECODED.MS_ENTRY", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "MS decode starts" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts the number of times the prediction (from the predecode cache) for instruction length is incorrect.", | ||
"EventCode": "0xE9", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x1", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "DECODE_RESTRICTION.PREDECODE_WRONG", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Decode restrictions due to predicting wrong instruction length" | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
[ | ||
{ | ||
"PEBS": "2", | ||
"CollectPEBSRecord": "2", | ||
"PublicDescription": "Counts when a memory load of a uop spans a page boundary (a split) is retired.", | ||
"EventCode": "0x13", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x2", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "MISALIGN_MEM_REF.LOAD_PAGE_SPLIT", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Load uops that split a page (Precise event capable)" | ||
}, | ||
{ | ||
"PEBS": "2", | ||
"CollectPEBSRecord": "2", | ||
"PublicDescription": "Counts when a memory store of a uop spans a page boundary (a split) is retired.", | ||
"EventCode": "0x13", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x4", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "MISALIGN_MEM_REF.STORE_PAGE_SPLIT", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Store uops that split a page (Precise event capable)" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts machine clears due to memory ordering issues. This occurs when a snoop request happens and the machine is uncertain if memory ordering will be preserved - as another core is in the process of modifying the data.", | ||
"EventCode": "0xC3", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x2", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "MACHINE_CLEARS.MEMORY_ORDERING", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "20003", | ||
"BriefDescription": "Machine clears due to memory ordering issue" | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
[ | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts cycles that fetch is stalled due to any reason. That is, the decoder queue is able to accept bytes, but the fetch unit is unable to provide bytes. This will include cycles due to an ITLB miss, ICache miss and other events.", | ||
"EventCode": "0x86", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x0", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "FETCH_STALL.ALL", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Cycles code-fetch stalled due to any reason." | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts cycles that fetch is stalled due to an outstanding ITLB miss. That is, the decoder queue is able to accept bytes, but the fetch unit is unable to provide bytes due to an ITLB miss. Note: this event is not the same as page walk cycles to retrieve an instruction translation.", | ||
"EventCode": "0x86", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x1", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "FETCH_STALL.ITLB_FILL_PENDING_CYCLES", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Cycles the code-fetch stalls and an ITLB miss is outstanding." | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts the number of issue slots per core cycle that were not consumed by the backend due to either a full resource in the backend (RESOURCE_FULL) or due to the processor recovering from some event (RECOVERY).", | ||
"EventCode": "0xCA", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x0", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "ISSUE_SLOTS_NOT_CONSUMED.ANY", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Unfilled issue slots per cycle" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts the number of issue slots per core cycle that were not consumed because of a full resource in the backend. Including but not limited to resources such as the Re-order Buffer (ROB), reservation stations (RS), load/store buffers, physical registers, or any other needed machine resource that is currently unavailable. Note that uops must be available for consumption in order for this event to fire. If a uop is not available (Instruction Queue is empty), this event will not count.", | ||
"EventCode": "0xCA", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x1", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "ISSUE_SLOTS_NOT_CONSUMED.RESOURCE_FULL", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Unfilled issue slots per cycle because of a full resource in the backend" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "1", | ||
"PublicDescription": "Counts the number of issue slots per core cycle that were not consumed by the backend because allocation is stalled waiting for a mispredicted jump to retire or other branch-like conditions (e.g. the event is relevant during certain microcode flows). Counts all issue slots blocked while within this window including slots where uops were not available in the Instruction Queue.", | ||
"EventCode": "0xCA", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x2", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "ISSUE_SLOTS_NOT_CONSUMED.RECOVERY", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Unfilled issue slots per cycle to recover" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "2", | ||
"PublicDescription": "Counts hardware interrupts received by the processor.", | ||
"EventCode": "0xCB", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x1", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "HW_INTERRUPTS.RECEIVED", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "203", | ||
"BriefDescription": "Hardware interrupts received" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "2", | ||
"PublicDescription": "Counts the number of core cycles during which interrupts are masked (disabled). Increments by 1 each core cycle that EFLAGS.IF is 0, regardless of whether interrupts are pending or not.", | ||
"EventCode": "0xCB", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x2", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "HW_INTERRUPTS.MASKED", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Cycles hardware interrupts are masked" | ||
}, | ||
{ | ||
"CollectPEBSRecord": "2", | ||
"PublicDescription": "Counts core cycles during which there are pending interrupts, but interrupts are masked (EFLAGS.IF = 0).", | ||
"EventCode": "0xCB", | ||
"Counter": "0,1,2,3", | ||
"UMask": "0x4", | ||
"PEBScounters": "0,1,2,3", | ||
"EventName": "HW_INTERRUPTS.PENDING_AND_MASKED", | ||
"PDIR_COUNTER": "na", | ||
"SampleAfterValue": "200003", | ||
"BriefDescription": "Cycles pending interrupts are masked" | ||
} | ||
] |
Oops, something went wrong.