Skip to content

Commit 9727f6c

Browse files
bwicaksononvgithub-actions[bot]
authored andcommitted
perf vendor events arm64: Add Tegra410 Olympus PMU events
Add JSON files for NVIDIA Tegra410 Olympus core PMU events. Also updated the common-and-microarch.json. Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com> Reviewed-by: James Clark <james.clark@linaro.org> Signed-off-by: Namhyung Kim <namhyung@kernel.org> (cherry picked from commit 86ff690) Signed-off-by: Lee Trager <ltrager@nvidia.com> Acked-by: Seth Forshee <sforshee@nvidia.com> Acked-by: Matthew R. Ochs <mochs@nvidia.com> Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
1 parent b02a054 commit 9727f6c

20 files changed

Lines changed: 2896 additions & 0 deletions

tools/perf/pmu-events/arch/arm64/common-and-microarch.json

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1524,11 +1524,26 @@
15241524
"EventName": "L2D_CACHE_REFILL_PRFM",
15251525
"BriefDescription": "Level 2 data cache refill, software preload"
15261526
},
1527+
{
1528+
"EventCode": "0x8150",
1529+
"EventName": "L3D_CACHE_RW",
1530+
"BriefDescription": "Level 3 data cache demand access."
1531+
},
1532+
{
1533+
"EventCode": "0x8151",
1534+
"EventName": "L3D_CACHE_PRFM",
1535+
"BriefDescription": "Level 3 data cache software prefetch"
1536+
},
15271537
{
15281538
"EventCode": "0x8152",
15291539
"EventName": "L3D_CACHE_MISS",
15301540
"BriefDescription": "Level 3 data cache demand access miss"
15311541
},
1542+
{
1543+
"EventCode": "0x8153",
1544+
"EventName": "L3D_CACHE_REFILL_PRFM",
1545+
"BriefDescription": "Level 3 data cache refill, software prefetch."
1546+
},
15321547
{
15331548
"EventCode": "0x8154",
15341549
"EventName": "L1D_CACHE_HWPRF",
@@ -1539,6 +1554,11 @@
15391554
"EventName": "L2D_CACHE_HWPRF",
15401555
"BriefDescription": "Level 2 data cache hardware prefetch."
15411556
},
1557+
{
1558+
"EventCode": "0x8156",
1559+
"EventName": "L3D_CACHE_HWPRF",
1560+
"BriefDescription": "Level 3 data cache hardware prefetch."
1561+
},
15421562
{
15431563
"EventCode": "0x8158",
15441564
"EventName": "STALL_FRONTEND_MEMBOUND",
@@ -1694,6 +1714,11 @@
16941714
"EventName": "L2D_CACHE_REFILL_HWPRF",
16951715
"BriefDescription": "Level 2 data cache refill, hardware prefetch."
16961716
},
1717+
{
1718+
"EventCode": "0x81BE",
1719+
"EventName": "L3D_CACHE_REFILL_HWPRF",
1720+
"BriefDescription": "Level 3 data cache refill, hardware prefetch."
1721+
},
16971722
{
16981723
"EventCode": "0x81C0",
16991724
"EventName": "L1I_CACHE_HIT_RD",
@@ -1724,11 +1749,31 @@
17241749
"EventName": "L1I_CACHE_HIT_RD_FPRFM",
17251750
"BriefDescription": "Level 1 instruction cache demand fetch first hit, fetched by software preload"
17261751
},
1752+
{
1753+
"EventCode": "0x81DC",
1754+
"EventName": "L1D_CACHE_HIT_RW_FPRFM",
1755+
"BriefDescription": "Level 1 data cache demand access first hit, fetched by software prefetch."
1756+
},
17271757
{
17281758
"EventCode": "0x81E0",
17291759
"EventName": "L1I_CACHE_HIT_RD_FHWPRF",
17301760
"BriefDescription": "Level 1 instruction cache demand fetch first hit, fetched by hardware prefetcher"
17311761
},
1762+
{
1763+
"EventCode": "0x81EC",
1764+
"EventName": "L1D_CACHE_HIT_RW_FHWPRF",
1765+
"BriefDescription": "Level 1 data cache demand access first hit, fetched by hardware prefetcher."
1766+
},
1767+
{
1768+
"EventCode": "0x81F0",
1769+
"EventName": "L1I_CACHE_HIT_RD_FPRF",
1770+
"BriefDescription": "Level 1 instruction cache demand fetch first hit, fetched by prefetch."
1771+
},
1772+
{
1773+
"EventCode": "0x81FC",
1774+
"EventName": "L1D_CACHE_HIT_RW_FPRF",
1775+
"BriefDescription": "Level 1 data cache demand access first hit, fetched by prefetch."
1776+
},
17321777
{
17331778
"EventCode": "0x8200",
17341779
"EventName": "L1I_CACHE_HIT",
@@ -1779,11 +1824,26 @@
17791824
"EventName": "L1I_LFB_HIT_RD_FPRFM",
17801825
"BriefDescription": "Level 1 instruction cache demand fetch line-fill buffer first hit, recently fetched by software preload"
17811826
},
1827+
{
1828+
"EventCode": "0x825C",
1829+
"EventName": "L1D_LFB_HIT_RW_FPRFM",
1830+
"BriefDescription": "Level 1 data cache demand access line-fill buffer first hit, recently fetched by software prefetch."
1831+
},
17821832
{
17831833
"EventCode": "0x8260",
17841834
"EventName": "L1I_LFB_HIT_RD_FHWPRF",
17851835
"BriefDescription": "Level 1 instruction cache demand fetch line-fill buffer first hit, recently fetched by hardware prefetcher"
17861836
},
1837+
{
1838+
"EventCode": "0x826C",
1839+
"EventName": "L1D_LFB_HIT_RW_FHWPRF",
1840+
"BriefDescription": "Level 1 data cache demand access line-fill buffer first hit, recently fetched by hardware prefetcher."
1841+
},
1842+
{
1843+
"EventCode": "0x827C",
1844+
"EventName": "L1D_LFB_HIT_RW_FPRF",
1845+
"BriefDescription": "Level 1 data cache demand access line-fill buffer first hit, recently fetched by prefetch."
1846+
},
17871847
{
17881848
"EventCode": "0x8280",
17891849
"EventName": "L1I_CACHE_PRF",
@@ -1819,6 +1879,11 @@
18191879
"EventName": "LL_CACHE_REFILL",
18201880
"BriefDescription": "Last level cache refill"
18211881
},
1882+
{
1883+
"EventCode": "0x828E",
1884+
"EventName": "L3D_CACHE_REFILL_PRF",
1885+
"BriefDescription": "Level 3 data cache refill, prefetch."
1886+
},
18221887
{
18231888
"EventCode": "0x8320",
18241889
"EventName": "L1D_CACHE_REFILL_PERCYC",
@@ -1884,6 +1949,16 @@
18841949
"EventName": "FP_FP8_MIN_SPEC",
18851950
"BriefDescription": "Floating-point operation speculatively_executed, smallest type is 8-bit floating-point."
18861951
},
1952+
{
1953+
"EventCode": "0x8480",
1954+
"EventName": "FP_SP_FIXED_MIN_OPS_SPEC",
1955+
"BriefDescription": "Non-scalable element arithmetic operations speculatively executed, smallest type is single-precision floating-point."
1956+
},
1957+
{
1958+
"EventCode": "0x8482",
1959+
"EventName": "FP_HP_FIXED_MIN_OPS_SPEC",
1960+
"BriefDescription": "Non-scalable element arithmetic operations speculatively executed, smallest type is half-precision floating-point."
1961+
},
18871962
{
18881963
"EventCode": "0x8483",
18891964
"EventName": "FP_BF16_FIXED_MIN_OPS_SPEC",
@@ -1894,6 +1969,16 @@
18941969
"EventName": "FP_FP8_FIXED_MIN_OPS_SPEC",
18951970
"BriefDescription": "Non-scalable element arithmetic operations speculatively executed, smallest type is 8-bit floating-point."
18961971
},
1972+
{
1973+
"EventCode": "0x8488",
1974+
"EventName": "FP_SP_SCALE_MIN_OPS_SPEC",
1975+
"BriefDescription": "Scalable element arithmetic operations speculatively executed, smallest type is single-precision floating-point."
1976+
},
1977+
{
1978+
"EventCode": "0x848A",
1979+
"EventName": "FP_HP_SCALE_MIN_OPS_SPEC",
1980+
"BriefDescription": "Scalable element arithmetic operations speculatively executed, smallest type is half-precision floating-point."
1981+
},
18971982
{
18981983
"EventCode": "0x848B",
18991984
"EventName": "FP_BF16_SCALE_MIN_OPS_SPEC",

tools/perf/pmu-events/arch/arm64/mapfile.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,4 @@
4646
0x00000000500f0000,v1,ampere/emag,core
4747
0x00000000c00fac30,v1,ampere/ampereone,core
4848
0x00000000c00fac40,v1,ampere/ampereonex,core
49+
0x000000004e0f0100,v1,nvidia/t410,core
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
[
2+
{
3+
"ArchStdEvent": "BR_MIS_PRED",
4+
"PublicDescription": "This event counts branches which are speculatively executed and mispredicted."
5+
},
6+
{
7+
"ArchStdEvent": "BR_PRED",
8+
"PublicDescription": "This event counts all speculatively executed branches."
9+
},
10+
{
11+
"EventCode": "0x017e",
12+
"EventName": "BR_PRED_BTB_CTX_UPDATE",
13+
"PublicDescription": "Branch context table update."
14+
},
15+
{
16+
"EventCode": "0x0188",
17+
"EventName": "BR_MIS_PRED_DIR_RESOLVED",
18+
"PublicDescription": "Number of branch misprediction due to direction misprediction."
19+
},
20+
{
21+
"EventCode": "0x0189",
22+
"EventName": "BR_MIS_PRED_DIR_UNCOND_RESOLVED",
23+
"PublicDescription": "Number of branch misprediction due to direction misprediction for unconditional branches."
24+
},
25+
{
26+
"EventCode": "0x018a",
27+
"EventName": "BR_MIS_PRED_DIR_UNCOND_DIRECT_RESOLVED",
28+
"PublicDescription": "Number of branch misprediction due to direction misprediction for unconditional direct branches."
29+
},
30+
{
31+
"EventCode": "0x018b",
32+
"EventName": "BR_PRED_MULTI_RESOLVED",
33+
"PublicDescription": "Number of resolved branch which made prediction by polymorphic indirect predictor."
34+
},
35+
{
36+
"EventCode": "0x018c",
37+
"EventName": "BR_MIS_PRED_MULTI_RESOLVED",
38+
"PublicDescription": "Number of branch misprediction which made prediction by polymorphic indirect predictor."
39+
},
40+
{
41+
"EventCode": "0x01e4",
42+
"EventName": "BR_RGN_RECLAIM",
43+
"PublicDescription": "This event counts the Indirect predictor entries flushed by region reclamation."
44+
}
45+
]
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
{
3+
"ArchStdEvent": "BRB_FILTRATE",
4+
"PublicDescription": "This event counts each valid branch record captured in the branch record buffer. Branch records that are not captured because they are removed by filtering are not counted."
5+
}
6+
]
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
[
2+
{
3+
"ArchStdEvent": "BUS_ACCESS",
4+
"PublicDescription": "This event counts the number of data-beat accesses between the CPU and the external bus. This count includes accesses due to read, write, and snoop. Each beat of data is counted individually."
5+
},
6+
{
7+
"ArchStdEvent": "BUS_CYCLES",
8+
"PublicDescription": "This event counts bus cycles in the CPU. Bus cycles represent a clock cycle in which a transaction could be sent or received on the interface from the CPU to the external bus. Since that interface is driven at the same clock speed as the CPU, this event increments at the rate of CPU clock. Regardless of the WFE/WFI state of the PE, this event increments on each processor clock."
9+
},
10+
{
11+
"ArchStdEvent": "BUS_ACCESS_RD",
12+
"PublicDescription": "This event counts memory Read transactions seen on the external bus. Each beat of data is counted individually."
13+
},
14+
{
15+
"ArchStdEvent": "BUS_ACCESS_WR",
16+
"PublicDescription": "This event counts memory Write transactions seen on the external bus. Each beat of data is counted individually."
17+
},
18+
{
19+
"EventCode": "0x0154",
20+
"EventName": "BUS_REQUEST_REQ",
21+
"PublicDescription": "Bus request, request."
22+
},
23+
{
24+
"EventCode": "0x0155",
25+
"EventName": "BUS_REQUEST_RETRY",
26+
"PublicDescription": "Bus request, retry."
27+
},
28+
{
29+
"EventCode": "0x0198",
30+
"EventName": "L2_CHI_CBUSY0",
31+
"PublicDescription": "Number of RXDAT or RXRSP response received width CBusy of 0."
32+
},
33+
{
34+
"EventCode": "0x0199",
35+
"EventName": "L2_CHI_CBUSY1",
36+
"PublicDescription": "Number of RXDAT or RXRSP response received width CBusy of 1."
37+
},
38+
{
39+
"EventCode": "0x019a",
40+
"EventName": "L2_CHI_CBUSY2",
41+
"PublicDescription": "Number of RXDAT or RXRSP response received width CBusy of 2."
42+
},
43+
{
44+
"EventCode": "0x019b",
45+
"EventName": "L2_CHI_CBUSY3",
46+
"PublicDescription": "Number of RXDAT or RXRSP response received width CBusy of 3."
47+
}
48+
]
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
[
2+
{
3+
"ArchStdEvent": "EXC_TAKEN",
4+
"PublicDescription": "This event counts any taken architecturally visible exceptions such as IRQ, FIQ, SError, and other synchronous exceptions. Exceptions are counted whether or not they are taken locally."
5+
},
6+
{
7+
"ArchStdEvent": "EXC_RETURN",
8+
"PublicDescription": "This event counts any architecturally executed exception return instructions. For example: AArch64: ERET."
9+
},
10+
{
11+
"ArchStdEvent": "EXC_UNDEF",
12+
"PublicDescription": "This event counts the number of synchronous exceptions which are taken locally that are due to attempting to execute an instruction that is UNDEFINED.\nAttempting to execute instruction bit patterns that have not been allocated.\nAttempting to execute instructions when they are disabled.\nAttempting to execute instructions at an inappropriate Exception level.\nAttempting to execute an instruction when the value of PSTATE.IL is 1."
13+
},
14+
{
15+
"ArchStdEvent": "EXC_SVC",
16+
"PublicDescription": "This event counts SVC exceptions taken locally."
17+
},
18+
{
19+
"ArchStdEvent": "EXC_PABORT",
20+
"PublicDescription": "This event counts synchronous exceptions that are taken locally and caused by Instruction Aborts."
21+
},
22+
{
23+
"ArchStdEvent": "EXC_DABORT",
24+
"PublicDescription": "This event counts exceptions that are taken locally and are caused by data aborts or SErrors. Conditions that could cause those exceptions are attempting to read or write memory where the MMU generates a fault, attempting to read or write memory with a misaligned address, Interrupts from the nSEI inputs and internally generated SErrors."
25+
},
26+
{
27+
"ArchStdEvent": "EXC_IRQ",
28+
"PublicDescription": "This event counts IRQ exceptions including the virtual IRQs that are taken locally."
29+
},
30+
{
31+
"ArchStdEvent": "EXC_FIQ",
32+
"PublicDescription": "This event counts FIQ exceptions including the virtual FIQs that are taken locally."
33+
},
34+
{
35+
"ArchStdEvent": "EXC_SMC",
36+
"PublicDescription": "This event counts SMC exceptions taken to EL3."
37+
},
38+
{
39+
"ArchStdEvent": "EXC_HVC",
40+
"PublicDescription": "This event counts HVC exceptions taken to EL2."
41+
},
42+
{
43+
"ArchStdEvent": "EXC_TRAP_PABORT",
44+
"PublicDescription": "This event counts exceptions which are traps not taken locally and are caused by Instruction Aborts. For example, attempting to execute an instruction with a misaligned PC."
45+
},
46+
{
47+
"ArchStdEvent": "EXC_TRAP_DABORT",
48+
"PublicDescription": "This event counts exceptions which are traps not taken locally and are caused by Data Aborts or SError Interrupts. Conditions that could cause those exceptions are:\n* Attempting to read or write memory where the MMU generates a fault,\n* Attempting to read or write memory with a misaligned address,\n* Interrupts from the SEI input,\n* Internally generated SErrors."
49+
},
50+
{
51+
"ArchStdEvent": "EXC_TRAP_OTHER",
52+
"PublicDescription": "This event counts the number of synchronous trap exceptions which are not taken locally and are not SVC, SMC, HVC, Data Aborts, Instruction Aborts, or Interrupts."
53+
},
54+
{
55+
"ArchStdEvent": "EXC_TRAP_IRQ",
56+
"PublicDescription": "This event counts IRQ exceptions including the virtual IRQs that are not taken locally."
57+
},
58+
{
59+
"ArchStdEvent": "EXC_TRAP_FIQ",
60+
"PublicDescription": "This event counts FIQs which are not taken locally but taken from EL0, EL1, or EL2 to EL3 (which would be the normal behavior for FIQs when not executing in EL3)."
61+
}
62+
]

0 commit comments

Comments
 (0)