mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 06:30:20 -04:00
RDMA/rtrs: Reset hb_missed_cnt after receiving other traffic from peer
Reset hb_missed_cnt after receiving traffic from other peer, so
hb is more robust again high load on host or network.
Fixes: 6a98d71dae ("RDMA/rtrs: client: main functionality")
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-5-haris.iqbal@ionos.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
committed by
Leon Romanovsky
parent
53c26f3ecd
commit
3258cbbd86
@@ -619,6 +619,7 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
*/
|
||||
if (WARN_ON(wc->wr_cqe->done != rtrs_clt_rdma_done))
|
||||
return;
|
||||
clt_path->s.hb_missed_cnt = 0;
|
||||
rtrs_from_imm(be32_to_cpu(wc->ex.imm_data),
|
||||
&imm_type, &imm_payload);
|
||||
if (imm_type == RTRS_IO_RSP_IMM ||
|
||||
@@ -636,7 +637,6 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
return rtrs_clt_recv_done(con, wc);
|
||||
} else if (imm_type == RTRS_HB_ACK_IMM) {
|
||||
WARN_ON(con->c.cid);
|
||||
clt_path->s.hb_missed_cnt = 0;
|
||||
clt_path->s.hb_cur_latency =
|
||||
ktime_sub(ktime_get(), clt_path->s.hb_last_sent);
|
||||
if (clt_path->flags & RTRS_MSG_NEW_RKEY_F)
|
||||
@@ -663,6 +663,7 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
/*
|
||||
* Key invalidations from server side
|
||||
*/
|
||||
clt_path->s.hb_missed_cnt = 0;
|
||||
WARN_ON(!(wc->wc_flags & IB_WC_WITH_INVALIDATE ||
|
||||
wc->wc_flags & IB_WC_WITH_IMM));
|
||||
WARN_ON(wc->wr_cqe->done != rtrs_clt_rdma_done);
|
||||
|
||||
@@ -1233,6 +1233,7 @@ static void rtrs_srv_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
*/
|
||||
if (WARN_ON(wc->wr_cqe != &io_comp_cqe))
|
||||
return;
|
||||
srv_path->s.hb_missed_cnt = 0;
|
||||
err = rtrs_post_recv_empty(&con->c, &io_comp_cqe);
|
||||
if (err) {
|
||||
rtrs_err(s, "rtrs_post_recv(), err: %d\n", err);
|
||||
|
||||
Reference in New Issue
Block a user