]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: qat - add ring buffer idle telemetry counter for GEN6
authorVijay Sundar Selvamani <vijay.sundar.selvamani@intel.com>
Fri, 25 Jul 2025 09:09:29 +0000 (10:09 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 16 Aug 2025 09:22:46 +0000 (17:22 +0800)
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: George Abraham P <george.abraham.p@intel.com>
Signed-off-by: George Abraham P <george.abraham.p@intel.com>
Signed-off-by: Vijay Sundar Selvamani <vijay.sundar.selvamani@intel.com>
Signed-off-by: Suman Kumar Chakraborty <suman.kumar.chakraborty@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Documentation/ABI/testing/debugfs-driver-qat_telemetry
drivers/crypto/intel/qat/qat_common/adf_gen6_tl.c
drivers/crypto/intel/qat/qat_common/adf_tl_debugfs.h

index 0dfd8d97e169218d170035221864ab0d7f57b852..53abf9275147bdfd3de49311d367cfd00fcc740b 100644 (file)
@@ -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]
index cf804f95838a3dbd5300b55ec6edf6557d155787..633b0c05fbdbf07c7079e171f97305f00c46e228 100644 (file)
@@ -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)
index 11cc9eae19b37af1b5b484456af49f646617fc72..9efab3f76a3f344971ef0856b42a29ff76d537a4 100644 (file)
@@ -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"