xref: /linux/Documentation/admin-guide/perf/fujitsu_uncore_pmu.rst (revision feafee284579d29537a5a56ba8f23894f0463f3d)
1*bad11557SKoichi Okuno.. SPDX-License-Identifier: GPL-2.0-only
2*bad11557SKoichi Okuno
3*bad11557SKoichi Okuno================================================
4*bad11557SKoichi OkunoFujitsu Uncore Performance Monitoring Unit (PMU)
5*bad11557SKoichi Okuno================================================
6*bad11557SKoichi Okuno
7*bad11557SKoichi OkunoThis driver supports the Uncore MAC PMUs and the Uncore PCI PMUs found
8*bad11557SKoichi Okunoin Fujitsu chips.
9*bad11557SKoichi OkunoEach MAC PMU on these chips is exposed as a uncore perf PMU with device name
10*bad11557SKoichi Okunomac_iod<iod>_mac<mac>_ch<ch>.
11*bad11557SKoichi OkunoAnd each PCI PMU on these chips is exposed as a uncore perf PMU with device name
12*bad11557SKoichi Okunopci_iod<iod>_pci<pci>.
13*bad11557SKoichi Okuno
14*bad11557SKoichi OkunoThe driver provides a description of its available events and configuration
15*bad11557SKoichi Okunooptions in sysfs, see /sys/bus/event_sources/devices/mac_iod<iod>_mac<mac>_ch<ch>/
16*bad11557SKoichi Okunoand /sys/bus/event_sources/devices/pci_iod<iod>_pci<pci>/.
17*bad11557SKoichi OkunoThis driver exports:
18*bad11557SKoichi Okuno- formats, used by perf user space and other tools to configure events
19*bad11557SKoichi Okuno- events, used by perf user space and other tools to create events
20*bad11557SKoichi Okuno  symbolically, e.g.:
21*bad11557SKoichi Okuno    perf stat -a -e mac_iod0_mac0_ch0/event=0x21/ ls
22*bad11557SKoichi Okuno    perf stat -a -e pci_iod0_pci0/event=0x24/ ls
23*bad11557SKoichi Okuno- cpumask, used by perf user space and other tools to know on which CPUs
24*bad11557SKoichi Okuno  to open the events
25*bad11557SKoichi Okuno
26*bad11557SKoichi OkunoThis driver supports the following events for MAC:
27*bad11557SKoichi Okuno- cycles
28*bad11557SKoichi Okuno  This event counts MAC cycles at MAC frequency.
29*bad11557SKoichi Okuno- read-count
30*bad11557SKoichi Okuno  This event counts the number of read requests to MAC.
31*bad11557SKoichi Okuno- read-count-request
32*bad11557SKoichi Okuno  This event counts the number of read requests including retry to MAC.
33*bad11557SKoichi Okuno- read-count-return
34*bad11557SKoichi Okuno  This event counts the number of responses to read requests to MAC.
35*bad11557SKoichi Okuno- read-count-request-pftgt
36*bad11557SKoichi Okuno  This event counts the number of read requests including retry with PFTGT
37*bad11557SKoichi Okuno  flag.
38*bad11557SKoichi Okuno- read-count-request-normal
39*bad11557SKoichi Okuno  This event counts the number of read requests including retry without PFTGT
40*bad11557SKoichi Okuno  flag.
41*bad11557SKoichi Okuno- read-count-return-pftgt-hit
42*bad11557SKoichi Okuno  This event counts the number of responses to read requests which hit the
43*bad11557SKoichi Okuno  PFTGT buffer.
44*bad11557SKoichi Okuno- read-count-return-pftgt-miss
45*bad11557SKoichi Okuno  This event counts the number of responses to read requests which miss the
46*bad11557SKoichi Okuno  PFTGT buffer.
47*bad11557SKoichi Okuno- read-wait
48*bad11557SKoichi Okuno  This event counts outstanding read requests issued by DDR memory controller
49*bad11557SKoichi Okuno  per cycle.
50*bad11557SKoichi Okuno- write-count
51*bad11557SKoichi Okuno  This event counts the number of write requests to MAC (including zero write,
52*bad11557SKoichi Okuno  full write, partial write, write cancel).
53*bad11557SKoichi Okuno- write-count-write
54*bad11557SKoichi Okuno  This event counts the number of full write requests to MAC (not including
55*bad11557SKoichi Okuno  zero write).
56*bad11557SKoichi Okuno- write-count-pwrite
57*bad11557SKoichi Okuno  This event counts the number of partial write requests to MAC.
58*bad11557SKoichi Okuno- memory-read-count
59*bad11557SKoichi Okuno  This event counts the number of read requests from MAC to memory.
60*bad11557SKoichi Okuno- memory-write-count
61*bad11557SKoichi Okuno  This event counts the number of full write requests from MAC to memory.
62*bad11557SKoichi Okuno- memory-pwrite-count
63*bad11557SKoichi Okuno  This event counts the number of partial write requests from MAC to memory.
64*bad11557SKoichi Okuno- ea-mac
65*bad11557SKoichi Okuno  This event counts energy consumption of MAC.
66*bad11557SKoichi Okuno- ea-memory
67*bad11557SKoichi Okuno  This event counts energy consumption of memory.
68*bad11557SKoichi Okuno- ea-memory-mac-write
69*bad11557SKoichi Okuno  This event counts the number of write requests from MAC to memory.
70*bad11557SKoichi Okuno- ea-ha
71*bad11557SKoichi Okuno  This event counts energy consumption of HA.
72*bad11557SKoichi Okuno
73*bad11557SKoichi Okuno  'ea' is the abbreviation for 'Energy Analyzer'.
74*bad11557SKoichi Okuno
75*bad11557SKoichi OkunoExamples for use with perf::
76*bad11557SKoichi Okuno
77*bad11557SKoichi Okuno  perf stat -e mac_iod0_mac0_ch0/ea-mac/ ls
78*bad11557SKoichi Okuno
79*bad11557SKoichi OkunoAnd, this driver supports the following events for PCI:
80*bad11557SKoichi Okuno- pci-port0-cycles
81*bad11557SKoichi Okuno  This event counts PCI cycles at PCI frequency in port0.
82*bad11557SKoichi Okuno- pci-port0-read-count
83*bad11557SKoichi Okuno  This event counts read transactions for data transfer in port0.
84*bad11557SKoichi Okuno- pci-port0-read-count-bus
85*bad11557SKoichi Okuno  This event counts read transactions for bus usage in port0.
86*bad11557SKoichi Okuno- pci-port0-write-count
87*bad11557SKoichi Okuno  This event counts write transactions for data transfer in port0.
88*bad11557SKoichi Okuno- pci-port0-write-count-bus
89*bad11557SKoichi Okuno  This event counts write transactions for bus usage in port0.
90*bad11557SKoichi Okuno- pci-port1-cycles
91*bad11557SKoichi Okuno  This event counts PCI cycles at PCI frequency in port1.
92*bad11557SKoichi Okuno- pci-port1-read-count
93*bad11557SKoichi Okuno  This event counts read transactions for data transfer in port1.
94*bad11557SKoichi Okuno- pci-port1-read-count-bus
95*bad11557SKoichi Okuno  This event counts read transactions for bus usage in port1.
96*bad11557SKoichi Okuno- pci-port1-write-count
97*bad11557SKoichi Okuno  This event counts write transactions for data transfer in port1.
98*bad11557SKoichi Okuno- pci-port1-write-count-bus
99*bad11557SKoichi Okuno  This event counts write transactions for bus usage in port1.
100*bad11557SKoichi Okuno- ea-pci
101*bad11557SKoichi Okuno  This event counts energy consumption of PCI.
102*bad11557SKoichi Okuno
103*bad11557SKoichi Okuno  'ea' is the abbreviation for 'Energy Analyzer'.
104*bad11557SKoichi Okuno
105*bad11557SKoichi OkunoExamples for use with perf::
106*bad11557SKoichi Okuno
107*bad11557SKoichi Okuno  perf stat -e pci_iod0_pci0/ea-pci/ ls
108*bad11557SKoichi Okuno
109*bad11557SKoichi OkunoGiven that these are uncore PMUs the driver does not support sampling, therefore
110*bad11557SKoichi Okuno"perf record" will not work. Per-task perf sessions are not supported.
111