xref: /linux/Documentation/ABI/testing/debugfs-driver-qat_telemetry (revision 06d07429858317ded2db7986113a9e0129cd599b)
169e7649fSLucas Segarra FernandezWhat:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/control
269e7649fSLucas Segarra FernandezDate:		March 2024
369e7649fSLucas Segarra FernandezKernelVersion:	6.8
469e7649fSLucas Segarra FernandezContact:	qat-linux@intel.com
569e7649fSLucas Segarra FernandezDescription:	(RW) Enables/disables the reporting of telemetry metrics.
669e7649fSLucas Segarra Fernandez
769e7649fSLucas Segarra Fernandez		Allowed values to write:
869e7649fSLucas Segarra Fernandez		========================
969e7649fSLucas Segarra Fernandez		* 0: disable telemetry
1069e7649fSLucas Segarra Fernandez		* 1: enable telemetry
1169e7649fSLucas Segarra Fernandez		* 2, 3, 4: enable telemetry and calculate minimum, maximum
1269e7649fSLucas Segarra Fernandez		  and average for each counter over 2, 3 or 4 samples
1369e7649fSLucas Segarra Fernandez
1469e7649fSLucas Segarra Fernandez		Returned values:
1569e7649fSLucas Segarra Fernandez		================
1669e7649fSLucas Segarra Fernandez		* 1-4: telemetry is enabled and running
1769e7649fSLucas Segarra Fernandez		* 0: telemetry is disabled
1869e7649fSLucas Segarra Fernandez
1969e7649fSLucas Segarra Fernandez		Example.
2069e7649fSLucas Segarra Fernandez
2169e7649fSLucas Segarra Fernandez		Writing '3' to this file starts the collection of
2269e7649fSLucas Segarra Fernandez		telemetry metrics. Samples are collected every second and
2369e7649fSLucas Segarra Fernandez		stored in a circular buffer of size 3. These values are then
2469e7649fSLucas Segarra Fernandez		used to calculate the minimum, maximum and average for each
2569e7649fSLucas Segarra Fernandez		counter. After enabling, counters can be retrieved through
2669e7649fSLucas Segarra Fernandez		the ``device_data`` file::
2769e7649fSLucas Segarra Fernandez
2869e7649fSLucas Segarra Fernandez		  echo 3 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
2969e7649fSLucas Segarra Fernandez
3069e7649fSLucas Segarra Fernandez		Writing '0' to this file stops the collection of telemetry
3169e7649fSLucas Segarra Fernandez		metrics::
3269e7649fSLucas Segarra Fernandez
3369e7649fSLucas Segarra Fernandez		  echo 0 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
3469e7649fSLucas Segarra Fernandez
3569e7649fSLucas Segarra Fernandez		This attribute is only available for qat_4xxx devices.
3669e7649fSLucas Segarra Fernandez
3769e7649fSLucas Segarra FernandezWhat:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/device_data
3869e7649fSLucas Segarra FernandezDate:		March 2024
3969e7649fSLucas Segarra FernandezKernelVersion:	6.8
4069e7649fSLucas Segarra FernandezContact:	qat-linux@intel.com
4169e7649fSLucas Segarra FernandezDescription:	(RO) Reports device telemetry counters.
4269e7649fSLucas Segarra Fernandez		Reads report metrics about performance and utilization of
4369e7649fSLucas Segarra Fernandez		a QAT device:
4469e7649fSLucas Segarra Fernandez
4569e7649fSLucas Segarra Fernandez		=======================	========================================
4669e7649fSLucas Segarra Fernandez		Field			Description
4769e7649fSLucas Segarra Fernandez		=======================	========================================
4869e7649fSLucas Segarra Fernandez		sample_cnt		number of acquisitions of telemetry data
4969e7649fSLucas Segarra Fernandez					from the device. Reads are performed
5069e7649fSLucas Segarra Fernandez					every 1000 ms.
5169e7649fSLucas Segarra Fernandez		pci_trans_cnt		number of PCIe partial transactions
5269e7649fSLucas Segarra Fernandez		max_rd_lat		maximum logged read latency [ns] (could
5369e7649fSLucas Segarra Fernandez					be any read operation)
5469e7649fSLucas Segarra Fernandez		rd_lat_acc_avg		average read latency [ns]
5569e7649fSLucas Segarra Fernandez		max_gp_lat		max get to put latency [ns] (only takes
5669e7649fSLucas Segarra Fernandez					samples for AE0)
5769e7649fSLucas Segarra Fernandez		gp_lat_acc_avg		average get to put latency [ns]
5869e7649fSLucas Segarra Fernandez		bw_in			PCIe, write bandwidth [Mbps]
5969e7649fSLucas Segarra Fernandez		bw_out			PCIe, read bandwidth [Mbps]
6069e7649fSLucas Segarra Fernandez		at_page_req_lat_avg	Address Translator(AT), average page
6169e7649fSLucas Segarra Fernandez					request latency [ns]
6269e7649fSLucas Segarra Fernandez		at_trans_lat_avg	AT, average page translation latency [ns]
6369e7649fSLucas Segarra Fernandez		at_max_tlb_used		AT, maximum uTLB used
6469e7649fSLucas Segarra Fernandez		util_cpr<N>		utilization of Compression slice N [%]
6569e7649fSLucas Segarra Fernandez		exec_cpr<N>		execution count of Compression slice N
6669e7649fSLucas Segarra Fernandez		util_xlt<N>		utilization of Translator slice N [%]
6769e7649fSLucas Segarra Fernandez		exec_xlt<N>		execution count of Translator slice N
6869e7649fSLucas Segarra Fernandez		util_dcpr<N>		utilization of Decompression slice N [%]
6969e7649fSLucas Segarra Fernandez		exec_dcpr<N>		execution count of Decompression slice N
7069e7649fSLucas Segarra Fernandez		util_pke<N>		utilization of PKE N [%]
7169e7649fSLucas Segarra Fernandez		exec_pke<N>		execution count of PKE N
7269e7649fSLucas Segarra Fernandez		util_ucs<N>		utilization of UCS slice N [%]
7369e7649fSLucas Segarra Fernandez		exec_ucs<N>		execution count of UCS slice N
7469e7649fSLucas Segarra Fernandez		util_wat<N>		utilization of Wireless Authentication
7569e7649fSLucas Segarra Fernandez					slice N [%]
7669e7649fSLucas Segarra Fernandez		exec_wat<N>		execution count of Wireless Authentication
7769e7649fSLucas Segarra Fernandez					slice N
7869e7649fSLucas Segarra Fernandez		util_wcp<N>		utilization of Wireless Cipher slice N [%]
7969e7649fSLucas Segarra Fernandez		exec_wcp<N>		execution count of Wireless Cipher slice N
8069e7649fSLucas Segarra Fernandez		util_cph<N>		utilization of Cipher slice N [%]
8169e7649fSLucas Segarra Fernandez		exec_cph<N>		execution count of Cipher slice N
8269e7649fSLucas Segarra Fernandez		util_ath<N>		utilization of Authentication slice N [%]
8369e7649fSLucas Segarra Fernandez		exec_ath<N>		execution count of Authentication slice N
8469e7649fSLucas Segarra Fernandez		=======================	========================================
8569e7649fSLucas Segarra Fernandez
8669e7649fSLucas Segarra Fernandez		The telemetry report file can be read with the following command::
8769e7649fSLucas Segarra Fernandez
8869e7649fSLucas Segarra Fernandez		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/device_data
8969e7649fSLucas Segarra Fernandez
9069e7649fSLucas Segarra Fernandez		If ``control`` is set to 1, only the current values of the
9169e7649fSLucas Segarra Fernandez		counters are displayed::
9269e7649fSLucas Segarra Fernandez
9369e7649fSLucas Segarra Fernandez		  <counter_name> <current>
9469e7649fSLucas Segarra Fernandez
9569e7649fSLucas Segarra Fernandez		If ``control`` is 2, 3 or 4, counters are displayed in the
9669e7649fSLucas Segarra Fernandez		following format::
9769e7649fSLucas Segarra Fernandez
9869e7649fSLucas Segarra Fernandez		  <counter_name> <current> <min> <max> <avg>
9969e7649fSLucas Segarra Fernandez
10069e7649fSLucas Segarra Fernandez		If a device lacks of a specific accelerator, the corresponding
10169e7649fSLucas Segarra Fernandez		attribute is not reported.
10269e7649fSLucas Segarra Fernandez
10369e7649fSLucas Segarra Fernandez		This attribute is only available for qat_4xxx devices.
104*eb527077SLucas Segarra Fernandez
105*eb527077SLucas Segarra FernandezWhat:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/rp_<A/B/C/D>_data
106*eb527077SLucas Segarra FernandezDate:		March 2024
107*eb527077SLucas Segarra FernandezKernelVersion:	6.8
108*eb527077SLucas Segarra FernandezContact:	qat-linux@intel.com
109*eb527077SLucas Segarra FernandezDescription:	(RW) Selects up to 4 Ring Pairs (RP) to monitor, one per file,
110*eb527077SLucas Segarra Fernandez		and report telemetry counters related to each.
111*eb527077SLucas Segarra Fernandez
112*eb527077SLucas Segarra Fernandez		Allowed values to write:
113*eb527077SLucas Segarra Fernandez		========================
114*eb527077SLucas Segarra Fernandez		* 0 to ``<num_rps - 1>``:
115*eb527077SLucas Segarra Fernandez		  Ring pair to be monitored. The value of ``num_rps`` can be
116*eb527077SLucas Segarra Fernandez		  retrieved through ``/sys/bus/pci/devices/<BDF>/qat/num_rps``.
117*eb527077SLucas Segarra Fernandez		  See Documentation/ABI/testing/sysfs-driver-qat.
118*eb527077SLucas Segarra Fernandez
119*eb527077SLucas Segarra Fernandez		Reads report metrics about performance and utilization of
120*eb527077SLucas Segarra Fernandez		the selected RP:
121*eb527077SLucas Segarra Fernandez
122*eb527077SLucas Segarra Fernandez		=======================	========================================
123*eb527077SLucas Segarra Fernandez		Field			Description
124*eb527077SLucas Segarra Fernandez		=======================	========================================
125*eb527077SLucas Segarra Fernandez		sample_cnt		number of acquisitions of telemetry data
126*eb527077SLucas Segarra Fernandez					from the device. Reads are performed
127*eb527077SLucas Segarra Fernandez					every 1000 ms
128*eb527077SLucas Segarra Fernandez		rp_num			RP number associated with slot <A/B/C/D>
129*eb527077SLucas Segarra Fernandez		service_type		service associated to the RP
130*eb527077SLucas Segarra Fernandez		pci_trans_cnt		number of PCIe partial transactions
131*eb527077SLucas Segarra Fernandez		gp_lat_acc_avg		average get to put latency [ns]
132*eb527077SLucas Segarra Fernandez		bw_in			PCIe, write bandwidth [Mbps]
133*eb527077SLucas Segarra Fernandez		bw_out			PCIe, read bandwidth [Mbps]
134*eb527077SLucas Segarra Fernandez		at_glob_devtlb_hit	Message descriptor DevTLB hit rate
135*eb527077SLucas Segarra Fernandez		at_glob_devtlb_miss	Message descriptor DevTLB miss rate
136*eb527077SLucas Segarra Fernandez		tl_at_payld_devtlb_hit	Payload DevTLB hit rate
137*eb527077SLucas Segarra Fernandez		tl_at_payld_devtlb_miss	Payload DevTLB miss rate
138*eb527077SLucas Segarra Fernandez		======================= ========================================
139*eb527077SLucas Segarra Fernandez
140*eb527077SLucas Segarra Fernandez		Example.
141*eb527077SLucas Segarra Fernandez
142*eb527077SLucas Segarra Fernandez		Writing the value '32' to the file ``rp_C_data`` starts the
143*eb527077SLucas Segarra Fernandez		collection of telemetry metrics for ring pair 32::
144*eb527077SLucas Segarra Fernandez
145*eb527077SLucas Segarra Fernandez		  echo 32 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
146*eb527077SLucas Segarra Fernandez
147*eb527077SLucas Segarra Fernandez		Once a ring pair is selected, statistics can be read accessing
148*eb527077SLucas Segarra Fernandez		the file::
149*eb527077SLucas Segarra Fernandez
150*eb527077SLucas Segarra Fernandez		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
151*eb527077SLucas Segarra Fernandez
152*eb527077SLucas Segarra Fernandez		If ``control`` is set to 1, only the current values of the
153*eb527077SLucas Segarra Fernandez		counters are displayed::
154*eb527077SLucas Segarra Fernandez
155*eb527077SLucas Segarra Fernandez		  <counter_name> <current>
156*eb527077SLucas Segarra Fernandez
157*eb527077SLucas Segarra Fernandez		If ``control`` is 2, 3 or 4, counters are displayed in the
158*eb527077SLucas Segarra Fernandez		following format::
159*eb527077SLucas Segarra Fernandez
160*eb527077SLucas Segarra Fernandez		  <counter_name> <current> <min> <max> <avg>
161*eb527077SLucas Segarra Fernandez
162*eb527077SLucas Segarra Fernandez
163*eb527077SLucas Segarra Fernandez		On QAT GEN4 devices there are 64 RPs on a PF, so the allowed
164*eb527077SLucas Segarra Fernandez		values are 0..63. This number is absolute to the device.
165*eb527077SLucas Segarra Fernandez		If Virtual Functions (VF) are used, the ring pair number can
166*eb527077SLucas Segarra Fernandez		be derived from the Bus, Device, Function of the VF:
167*eb527077SLucas Segarra Fernandez
168*eb527077SLucas Segarra Fernandez		============ ====== ====== ====== ======
169*eb527077SLucas Segarra Fernandez		PCI BDF/VF   RP0    RP1    RP2    RP3
170*eb527077SLucas Segarra Fernandez		============ ====== ====== ====== ======
171*eb527077SLucas Segarra Fernandez		0000:6b:0.1  RP  0  RP  1  RP  2  RP  3
172*eb527077SLucas Segarra Fernandez		0000:6b:0.2  RP  4  RP  5  RP  6  RP  7
173*eb527077SLucas Segarra Fernandez		0000:6b:0.3  RP  8  RP  9  RP 10  RP 11
174*eb527077SLucas Segarra Fernandez		0000:6b:0.4  RP 12  RP 13  RP 14  RP 15
175*eb527077SLucas Segarra Fernandez		0000:6b:0.5  RP 16  RP 17  RP 18  RP 19
176*eb527077SLucas Segarra Fernandez		0000:6b:0.6  RP 20  RP 21  RP 22  RP 23
177*eb527077SLucas Segarra Fernandez		0000:6b:0.7  RP 24  RP 25  RP 26  RP 27
178*eb527077SLucas Segarra Fernandez		0000:6b:1.0  RP 28  RP 29  RP 30  RP 31
179*eb527077SLucas Segarra Fernandez		0000:6b:1.1  RP 32  RP 33  RP 34  RP 35
180*eb527077SLucas Segarra Fernandez		0000:6b:1.2  RP 36  RP 37  RP 38  RP 39
181*eb527077SLucas Segarra Fernandez		0000:6b:1.3  RP 40  RP 41  RP 42  RP 43
182*eb527077SLucas Segarra Fernandez		0000:6b:1.4  RP 44  RP 45  RP 46  RP 47
183*eb527077SLucas Segarra Fernandez		0000:6b:1.5  RP 48  RP 49  RP 50  RP 51
184*eb527077SLucas Segarra Fernandez		0000:6b:1.6  RP 52  RP 53  RP 54  RP 55
185*eb527077SLucas Segarra Fernandez		0000:6b:1.7  RP 56  RP 57  RP 58  RP 59
186*eb527077SLucas Segarra Fernandez		0000:6b:2.0  RP 60  RP 61  RP 62  RP 63
187*eb527077SLucas Segarra Fernandez		============ ====== ====== ====== ======
188*eb527077SLucas Segarra Fernandez
189*eb527077SLucas Segarra Fernandez		The mapping is only valid for the BDFs of VFs on the host.
190*eb527077SLucas Segarra Fernandez
191*eb527077SLucas Segarra Fernandez
192*eb527077SLucas Segarra Fernandez		The service provided on a ring-pair varies depending on the
193*eb527077SLucas Segarra Fernandez		configuration. The configuration for a given device can be
194*eb527077SLucas Segarra Fernandez		queried and set using ``cfg_services``.
195*eb527077SLucas Segarra Fernandez		See Documentation/ABI/testing/sysfs-driver-qat for details.
196*eb527077SLucas Segarra Fernandez
197*eb527077SLucas Segarra Fernandez		The following table reports how ring pairs are mapped to VFs
198*eb527077SLucas Segarra Fernandez		on the PF 0000:6b:0.0 configured for `sym;asym` or `asym;sym`:
199*eb527077SLucas Segarra Fernandez
200*eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
201*eb527077SLucas Segarra Fernandez		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
202*eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
203*eb527077SLucas Segarra Fernandez		0000:6b:0.1 RP 0 asym    RP 1 sym    RP 2 asym    RP 3 sym
204*eb527077SLucas Segarra Fernandez		0000:6b:0.2 RP 4 asym    RP 5 sym    RP 6 asym    RP 7 sym
205*eb527077SLucas Segarra Fernandez		0000:6b:0.3 RP 8 asym    RP 9 sym    RP10 asym    RP11 sym
206*eb527077SLucas Segarra Fernandez		...         ...          ...         ...          ...
207*eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
208*eb527077SLucas Segarra Fernandez
209*eb527077SLucas Segarra Fernandez		All VFs follow the same pattern.
210*eb527077SLucas Segarra Fernandez
211*eb527077SLucas Segarra Fernandez
212*eb527077SLucas Segarra Fernandez		The following table reports how ring pairs are mapped to VFs on
213*eb527077SLucas Segarra Fernandez		the PF 0000:6b:0.0 configured for `dc`:
214*eb527077SLucas Segarra Fernandez
215*eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
216*eb527077SLucas Segarra Fernandez		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
217*eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
218*eb527077SLucas Segarra Fernandez		0000:6b:0.1 RP 0 dc      RP 1 dc     RP 2 dc      RP 3 dc
219*eb527077SLucas Segarra Fernandez		0000:6b:0.2 RP 4 dc      RP 5 dc     RP 6 dc      RP 7 dc
220*eb527077SLucas Segarra Fernandez		0000:6b:0.3 RP 8 dc      RP 9 dc     RP10 dc      RP11 dc
221*eb527077SLucas Segarra Fernandez		...         ...          ...         ...          ...
222*eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
223*eb527077SLucas Segarra Fernandez
224*eb527077SLucas Segarra Fernandez		The mapping of a RP to a service can be retrieved using
225*eb527077SLucas Segarra Fernandez		``rp2srv`` from sysfs.
226*eb527077SLucas Segarra Fernandez		See Documentation/ABI/testing/sysfs-driver-qat for details.
227*eb527077SLucas Segarra Fernandez
228*eb527077SLucas Segarra Fernandez		This attribute is only available for qat_4xxx devices.
229