]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/bnxt_re: Remove non-statistics counters from hw_counters
authorAnantha Prabhu <anantha.prabhu@broadcom.com>
Tue, 23 Sep 2025 06:26:57 +0000 (11:56 +0530)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 24 Sep 2025 13:42:14 +0000 (10:42 -0300)
Remove non-statistics counters from the RDMA hw_counters framework.
The removed data includes:

- Active resource counts (ACTIVE_PD, ACTIVE_QP, etc.)
- Resource watermarks (WATERMARK_PD, WATERMARK_QP, etc.)
- Operational counters (RESIZE_CQ_CNT)
- DB pacing metrics (PACING_RESCHED, PACING_CMPL, etc.)

This change ensures hw_counters contains only true performance
and error statistics.

Link: https://patch.msgid.link/r/20250923062657.981487-3-kalesh-anakkur.purayil@broadcom.com
Signed-off-by: Anantha Prabhu <anantha.prabhu@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/bnxt_re/hw_counters.c
drivers/infiniband/hw/bnxt_re/hw_counters.h

index 32ec67e4d922166922ef30caf615d2fd0668ca98..651cf9d0e0c7c9bd886780750bf05b27e1e49b62 100644 (file)
 #include "hw_counters.h"
 
 static const struct rdma_stat_desc bnxt_re_stat_descs[] = {
-       [BNXT_RE_ACTIVE_PD].name                =  "active_pds",
-       [BNXT_RE_ACTIVE_AH].name                =  "active_ahs",
-       [BNXT_RE_ACTIVE_QP].name                =  "active_qps",
-       [BNXT_RE_ACTIVE_RC_QP].name             =  "active_rc_qps",
-       [BNXT_RE_ACTIVE_UD_QP].name             =  "active_ud_qps",
-       [BNXT_RE_ACTIVE_SRQ].name               =  "active_srqs",
-       [BNXT_RE_ACTIVE_CQ].name                =  "active_cqs",
-       [BNXT_RE_ACTIVE_MR].name                =  "active_mrs",
-       [BNXT_RE_ACTIVE_MW].name                =  "active_mws",
-       [BNXT_RE_WATERMARK_PD].name             =  "watermark_pds",
-       [BNXT_RE_WATERMARK_AH].name             =  "watermark_ahs",
-       [BNXT_RE_WATERMARK_QP].name             =  "watermark_qps",
-       [BNXT_RE_WATERMARK_RC_QP].name          =  "watermark_rc_qps",
-       [BNXT_RE_WATERMARK_UD_QP].name          =  "watermark_ud_qps",
-       [BNXT_RE_WATERMARK_SRQ].name            =  "watermark_srqs",
-       [BNXT_RE_WATERMARK_CQ].name             =  "watermark_cqs",
-       [BNXT_RE_WATERMARK_MR].name             =  "watermark_mrs",
-       [BNXT_RE_WATERMARK_MW].name             =  "watermark_mws",
-       [BNXT_RE_RESIZE_CQ_CNT].name            =  "resize_cq_cnt",
        [BNXT_RE_RX_PKTS].name          =  "rx_pkts",
        [BNXT_RE_RX_BYTES].name         =  "rx_bytes",
        [BNXT_RE_TX_PKTS].name          =  "tx_pkts",
@@ -139,10 +120,6 @@ static const struct rdma_stat_desc bnxt_re_stat_descs[] = {
        [BNXT_RE_TX_CNP].name                = "np_cnp_pkts",
        [BNXT_RE_RX_CNP].name                = "rp_cnp_handled",
        [BNXT_RE_RX_ECN].name                = "np_ecn_marked_roce_packets",
-       [BNXT_RE_PACING_RESCHED].name        = "pacing_reschedule",
-       [BNXT_RE_PACING_CMPL].name           = "pacing_complete",
-       [BNXT_RE_PACING_ALERT].name          = "pacing_alerts",
-       [BNXT_RE_DB_FIFO_REG].name           = "db_fifo_register",
        [BNXT_RE_REQ_CQE_ERROR].name            = "req_cqe_error",
        [BNXT_RE_RESP_CQE_ERROR].name           = "resp_cqe_error",
        [BNXT_RE_RESP_REMOTE_ACCESS_ERRS].name  = "resp_remote_access_errors",
@@ -292,18 +269,6 @@ static void bnxt_re_copy_err_stats(struct bnxt_re_dev *rdev,
                        err_s->res_tx_no_perm;
 }
 
-static void bnxt_re_copy_db_pacing_stats(struct bnxt_re_dev *rdev,
-                                        struct rdma_hw_stats *stats)
-{
-       struct bnxt_re_db_pacing_stats *pacing_s =  &rdev->stats.pacing;
-
-       stats->value[BNXT_RE_PACING_RESCHED] = pacing_s->resched;
-       stats->value[BNXT_RE_PACING_CMPL] = pacing_s->complete;
-       stats->value[BNXT_RE_PACING_ALERT] = pacing_s->alerts;
-       stats->value[BNXT_RE_DB_FIFO_REG] =
-               readl(rdev->en_dev->bar0 + rdev->pacing.dbr_db_fifo_reg_off);
-}
-
 int bnxt_re_assign_pma_port_ext_counters(struct bnxt_re_dev *rdev, struct ib_mad *out_mad)
 {
        struct ib_pma_portcounters_ext *pma_cnt_ext;
@@ -399,7 +364,6 @@ int bnxt_re_ib_get_hw_stats(struct ib_device *ibdev,
                            u32 port, int index)
 {
        struct bnxt_re_dev *rdev = to_bnxt_re_dev(ibdev, ibdev);
-       struct bnxt_re_res_cntrs *res_s = &rdev->stats.res;
        struct bnxt_qplib_roce_stats *err_s = NULL;
        struct ctx_hw_stats *hw_stats = NULL;
        int rc  = 0;
@@ -408,26 +372,6 @@ int bnxt_re_ib_get_hw_stats(struct ib_device *ibdev,
        if (!port || !stats)
                return -EINVAL;
 
-       stats->value[BNXT_RE_ACTIVE_QP] = atomic_read(&res_s->qp_count);
-       stats->value[BNXT_RE_ACTIVE_RC_QP] = atomic_read(&res_s->rc_qp_count);
-       stats->value[BNXT_RE_ACTIVE_UD_QP] = atomic_read(&res_s->ud_qp_count);
-       stats->value[BNXT_RE_ACTIVE_SRQ] = atomic_read(&res_s->srq_count);
-       stats->value[BNXT_RE_ACTIVE_CQ] = atomic_read(&res_s->cq_count);
-       stats->value[BNXT_RE_ACTIVE_MR] = atomic_read(&res_s->mr_count);
-       stats->value[BNXT_RE_ACTIVE_MW] = atomic_read(&res_s->mw_count);
-       stats->value[BNXT_RE_ACTIVE_PD] = atomic_read(&res_s->pd_count);
-       stats->value[BNXT_RE_ACTIVE_AH] = atomic_read(&res_s->ah_count);
-       stats->value[BNXT_RE_WATERMARK_QP] = res_s->qp_watermark;
-       stats->value[BNXT_RE_WATERMARK_RC_QP] = res_s->rc_qp_watermark;
-       stats->value[BNXT_RE_WATERMARK_UD_QP] = res_s->ud_qp_watermark;
-       stats->value[BNXT_RE_WATERMARK_SRQ] = res_s->srq_watermark;
-       stats->value[BNXT_RE_WATERMARK_CQ] = res_s->cq_watermark;
-       stats->value[BNXT_RE_WATERMARK_MR] = res_s->mr_watermark;
-       stats->value[BNXT_RE_WATERMARK_MW] = res_s->mw_watermark;
-       stats->value[BNXT_RE_WATERMARK_PD] = res_s->pd_watermark;
-       stats->value[BNXT_RE_WATERMARK_AH] = res_s->ah_watermark;
-       stats->value[BNXT_RE_RESIZE_CQ_CNT] = atomic_read(&res_s->resize_count);
-
        if (hw_stats) {
                stats->value[BNXT_RE_RECOVERABLE_ERRORS] =
                        le64_to_cpu(hw_stats->tx_bcast_pkts);
@@ -466,8 +410,6 @@ int bnxt_re_ib_get_hw_stats(struct ib_device *ibdev,
                                goto done;
                        }
                }
-               if (rdev->pacing.dbr_pacing && bnxt_qplib_is_chip_gen_p5_p7(rdev->chip_ctx))
-                       bnxt_re_copy_db_pacing_stats(rdev, stats);
        }
 
 done:
index be8e694587347c747850e0195854befbdc6e44f7..09d371d442aa78724f49924ea7f5f8e70253d963 100644 (file)
 #define __BNXT_RE_HW_STATS_H__
 
 enum bnxt_re_hw_stats {
-       BNXT_RE_ACTIVE_PD,
-       BNXT_RE_ACTIVE_AH,
-       BNXT_RE_ACTIVE_QP,
-       BNXT_RE_ACTIVE_RC_QP,
-       BNXT_RE_ACTIVE_UD_QP,
-       BNXT_RE_ACTIVE_SRQ,
-       BNXT_RE_ACTIVE_CQ,
-       BNXT_RE_ACTIVE_MR,
-       BNXT_RE_ACTIVE_MW,
-       BNXT_RE_WATERMARK_PD,
-       BNXT_RE_WATERMARK_AH,
-       BNXT_RE_WATERMARK_QP,
-       BNXT_RE_WATERMARK_RC_QP,
-       BNXT_RE_WATERMARK_UD_QP,
-       BNXT_RE_WATERMARK_SRQ,
-       BNXT_RE_WATERMARK_CQ,
-       BNXT_RE_WATERMARK_MR,
-       BNXT_RE_WATERMARK_MW,
-       BNXT_RE_RESIZE_CQ_CNT,
        BNXT_RE_RX_PKTS,
        BNXT_RE_RX_BYTES,
        BNXT_RE_TX_PKTS,
@@ -129,10 +110,6 @@ enum bnxt_re_hw_stats {
        BNXT_RE_TX_CNP,
        BNXT_RE_RX_CNP,
        BNXT_RE_RX_ECN,
-       BNXT_RE_PACING_RESCHED,
-       BNXT_RE_PACING_CMPL,
-       BNXT_RE_PACING_ALERT,
-       BNXT_RE_DB_FIFO_REG,
        BNXT_RE_REQ_CQE_ERROR,
        BNXT_RE_RESP_CQE_ERROR,
        BNXT_RE_RESP_REMOTE_ACCESS_ERRS,