xref: /linux/Documentation/ABI/testing/debugfs-driver-qat_telemetry (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
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
35f9c4923cSVijay Sundar Selvamani		This attribute is only available for qat_4xxx and qat_6xxx 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]
609ea349e4SVijay Sundar Selvamani		re_acc_avg		average ring empty time [ns]
6169e7649fSLucas Segarra Fernandez		at_page_req_lat_avg	Address Translator(AT), average page
6269e7649fSLucas Segarra Fernandez					request latency [ns]
6369e7649fSLucas Segarra Fernandez		at_trans_lat_avg	AT, average page translation latency [ns]
6469e7649fSLucas Segarra Fernandez		at_max_tlb_used		AT, maximum uTLB used
6569e7649fSLucas Segarra Fernandez		util_cpr<N>		utilization of Compression slice N [%]
6669e7649fSLucas Segarra Fernandez		exec_cpr<N>		execution count of Compression slice N
6769e7649fSLucas Segarra Fernandez		util_xlt<N>		utilization of Translator slice N [%]
6869e7649fSLucas Segarra Fernandez		exec_xlt<N>		execution count of Translator slice N
6969e7649fSLucas Segarra Fernandez		util_dcpr<N>		utilization of Decompression slice N [%]
7069e7649fSLucas Segarra Fernandez		exec_dcpr<N>		execution count of Decompression slice N
71f9c4923cSVijay Sundar Selvamani		util_cnv<N>		utilization of Compression and verify slice N [%]
72f9c4923cSVijay Sundar Selvamani		exec_cnv<N>		execution count of Compression and verify slice N
73f9c4923cSVijay Sundar Selvamani		util_dcprz<N>		utilization of Decompression slice N [%]
74f9c4923cSVijay Sundar Selvamani		exec_dcprz<N>		execution count of Decompression slice N
7569e7649fSLucas Segarra Fernandez		util_pke<N>		utilization of PKE N [%]
7669e7649fSLucas Segarra Fernandez		exec_pke<N>		execution count of PKE N
7769e7649fSLucas Segarra Fernandez		util_ucs<N>		utilization of UCS slice N [%]
7869e7649fSLucas Segarra Fernandez		exec_ucs<N>		execution count of UCS slice N
7969e7649fSLucas Segarra Fernandez		util_wat<N>		utilization of Wireless Authentication
8069e7649fSLucas Segarra Fernandez					slice N [%]
8169e7649fSLucas Segarra Fernandez		exec_wat<N>		execution count of Wireless Authentication
8269e7649fSLucas Segarra Fernandez					slice N
8369e7649fSLucas Segarra Fernandez		util_wcp<N>		utilization of Wireless Cipher slice N [%]
8469e7649fSLucas Segarra Fernandez		exec_wcp<N>		execution count of Wireless Cipher slice N
8569e7649fSLucas Segarra Fernandez		util_cph<N>		utilization of Cipher slice N [%]
8669e7649fSLucas Segarra Fernandez		exec_cph<N>		execution count of Cipher slice N
8769e7649fSLucas Segarra Fernandez		util_ath<N>		utilization of Authentication slice N [%]
8869e7649fSLucas Segarra Fernandez		exec_ath<N>		execution count of Authentication slice N
89*3ed63344SVijay Sundar Selvamani		cmdq_wait_cnv<N>	wait time for cmdq N to get Compression and verify
90*3ed63344SVijay Sundar Selvamani					slice ownership
91*3ed63344SVijay Sundar Selvamani		cmdq_exec_cnv<N>	Compression and verify slice execution time while
92*3ed63344SVijay Sundar Selvamani					owned by cmdq N
93*3ed63344SVijay Sundar Selvamani		cmdq_drain_cnv<N>	time taken for cmdq N to release Compression and
94*3ed63344SVijay Sundar Selvamani					verify slice ownership
95*3ed63344SVijay Sundar Selvamani		cmdq_wait_dcprz<N>	wait time for cmdq N to get Decompression
96*3ed63344SVijay Sundar Selvamani					slice N ownership
97*3ed63344SVijay Sundar Selvamani		cmdq_exec_dcprz<N>	Decompression slice execution time while
98*3ed63344SVijay Sundar Selvamani					owned by cmdq N
99*3ed63344SVijay Sundar Selvamani		cmdq_drain_dcprz<N>	time taken for cmdq N to release Decompression
100*3ed63344SVijay Sundar Selvamani					slice ownership
101*3ed63344SVijay Sundar Selvamani		cmdq_wait_pke<N>	wait time for cmdq N to get PKE slice ownership
102*3ed63344SVijay Sundar Selvamani		cmdq_exec_pke<N>	PKE slice execution time while owned by cmdq N
103*3ed63344SVijay Sundar Selvamani		cmdq_drain_pke<N>	time taken for cmdq N to release PKE slice
104*3ed63344SVijay Sundar Selvamani					ownership
105*3ed63344SVijay Sundar Selvamani		cmdq_wait_ucs<N>	wait time for cmdq N to get UCS slice ownership
106*3ed63344SVijay Sundar Selvamani		cmdq_exec_ucs<N>	UCS slice execution time while owned by cmdq N
107*3ed63344SVijay Sundar Selvamani		cmdq_drain_ucs<N>	time taken for cmdq N to release UCS slice
108*3ed63344SVijay Sundar Selvamani					ownership
109*3ed63344SVijay Sundar Selvamani		cmdq_wait_ath<N>	wait time for cmdq N to get Authentication slice
110*3ed63344SVijay Sundar Selvamani					ownership
111*3ed63344SVijay Sundar Selvamani		cmdq_exec_ath<N>	Authentication slice execution time while owned
112*3ed63344SVijay Sundar Selvamani					by cmdq N
113*3ed63344SVijay Sundar Selvamani		cmdq_drain_ath<N>	time taken for cmdq N to release Authentication
114*3ed63344SVijay Sundar Selvamani					slice ownership
11569e7649fSLucas Segarra Fernandez		=======================	========================================
11669e7649fSLucas Segarra Fernandez
11769e7649fSLucas Segarra Fernandez		The telemetry report file can be read with the following command::
11869e7649fSLucas Segarra Fernandez
11969e7649fSLucas Segarra Fernandez		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/device_data
12069e7649fSLucas Segarra Fernandez
12169e7649fSLucas Segarra Fernandez		If ``control`` is set to 1, only the current values of the
12269e7649fSLucas Segarra Fernandez		counters are displayed::
12369e7649fSLucas Segarra Fernandez
12469e7649fSLucas Segarra Fernandez		  <counter_name> <current>
12569e7649fSLucas Segarra Fernandez
12669e7649fSLucas Segarra Fernandez		If ``control`` is 2, 3 or 4, counters are displayed in the
12769e7649fSLucas Segarra Fernandez		following format::
12869e7649fSLucas Segarra Fernandez
12969e7649fSLucas Segarra Fernandez		  <counter_name> <current> <min> <max> <avg>
13069e7649fSLucas Segarra Fernandez
13169e7649fSLucas Segarra Fernandez		If a device lacks of a specific accelerator, the corresponding
13269e7649fSLucas Segarra Fernandez		attribute is not reported.
13369e7649fSLucas Segarra Fernandez
134f9c4923cSVijay Sundar Selvamani		This attribute is only available for qat_4xxx and qat_6xxx devices.
135eb527077SLucas Segarra Fernandez
136eb527077SLucas Segarra FernandezWhat:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/rp_<A/B/C/D>_data
137eb527077SLucas Segarra FernandezDate:		March 2024
138eb527077SLucas Segarra FernandezKernelVersion:	6.8
139eb527077SLucas Segarra FernandezContact:	qat-linux@intel.com
140eb527077SLucas Segarra FernandezDescription:	(RW) Selects up to 4 Ring Pairs (RP) to monitor, one per file,
141eb527077SLucas Segarra Fernandez		and report telemetry counters related to each.
142eb527077SLucas Segarra Fernandez
143eb527077SLucas Segarra Fernandez		Allowed values to write:
144eb527077SLucas Segarra Fernandez		========================
145eb527077SLucas Segarra Fernandez		* 0 to ``<num_rps - 1>``:
146eb527077SLucas Segarra Fernandez		  Ring pair to be monitored. The value of ``num_rps`` can be
147eb527077SLucas Segarra Fernandez		  retrieved through ``/sys/bus/pci/devices/<BDF>/qat/num_rps``.
148eb527077SLucas Segarra Fernandez		  See Documentation/ABI/testing/sysfs-driver-qat.
149eb527077SLucas Segarra Fernandez
150eb527077SLucas Segarra Fernandez		Reads report metrics about performance and utilization of
151eb527077SLucas Segarra Fernandez		the selected RP:
152eb527077SLucas Segarra Fernandez
153eb527077SLucas Segarra Fernandez		=======================	========================================
154eb527077SLucas Segarra Fernandez		Field			Description
155eb527077SLucas Segarra Fernandez		=======================	========================================
156eb527077SLucas Segarra Fernandez		sample_cnt		number of acquisitions of telemetry data
157eb527077SLucas Segarra Fernandez					from the device. Reads are performed
158eb527077SLucas Segarra Fernandez					every 1000 ms
159eb527077SLucas Segarra Fernandez		rp_num			RP number associated with slot <A/B/C/D>
160eb527077SLucas Segarra Fernandez		service_type		service associated to the RP
161eb527077SLucas Segarra Fernandez		pci_trans_cnt		number of PCIe partial transactions
162eb527077SLucas Segarra Fernandez		gp_lat_acc_avg		average get to put latency [ns]
163eb527077SLucas Segarra Fernandez		bw_in			PCIe, write bandwidth [Mbps]
164eb527077SLucas Segarra Fernandez		bw_out			PCIe, read bandwidth [Mbps]
165eb527077SLucas Segarra Fernandez		at_glob_devtlb_hit	Message descriptor DevTLB hit rate
166eb527077SLucas Segarra Fernandez		at_glob_devtlb_miss	Message descriptor DevTLB miss rate
167eb527077SLucas Segarra Fernandez		tl_at_payld_devtlb_hit	Payload DevTLB hit rate
168eb527077SLucas Segarra Fernandez		tl_at_payld_devtlb_miss	Payload DevTLB miss rate
169eb527077SLucas Segarra Fernandez		======================= ========================================
170eb527077SLucas Segarra Fernandez
171eb527077SLucas Segarra Fernandez		Example.
172eb527077SLucas Segarra Fernandez
173eb527077SLucas Segarra Fernandez		Writing the value '32' to the file ``rp_C_data`` starts the
174eb527077SLucas Segarra Fernandez		collection of telemetry metrics for ring pair 32::
175eb527077SLucas Segarra Fernandez
176eb527077SLucas Segarra Fernandez		  echo 32 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
177eb527077SLucas Segarra Fernandez
178eb527077SLucas Segarra Fernandez		Once a ring pair is selected, statistics can be read accessing
179eb527077SLucas Segarra Fernandez		the file::
180eb527077SLucas Segarra Fernandez
181eb527077SLucas Segarra Fernandez		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
182eb527077SLucas Segarra Fernandez
183eb527077SLucas Segarra Fernandez		If ``control`` is set to 1, only the current values of the
184eb527077SLucas Segarra Fernandez		counters are displayed::
185eb527077SLucas Segarra Fernandez
186eb527077SLucas Segarra Fernandez		  <counter_name> <current>
187eb527077SLucas Segarra Fernandez
188eb527077SLucas Segarra Fernandez		If ``control`` is 2, 3 or 4, counters are displayed in the
189eb527077SLucas Segarra Fernandez		following format::
190eb527077SLucas Segarra Fernandez
191eb527077SLucas Segarra Fernandez		  <counter_name> <current> <min> <max> <avg>
192eb527077SLucas Segarra Fernandez
193eb527077SLucas Segarra Fernandez
194eb527077SLucas Segarra Fernandez		On QAT GEN4 devices there are 64 RPs on a PF, so the allowed
195eb527077SLucas Segarra Fernandez		values are 0..63. This number is absolute to the device.
196eb527077SLucas Segarra Fernandez		If Virtual Functions (VF) are used, the ring pair number can
197eb527077SLucas Segarra Fernandez		be derived from the Bus, Device, Function of the VF:
198eb527077SLucas Segarra Fernandez
199eb527077SLucas Segarra Fernandez		============ ====== ====== ====== ======
200eb527077SLucas Segarra Fernandez		PCI BDF/VF   RP0    RP1    RP2    RP3
201eb527077SLucas Segarra Fernandez		============ ====== ====== ====== ======
202eb527077SLucas Segarra Fernandez		0000:6b:0.1  RP  0  RP  1  RP  2  RP  3
203eb527077SLucas Segarra Fernandez		0000:6b:0.2  RP  4  RP  5  RP  6  RP  7
204eb527077SLucas Segarra Fernandez		0000:6b:0.3  RP  8  RP  9  RP 10  RP 11
205eb527077SLucas Segarra Fernandez		0000:6b:0.4  RP 12  RP 13  RP 14  RP 15
206eb527077SLucas Segarra Fernandez		0000:6b:0.5  RP 16  RP 17  RP 18  RP 19
207eb527077SLucas Segarra Fernandez		0000:6b:0.6  RP 20  RP 21  RP 22  RP 23
208eb527077SLucas Segarra Fernandez		0000:6b:0.7  RP 24  RP 25  RP 26  RP 27
209eb527077SLucas Segarra Fernandez		0000:6b:1.0  RP 28  RP 29  RP 30  RP 31
210eb527077SLucas Segarra Fernandez		0000:6b:1.1  RP 32  RP 33  RP 34  RP 35
211eb527077SLucas Segarra Fernandez		0000:6b:1.2  RP 36  RP 37  RP 38  RP 39
212eb527077SLucas Segarra Fernandez		0000:6b:1.3  RP 40  RP 41  RP 42  RP 43
213eb527077SLucas Segarra Fernandez		0000:6b:1.4  RP 44  RP 45  RP 46  RP 47
214eb527077SLucas Segarra Fernandez		0000:6b:1.5  RP 48  RP 49  RP 50  RP 51
215eb527077SLucas Segarra Fernandez		0000:6b:1.6  RP 52  RP 53  RP 54  RP 55
216eb527077SLucas Segarra Fernandez		0000:6b:1.7  RP 56  RP 57  RP 58  RP 59
217eb527077SLucas Segarra Fernandez		0000:6b:2.0  RP 60  RP 61  RP 62  RP 63
218eb527077SLucas Segarra Fernandez		============ ====== ====== ====== ======
219eb527077SLucas Segarra Fernandez
220eb527077SLucas Segarra Fernandez		The mapping is only valid for the BDFs of VFs on the host.
221eb527077SLucas Segarra Fernandez
222eb527077SLucas Segarra Fernandez
223eb527077SLucas Segarra Fernandez		The service provided on a ring-pair varies depending on the
224eb527077SLucas Segarra Fernandez		configuration. The configuration for a given device can be
225eb527077SLucas Segarra Fernandez		queried and set using ``cfg_services``.
226eb527077SLucas Segarra Fernandez		See Documentation/ABI/testing/sysfs-driver-qat for details.
227eb527077SLucas Segarra Fernandez
228eb527077SLucas Segarra Fernandez		The following table reports how ring pairs are mapped to VFs
229eb527077SLucas Segarra Fernandez		on the PF 0000:6b:0.0 configured for `sym;asym` or `asym;sym`:
230eb527077SLucas Segarra Fernandez
231eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
232eb527077SLucas Segarra Fernandez		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
233eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
234eb527077SLucas Segarra Fernandez		0000:6b:0.1 RP 0 asym    RP 1 sym    RP 2 asym    RP 3 sym
235eb527077SLucas Segarra Fernandez		0000:6b:0.2 RP 4 asym    RP 5 sym    RP 6 asym    RP 7 sym
236eb527077SLucas Segarra Fernandez		0000:6b:0.3 RP 8 asym    RP 9 sym    RP10 asym    RP11 sym
237eb527077SLucas Segarra Fernandez		...         ...          ...         ...          ...
238eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
239eb527077SLucas Segarra Fernandez
240eb527077SLucas Segarra Fernandez		All VFs follow the same pattern.
241eb527077SLucas Segarra Fernandez
242eb527077SLucas Segarra Fernandez
243eb527077SLucas Segarra Fernandez		The following table reports how ring pairs are mapped to VFs on
244eb527077SLucas Segarra Fernandez		the PF 0000:6b:0.0 configured for `dc`:
245eb527077SLucas Segarra Fernandez
246eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
247eb527077SLucas Segarra Fernandez		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
248eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
249eb527077SLucas Segarra Fernandez		0000:6b:0.1 RP 0 dc      RP 1 dc     RP 2 dc      RP 3 dc
250eb527077SLucas Segarra Fernandez		0000:6b:0.2 RP 4 dc      RP 5 dc     RP 6 dc      RP 7 dc
251eb527077SLucas Segarra Fernandez		0000:6b:0.3 RP 8 dc      RP 9 dc     RP10 dc      RP11 dc
252eb527077SLucas Segarra Fernandez		...         ...          ...         ...          ...
253eb527077SLucas Segarra Fernandez		=========== ============ =========== ============ ===========
254eb527077SLucas Segarra Fernandez
255eb527077SLucas Segarra Fernandez		The mapping of a RP to a service can be retrieved using
256eb527077SLucas Segarra Fernandez		``rp2srv`` from sysfs.
257eb527077SLucas Segarra Fernandez		See Documentation/ABI/testing/sysfs-driver-qat for details.
258eb527077SLucas Segarra Fernandez
259f9c4923cSVijay Sundar Selvamani		This attribute is only available for qat_4xxx and qat_6xxx devices.
260