RDMA/rtrs: move wr_cnt from rtrs_srv_con to rtrs_con
We need to track also the wr used for heatbeat. This is a preparation for that, will be used in later patch. The io_cnt in rtrs_clt is removed, use wr_cnt instead. Link: https://lore.kernel.org/r/20210712060750.16494-3-jinpu.wang@ionos.com Signed-off-by: Jack Wang <jinpu.wang@ionos.com> Reviewed-by: Aleksei Marov <aleksei.marov@ionos.com> Reviewed-by: Gioh Kim <gi-oh.kim@ionos.com> Reviewed-by: Md Haris Iqbal <haris.iqbal@ionos.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
350ec9bc61
commit
a10431eff1
|
@ -478,7 +478,7 @@ static int rtrs_post_send_rdma(struct rtrs_clt_con *con,
|
|||
* From time to time we have to post signalled sends,
|
||||
* or send queue will fill up and only QP reset can help.
|
||||
*/
|
||||
flags = atomic_inc_return(&con->io_cnt) % sess->queue_depth ?
|
||||
flags = atomic_inc_return(&con->c.wr_cnt) % sess->queue_depth ?
|
||||
0 : IB_SEND_SIGNALED;
|
||||
|
||||
ib_dma_sync_single_for_device(sess->s.dev->ib_dev, req->iu->dma_addr,
|
||||
|
@ -1043,7 +1043,7 @@ static int rtrs_post_rdma_write_sg(struct rtrs_clt_con *con,
|
|||
* From time to time we have to post signalled sends,
|
||||
* or send queue will fill up and only QP reset can help.
|
||||
*/
|
||||
flags = atomic_inc_return(&con->io_cnt) % sess->queue_depth ?
|
||||
flags = atomic_inc_return(&con->c.wr_cnt) % sess->queue_depth ?
|
||||
0 : IB_SEND_SIGNALED;
|
||||
|
||||
ib_dma_sync_single_for_device(sess->s.dev->ib_dev, req->iu->dma_addr,
|
||||
|
@ -1601,7 +1601,8 @@ static int create_con(struct rtrs_clt_sess *sess, unsigned int cid)
|
|||
con->cpu = (cid ? cid - 1 : 0) % nr_cpu_ids;
|
||||
con->c.cid = cid;
|
||||
con->c.sess = &sess->s;
|
||||
atomic_set(&con->io_cnt, 0);
|
||||
/* Align with srv, init as 1 */
|
||||
atomic_set(&con->c.wr_cnt, 1);
|
||||
mutex_init(&con->con_mutex);
|
||||
|
||||
sess->s.con[cid] = &con->c;
|
||||
|
|
|
@ -74,7 +74,6 @@ struct rtrs_clt_con {
|
|||
u32 queue_num;
|
||||
unsigned int cpu;
|
||||
struct mutex con_mutex;
|
||||
atomic_t io_cnt;
|
||||
int cm_err;
|
||||
};
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ struct rtrs_con {
|
|||
struct rdma_cm_id *cm_id;
|
||||
unsigned int cid;
|
||||
int nr_cqe;
|
||||
atomic_t wr_cnt;
|
||||
};
|
||||
|
||||
struct rtrs_sess {
|
||||
|
|
|
@ -269,7 +269,7 @@ static int rdma_write_sg(struct rtrs_srv_op *id)
|
|||
* From time to time we have to post signaled sends,
|
||||
* or send queue will fill up and only QP reset can help.
|
||||
*/
|
||||
flags = (atomic_inc_return(&id->con->wr_cnt) % srv->queue_depth) ?
|
||||
flags = (atomic_inc_return(&id->con->c.wr_cnt) % srv->queue_depth) ?
|
||||
0 : IB_SEND_SIGNALED;
|
||||
|
||||
if (need_inval) {
|
||||
|
@ -396,7 +396,7 @@ static int send_io_resp_imm(struct rtrs_srv_con *con, struct rtrs_srv_op *id,
|
|||
* From time to time we have to post signalled sends,
|
||||
* or send queue will fill up and only QP reset can help.
|
||||
*/
|
||||
flags = (atomic_inc_return(&con->wr_cnt) % srv->queue_depth) ?
|
||||
flags = (atomic_inc_return(&con->c.wr_cnt) % srv->queue_depth) ?
|
||||
0 : IB_SEND_SIGNALED;
|
||||
imm = rtrs_to_io_rsp_imm(id->msg_id, errno, need_inval);
|
||||
imm_wr.wr.next = NULL;
|
||||
|
@ -1648,7 +1648,7 @@ static int create_con(struct rtrs_srv_sess *sess,
|
|||
con->c.cm_id = cm_id;
|
||||
con->c.sess = &sess->s;
|
||||
con->c.cid = cid;
|
||||
atomic_set(&con->wr_cnt, 1);
|
||||
atomic_set(&con->c.wr_cnt, 1);
|
||||
wr_limit = sess->s.dev->ib_dev->attrs.max_qp_wr;
|
||||
|
||||
if (con->c.cid == 0) {
|
||||
|
|
|
@ -42,7 +42,6 @@ struct rtrs_srv_stats {
|
|||
|
||||
struct rtrs_srv_con {
|
||||
struct rtrs_con c;
|
||||
atomic_t wr_cnt;
|
||||
atomic_t sq_wr_avail;
|
||||
struct list_head rsp_wr_wait_list;
|
||||
spinlock_t rsp_wr_wait_lock;
|
||||
|
|
Loading…
Reference in New Issue