Commit 9ea349e4 authored by Vijay Sundar Selvamani's avatar Vijay Sundar Selvamani Committed by Herbert Xu
Browse files

crypto: qat - add ring buffer idle telemetry counter for GEN6



Add a new performance counter that measures the average ring buffer idle
duration.

This metric is now included in the telemetry counters exposed via
debugfs for QAT GEN6 devices.

Update the documentation to reflect the new idle duration counter

Co-developed-by: default avatarGeorge Abraham P <george.abraham.p@intel.com>
Signed-off-by: default avatarGeorge Abraham P <george.abraham.p@intel.com>
Signed-off-by: default avatarVijay Sundar Selvamani <vijay.sundar.selvamani@intel.com>
Signed-off-by: default avatarSuman Kumar Chakraborty <suman.kumar.chakraborty@intel.com>
Reviewed-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 81109696
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ Description: (RO) Reports device telemetry counters.
		gp_lat_acc_avg		average get to put latency [ns]
		bw_in			PCIe, write bandwidth [Mbps]
		bw_out			PCIe, read bandwidth [Mbps]
		re_acc_avg		average ring empty time [ns]
		at_page_req_lat_avg	Address Translator(AT), average page
					request latency [ns]
		at_trans_lat_avg	AT, average page translation latency [ns]
+8 −0
Original line number Diff line number Diff line
@@ -57,6 +57,10 @@ static const struct adf_tl_dbg_counter dev_counters[] = {
	/* Maximum uTLB used. */
	ADF_TL_COUNTER(AT_MAX_UTLB_USED_NAME, ADF_TL_SIMPLE_COUNT,
		       ADF_GEN6_TL_DEV_REG_OFF(reg_tl_at_max_utlb_used)),
	/* Ring Empty average[ns] across all rings */
	ADF_TL_COUNTER_LATENCY(RE_ACC_NAME, ADF_TL_COUNTER_NS_AVG,
			       ADF_GEN6_TL_DEV_REG_OFF(reg_tl_re_acc),
			       ADF_GEN6_TL_DEV_REG_OFF(reg_tl_re_cnt)),
};

/* Accelerator utilization counters */
@@ -122,6 +126,10 @@ static const struct adf_tl_dbg_counter rp_counters[] = {
	/* Payload DevTLB miss rate. */
	ADF_TL_COUNTER(AT_PAYLD_DTLB_MISS_NAME, ADF_TL_SIMPLE_COUNT,
		       ADF_GEN6_TL_RP_REG_OFF(reg_tl_at_payld_devtlb_miss)),
	/* Ring Empty average[ns]. */
	ADF_TL_COUNTER_LATENCY(RE_ACC_NAME, ADF_TL_COUNTER_NS_AVG,
			       ADF_GEN6_TL_RP_REG_OFF(reg_tl_re_acc),
			       ADF_GEN6_TL_RP_REG_OFF(reg_tl_re_cnt)),
};

void adf_gen6_init_tl_data(struct adf_tl_hw_data *tl_data)
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ struct adf_accel_dev;
#define LAT_ACC_NAME		"gp_lat_acc_avg"
#define BW_IN_NAME		"bw_in"
#define BW_OUT_NAME		"bw_out"
#define RE_ACC_NAME		"re_acc_avg"
#define PAGE_REQ_LAT_NAME	"at_page_req_lat_avg"
#define AT_TRANS_LAT_NAME	"at_trans_lat_avg"
#define AT_MAX_UTLB_USED_NAME	"at_max_tlb_used"