RDMA/rtrs-clt: Rate limit errors in IO path
authorJack Wang <jinpu.wang@ionos.com>
Wed, 21 Aug 2024 11:22:09 +0000 (13:22 +0200)
committerLeon Romanovsky <leon@kernel.org>
Wed, 28 Aug 2024 12:24:35 +0000 (15:24 +0300)
On network errors, a large number of these logs are printed due to all the
inflight IOs, rate limit them so they do not clutter kernel log.

Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Md Haris Iqbal <haris.iqbal@ionos.com>
Signed-off-by: Grzegorz Prajsner <grzegorz.prajsner@ionos.com>
Link: https://patch.msgid.link/20240821112217.41827-4-haris.iqbal@ionos.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/ulp/rtrs/rtrs-clt.c

index d09018c..b34eb49 100644 (file)
@@ -331,7 +331,7 @@ static void rtrs_clt_fast_reg_done(struct ib_cq *cq, struct ib_wc *wc)
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
 
        if (wc->status != IB_WC_SUCCESS) {
-               rtrs_err(con->c.path, "Failed IB_WR_REG_MR: %s\n",
+               rtrs_err_rl(con->c.path, "Failed IB_WR_REG_MR: %s\n",
                          ib_wc_status_msg(wc->status));
                rtrs_rdma_error_recovery(con);
        }
@@ -351,7 +351,7 @@ static void rtrs_clt_inv_rkey_done(struct ib_cq *cq, struct ib_wc *wc)
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
 
        if (wc->status != IB_WC_SUCCESS) {
-               rtrs_err(con->c.path, "Failed IB_WR_LOCAL_INV: %s\n",
+               rtrs_err_rl(con->c.path, "Failed IB_WR_LOCAL_INV: %s\n",
                          ib_wc_status_msg(wc->status));
                rtrs_rdma_error_recovery(con);
        }
@@ -419,7 +419,7 @@ static void complete_rdma_req(struct rtrs_clt_io_req *req, int errno,
                        refcount_inc(&req->ref);
                        err = rtrs_inv_rkey(req);
                        if (err) {
-                               rtrs_err(con->c.path, "Send INV WR key=%#x: %d\n",
+                               rtrs_err_rl(con->c.path, "Send INV WR key=%#x: %d\n",
                                          req->mr->rkey, err);
                        } else if (can_wait) {
                                wait_for_completion(&req->inv_comp);