229 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| What:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/control
 | |
| Date:		March 2024
 | |
| KernelVersion:	6.8
 | |
| Contact:	qat-linux@intel.com
 | |
| Description:	(RW) Enables/disables the reporting of telemetry metrics.
 | |
| 
 | |
| 		Allowed values to write:
 | |
| 		========================
 | |
| 		* 0: disable telemetry
 | |
| 		* 1: enable telemetry
 | |
| 		* 2, 3, 4: enable telemetry and calculate minimum, maximum
 | |
| 		  and average for each counter over 2, 3 or 4 samples
 | |
| 
 | |
| 		Returned values:
 | |
| 		================
 | |
| 		* 1-4: telemetry is enabled and running
 | |
| 		* 0: telemetry is disabled
 | |
| 
 | |
| 		Example.
 | |
| 
 | |
| 		Writing '3' to this file starts the collection of
 | |
| 		telemetry metrics. Samples are collected every second and
 | |
| 		stored in a circular buffer of size 3. These values are then
 | |
| 		used to calculate the minimum, maximum and average for each
 | |
| 		counter. After enabling, counters can be retrieved through
 | |
| 		the ``device_data`` file::
 | |
| 
 | |
| 		  echo 3 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
 | |
| 
 | |
| 		Writing '0' to this file stops the collection of telemetry
 | |
| 		metrics::
 | |
| 
 | |
| 		  echo 0 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
 | |
| 
 | |
| 		This attribute is only available for qat_4xxx devices.
 | |
| 
 | |
| What:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/device_data
 | |
| Date:		March 2024
 | |
| KernelVersion:	6.8
 | |
| Contact:	qat-linux@intel.com
 | |
| Description:	(RO) Reports device telemetry counters.
 | |
| 		Reads report metrics about performance and utilization of
 | |
| 		a QAT device:
 | |
| 
 | |
| 		=======================	========================================
 | |
| 		Field			Description
 | |
| 		=======================	========================================
 | |
| 		sample_cnt		number of acquisitions of telemetry data
 | |
| 					from the device. Reads are performed
 | |
| 					every 1000 ms.
 | |
| 		pci_trans_cnt		number of PCIe partial transactions
 | |
| 		max_rd_lat		maximum logged read latency [ns] (could
 | |
| 					be any read operation)
 | |
| 		rd_lat_acc_avg		average read latency [ns]
 | |
| 		max_gp_lat		max get to put latency [ns] (only takes
 | |
| 					samples for AE0)
 | |
| 		gp_lat_acc_avg		average get to put latency [ns]
 | |
| 		bw_in			PCIe, write bandwidth [Mbps]
 | |
| 		bw_out			PCIe, read bandwidth [Mbps]
 | |
| 		at_page_req_lat_avg	Address Translator(AT), average page
 | |
| 					request latency [ns]
 | |
| 		at_trans_lat_avg	AT, average page translation latency [ns]
 | |
| 		at_max_tlb_used		AT, maximum uTLB used
 | |
| 		util_cpr<N>		utilization of Compression slice N [%]
 | |
| 		exec_cpr<N>		execution count of Compression slice N
 | |
| 		util_xlt<N>		utilization of Translator slice N [%]
 | |
| 		exec_xlt<N>		execution count of Translator slice N
 | |
| 		util_dcpr<N>		utilization of Decompression slice N [%]
 | |
| 		exec_dcpr<N>		execution count of Decompression slice N
 | |
| 		util_pke<N>		utilization of PKE N [%]
 | |
| 		exec_pke<N>		execution count of PKE N
 | |
| 		util_ucs<N>		utilization of UCS slice N [%]
 | |
| 		exec_ucs<N>		execution count of UCS slice N
 | |
| 		util_wat<N>		utilization of Wireless Authentication
 | |
| 					slice N [%]
 | |
| 		exec_wat<N>		execution count of Wireless Authentication
 | |
| 					slice N
 | |
| 		util_wcp<N>		utilization of Wireless Cipher slice N [%]
 | |
| 		exec_wcp<N>		execution count of Wireless Cipher slice N
 | |
| 		util_cph<N>		utilization of Cipher slice N [%]
 | |
| 		exec_cph<N>		execution count of Cipher slice N
 | |
