1What:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/control
2Date:		March 2024
3KernelVersion:	6.8
4Contact:	qat-linux@intel.com
5Description:	(RW) Enables/disables the reporting of telemetry metrics.
6
7		Allowed values to write:
8		========================
9		* 0: disable telemetry
10		* 1: enable telemetry
11		* 2, 3, 4: enable telemetry and calculate minimum, maximum
12		  and average for each counter over 2, 3 or 4 samples
13
14		Returned values:
15		================
16		* 1-4: telemetry is enabled and running
17		* 0: telemetry is disabled
18
19		Example.
20
21		Writing '3' to this file starts the collection of
22		telemetry metrics. Samples are collected every second and
23		stored in a circular buffer of size 3. These values are then
24		used to calculate the minimum, maximum and average for each
25		counter. After enabling, counters can be retrieved through
26		the ``device_data`` file::
27
28		  echo 3 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
29
30		Writing '0' to this file stops the collection of telemetry
31		metrics::
32
33		  echo 0 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
34
35		This attribute is only available for qat_4xxx devices.
36
37What:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/device_data
38Date:		March 2024
39KernelVersion:	6.8
40Contact:	qat-linux@intel.com
41Description:	(RO) Reports device telemetry counters.
42		Reads report metrics about performance and utilization of
43		a QAT device:
44
45		=======================	========================================
46		Field			Description
47		=======================	========================================
48		sample_cnt		number of acquisitions of telemetry data
49					from the device. Reads are performed
50					every 1000 ms.
51		pci_trans_cnt		number of PCIe partial transactions
52		max_rd_lat		maximum logged read latency [ns] (could
53					be any read operation)
54		rd_lat_acc_avg		average read latency [ns]
55		max_gp_lat		max get to put latency [ns] (only takes
56					samples for AE0)
57		gp_lat_acc_avg		average get to put latency [ns]
58		bw_in			PCIe, write bandwidth [Mbps]
59		bw_out			PCIe, read bandwidth [Mbps]
60		at_page_req_lat_avg	Address Translator(AT), average page
61					request latency [ns]
62		at_trans_lat_avg	AT, average page translation latency [ns]
63		at_max_tlb_used		AT, maximum uTLB used
64		util_cpr<N>		utilization of Compression slice N [%]
65		exec_cpr<N>		execution count of Compression slice N
66		util_xlt<N>		utilization of Translator slice N [%]
67		exec_xlt<N>		execution count of Translator slice N
68		util_dcpr<N>		utilization of Decompression slice N [%]
69		exec_dcpr<N>		execution count of Decompression slice N
70		util_pke<N>		utilization of PKE N [%]
71		exec_pke<N>		execution count of PKE N
72		util_ucs<N>		utilization of UCS slice N [%]
73		exec_ucs<N>		execution count of UCS slice N
74		util_wat<N>		utilization of Wireless Authentication
75					slice N [%]
76		exec_wat<N>		execution count of Wireless Authentication
77					slice N
78		util_wcp<N>		utilization of Wireless Cipher slice N [%]
79		exec_wcp<N>		execution count of Wireless Cipher slice N
80		util_cph<N>		utilization of Cipher slice N [%]
81		exec_cph<N>		execution count of Cipher slice N
82		util_ath<N>		utilization of Authentication slice N [%]
83		exec_ath<N>		execution count of Authentication slice N
84		=======================	========================================
85
86		The telemetry report file can be read with the following command::
87
88		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/device_data
89
90		If ``control`` is set to 1, only the current values of the
91		counters are displayed::
92
93		  <counter_name> <current>
94
95		If ``control`` is 2, 3 or 4, counters are displayed in the
96		following format::
97
98		  <counter_name> <current> <min> <max> <avg>
99
100		If a device lacks of a specific accelerator, the corresponding
101		attribute is not reported.
102
103		This attribute is only available for qat_4xxx devices.
104
105What:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/rp_<A/B/C/D>_data
106Date:		March 2024
107KernelVersion:	6.8
108Contact:	qat-linux@intel.com
109Description:	(RW) Selects up to 4 Ring Pairs (RP) to monitor, one per file,
110		and report telemetry counters related to each.
111
112		Allowed values to write:
113		========================
114		* 0 to ``<num_rps - 1>``:
115		  Ring pair to be monitored. The value of ``num_rps`` can be
116		  retrieved through ``/sys/bus/pci/devices/<BDF>/qat/num_rps``.
117		  See Documentation/ABI/testing/sysfs-driver-qat.
118
119		Reads report metrics about performance and utilization of
120		the selected RP:
121
122		=======================	========================================
123		Field			Description
124		=======================	========================================
125		sample_cnt		number of acquisitions of telemetry data
126					from the device. Reads are performed
127					every 1000 ms
128		rp_num			RP number associated with slot <A/B/C/D>
129		service_type		service associated to the RP
130		pci_trans_cnt		number of PCIe partial transactions
131		gp_lat_acc_avg		average get to put latency [ns]
132		bw_in			PCIe, write bandwidth [Mbps]
133		bw_out			PCIe, read bandwidth [Mbps]
134		at_glob_devtlb_hit	Message descriptor DevTLB hit rate
135		at_glob_devtlb_miss	Message descriptor DevTLB miss rate
136		tl_at_payld_devtlb_hit	Payload DevTLB hit rate
137		tl_at_payld_devtlb_miss	Payload DevTLB miss rate
138		======================= ========================================
139
140		Example.
141
142		Writing the value '32' to the file ``rp_C_data`` starts the
143		collection of telemetry metrics for ring pair 32::
144
145		  echo 32 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
146
147		Once a ring pair is selected, statistics can be read accessing
148		the file::
149
150		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
151
152		If ``control`` is set to 1, only the current values of the
153		counters are displayed::
154
155		  <counter_name> <current>
156
157		If ``control`` is 2, 3 or 4, counters are displayed in the
158		following format::
159
160		  <counter_name> <current> <min> <max> <avg>
161
162
163		On QAT GEN4 devices there are 64 RPs on a PF, so the allowed
164		values are 0..63. This number is absolute to the device.
165		If Virtual Functions (VF) are used, the ring pair number can
166		be derived from the Bus, Device, Function of the VF:
167
168		============ ====== ====== ====== ======
169		PCI BDF/VF   RP0    RP1    RP2    RP3
170		============ ====== ====== ====== ======
171		0000:6b:0.1  RP  0  RP  1  RP  2  RP  3
172		0000:6b:0.2  RP  4  RP  5  RP  6  RP  7
173		0000:6b:0.3  RP  8  RP  9  RP 10  RP 11
174		0000:6b:0.4  RP 12  RP 13  RP 14  RP 15
175		0000:6b:0.5  RP 16  RP 17  RP 18  RP 19
176		0000:6b:0.6  RP 20  RP 21  RP 22  RP 23
177		0000:6b:0.7  RP 24  RP 25  RP 26  RP 27
178		0000:6b:1.0  RP 28  RP 29  RP 30  RP 31
179		0000:6b:1.1  RP 32  RP 33  RP 34  RP 35
180		0000:6b:1.2  RP 36  RP 37  RP 38  RP 39
181		0000:6b:1.3  RP 40  RP 41  RP 42  RP 43
182		0000:6b:1.4  RP 44  RP 45  RP 46  RP 47
183		0000:6b:1.5  RP 48  RP 49  RP 50  RP 51
184		0000:6b:1.6  RP 52  RP 53  RP 54  RP 55
185		0000:6b:1.7  RP 56  RP 57  RP 58  RP 59
186		0000:6b:2.0  RP 60  RP 61  RP 62  RP 63
187		============ ====== ====== ====== ======
188
189		The mapping is only valid for the BDFs of VFs on the host.
190
191
192		The service provided on a ring-pair varies depending on the
193		configuration. The configuration for a given device can be
194		queried and set using ``cfg_services``.
195		See Documentation/ABI/testing/sysfs-driver-qat for details.
196
197		The following table reports how ring pairs are mapped to VFs
198		on the PF 0000:6b:0.0 configured for `sym;asym` or `asym;sym`:
199
200		=========== ============ =========== ============ ===========
201		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
202		=========== ============ =========== ============ ===========
203		0000:6b:0.1 RP 0 asym    RP 1 sym    RP 2 asym    RP 3 sym
204		0000:6b:0.2 RP 4 asym    RP 5 sym    RP 6 asym    RP 7 sym
205		0000:6b:0.3 RP 8 asym    RP 9 sym    RP10 asym    RP11 sym
206		...         ...          ...         ...          ...
207		=========== ============ =========== ============ ===========
208
209		All VFs follow the same pattern.
210
211
212		The following table reports how ring pairs are mapped to VFs on
213		the PF 0000:6b:0.0 configured for `dc`:
214
215		=========== ============ =========== ============ ===========
216		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
217		=========== ============ =========== ============ ===========
218		0000:6b:0.1 RP 0 dc      RP 1 dc     RP 2 dc      RP 3 dc
219		0000:6b:0.2 RP 4 dc      RP 5 dc     RP 6 dc      RP 7 dc
220		0000:6b:0.3 RP 8 dc      RP 9 dc     RP10 dc      RP11 dc
221		...         ...          ...         ...          ...
222		=========== ============ =========== ============ ===========
223
224		The mapping of a RP to a service can be retrieved using
225		``rp2srv`` from sysfs.
226		See Documentation/ABI/testing/sysfs-driver-qat for details.
227
228		This attribute is only available for qat_4xxx devices.
229