| 		util_ath<N>		utilization of Authentication slice N [%]
 | |
| 		exec_ath<N>		execution count of Authentication slice N
 | |
| 		=======================	========================================
 | |
| 
 | |
| 		The telemetry report file can be read with the following command::
 | |
| 
 | |
| 		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/device_data
 | |
| 
 | |
| 		If ``control`` is set to 1, only the current values of the
 | |
| 		counters are displayed::
 | |
| 
 | |
| 		  <counter_name> <current>
 | |
| 
 | |
| 		If ``control`` is 2, 3 or 4, counters are displayed in the
 | |
| 		following format::
 | |
| 
 | |
| 		  <counter_name> <current> <min> <max> <avg>
 | |
| 
 | |
| 		If a device lacks of a specific accelerator, the corresponding
 | |
| 		attribute is not reported.
 | |
| 
 | |
| 		This attribute is only available for qat_4xxx devices.
 | |
| 
 | |
| What:		/sys/kernel/debug/qat_<device>_<BDF>/telemetry/rp_<A/B/C/D>_data
 | |
| Date:		March 2024
 | |
| KernelVersion:	6.8
 | |
| Contact:	qat-linux@intel.com
 | |
| Description:	(RW) Selects up to 4 Ring Pairs (RP) to monitor, one per file,
 | |
| 		and report telemetry counters related to each.
 | |
| 
 | |
| 		Allowed values to write:
 | |
| 		========================
 | |
| 		* 0 to ``<num_rps - 1>``:
 | |
| 		  Ring pair to be monitored. The value of ``num_rps`` can be
 | |
| 		  retrieved through ``/sys/bus/pci/devices/<BDF>/qat/num_rps``.
 | |
| 		  See Documentation/ABI/testing/sysfs-driver-qat.
 | |
| 
 | |
| 		Reads report metrics about performance and utilization of
 | |
| 		the selected RP:
 | |
| 
 | |
| 		=======================	========================================
 | |
| 		Field			Description
 | |
| 		=======================	========================================
 | |
| 		sample_cnt		number of acquisitions of telemetry data
 | |
| 					from the device. Reads are performed
 | |
| 					every 1000 ms
 | |
| 		rp_num			RP number associated with slot <A/B/C/D>
 | |
| 		service_type		service associated to the RP
 | |
| 		pci_trans_cnt		number of PCIe partial transactions
 | |
| 		gp_lat_acc_avg		average get to put latency [ns]
 | |
| 		bw_in			PCIe, write bandwidth [Mbps]
 | |
| 		bw_out			PCIe, read bandwidth [Mbps]
 | |
| 		at_glob_devtlb_hit	Message descriptor DevTLB hit rate
 | |
| 		at_glob_devtlb_miss	Message descriptor DevTLB miss rate
 | |
| 		tl_at_payld_devtlb_hit	Payload DevTLB hit rate
 | |
| 		tl_at_payld_devtlb_miss	Payload DevTLB miss rate
 | |
| 		======================= ========================================
 | |
| 
 | |
| 		Example.
 | |
| 
 | |
| 		Writing the value '32' to the file ``rp_C_data`` starts the
 | |
| 		collection of telemetry metrics for ring pair 32::
 | |
| 
 | |
| 		  echo 32 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
 | |
| 
 | |
| 		Once a ring pair is selected, statistics can be read accessing
 | |
| 		the file::
 | |
| 
 | |
| 		  cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data
 | |
| 
 | |
| 		If ``control`` is set to 1, only the current values of the
 | |
| 		counters are displayed::
 | |
| 
 | |
| 		  <counter_name> <current>
 | |
| 
 | |
| 		If ``control`` is 2, 3 or 4, counters are displayed in the
 | |
| 		following format::
 | |
| 
 | |
| 		  <counter_name> <current> <min> <max> <avg>
 | |
| 
 | |
| 
 | |
| 		On QAT GEN4 devices there are 64 RPs on a PF, so the allowed
 | |
| 		values are 0..63. This number is absolute to the device.
 | |
| 		If Virtual Functions (VF) are used, the ring pair number can
 | |
| 		be derived from the Bus, Device, Function of the VF:
 | |
| 
 | |
| 		============ ====== ====== ====== ======
 | |
| 		PCI BDF/VF   RP0    RP1    RP2    RP3
 | |
| 		============ ====== ====== ====== ======
 | |
| 		0000:6b:0.1  RP  0  RP  1  RP  2  RP  3
 | |
| 		0000:6b:0.2  RP  4  RP  5  RP  6  RP  7
 | |
| 		0000:6b:0.3  RP  8  RP  9  RP 10  RP 11
 | |
| 		0000:6b:0.4  RP 12  RP 13  RP 14  RP 15
 | |
| 		0000:6b:0.5  RP 16  RP 17  RP 18  RP 19
 | |
| 		0000:6b:0.6  RP 20  RP 21  RP 22  RP 23
 | |
| 		0000:6b:0.7  RP 24  RP 25  RP 26  RP 27
 | |
| 		0000:6b:1.0  RP 28  RP 29  RP 30  RP 31
 | |
| 		0000:6b:1.1  RP 32  RP 33  RP 34  RP 35
 | |
| 		0000:6b:1.2  RP 36  RP 37  RP 38  RP 39
 | |
| 		0000:6b:1.3  RP 40  RP 41  RP 42  RP 43
 | |
| 		0000:6b:1.4  RP 44  RP 45  RP 46  RP 47
 | |
| 		0000:6b:1.5  RP 48  RP 49  RP 50  RP 51
 | |
| 		0000:6b:1.6  RP 52  RP 53  RP 54  RP 55
 | |
| 		0000:6b:1.7  RP 56  RP 57  RP 58  RP 59
 | |
| 		0000:6b:2.0  RP 60  RP 61  RP 62  RP 63
 | |
| 		============ ====== ====== ====== ======
 | |
| 
 | |
| 		The mapping is only valid for the BDFs of VFs on the host.
 | |
| 
 | |
| 
 | |
| 		The service provided on a ring-pair varies depending on the
 | |
| 		configuration. The configuration for a given device can be
 | |
| 		queried and set using ``cfg_services``.
 | |
| 		See Documentation/ABI/testing/sysfs-driver-qat for details.
 | |
| 
 | |
| 		The following table reports how ring pairs are mapped to VFs
 | |
| 		on the PF 0000:6b:0.0 configured for `sym;asym` or `asym;sym`:
 | |
| 
 | |
| 		=========== ============ =========== ============ ===========
 | |
| 		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
 | |
| 		=========== ============ =========== ============ ===========
 | |
| 		0000:6b:0.1 RP 0 asym    RP 1 sym    RP 2 asym    RP 3 sym
 | |
| 		0000:6b:0.2 RP 4 asym    RP 5 sym    RP 6 asym    RP 7 sym
 | |
| 		0000:6b:0.3 RP 8 asym    RP 9 sym    RP10 asym    RP11 sym
 | |
| 		...         ...          ...         ...          ...
 | |
| 		=========== ============ =========== ============ ===========
 | |
| 
 | |
| 		All VFs follow the same pattern.
 | |
| 
 | |
| 
 | |
| 		The following table reports how ring pairs are mapped to VFs on
 | |
| 		the PF 0000:6b:0.0 configured for `dc`:
 | |
| 
 | |
| 		=========== ============ =========== ============ ===========
 | |
| 		PCI BDF/VF  RP0/service  RP1/service RP2/service  RP3/service
 | |
| 		=========== ============ =========== ============ ===========
 | |
| 		0000:6b:0.1 RP 0 dc      RP 1 dc     RP 2 dc      RP 3 dc
 | |
| 		0000:6b:0.2 RP 4 dc      RP 5 dc     RP 6 dc      RP 7 dc
 | |
| 		0000:6b:0.3 RP 8 dc      RP 9 dc     RP10 dc      RP11 dc
 | |
| 		...         ...          ...         ...          ...
 | |
| 		=========== ============ =========== ============ ===========
 | |
| 
 | |
| 		The mapping of a RP to a service can be retrieved using
 | |
| 		``rp2srv`` from sysfs.
 | |
| 		See Documentation/ABI/testing/sysfs-driver-qat for details.
 | |
| 
 | |
| 		This attribute is only available for qat_4xxx devices.
 |