mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Bob Pearson <rpearsonhpe@gmail.com>
To: Li Zhijian <lizhijian@fujitsu.com>,
	Yanjun Zhu <yanjun.zhu@linux.dev>, Jason Gunthorpe <jgg@ziepe.ca>,
	Haakon Bugge <haakon.bugge@oracle.com>,
	Cheng Xu <chengyou@linux.alibaba.com>,
	linux-rdma@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] RDMA/rxe: Update wqe_index for each wqe error completion
Date: Sun, 26 Jun 2022 16:51:22 -0500	[thread overview]
Message-ID: <1e9a8c0f-b4c3-3edf-33f1-33a2b7ca245a@gmail.com> (raw)
In-Reply-To: <20220516015329.445474-2-lizhijian@fujitsu.com>

On 5/15/22 20:53, Li Zhijian wrote:
> Previously, if user space keeps sending abnormal wqe, queue.prod will
> keep increasing while queue.index doesn't. Once
> queue.index==queue.prod in next round, req_next_wqe() will treat queue
> as empty. In such case, no new completion would be generated.
> 
> Update wqe_index for each wqe completion so that req_next_wqe() can get
> next wqe properly.
> 
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
>  drivers/infiniband/sw/rxe/rxe_req.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c
> index a0d5e57f73c1..8bdd0b6b578f 100644
> --- a/drivers/infiniband/sw/rxe/rxe_req.c
> +++ b/drivers/infiniband/sw/rxe/rxe_req.c
> @@ -773,6 +773,8 @@ int rxe_requester(void *arg)
>  	if (ah)
>  		rxe_put(ah);
>  err:
> +	/* update wqe_index for each wqe completion */
> +	qp->req.wqe_index = queue_next_index(qp->sq.queue, qp->req.wqe_index);
>  	wqe->state = wqe_state_err
>  	__rxe_do_task(&qp->comp.task);
>  

This change looks plausible, but I am not sure if it will make a difference since the qp
will get transitioned to the error state very shortly.

In order for it to matter the requester must be a ways ahead of the completer in the send queue
and someone be actively posting new wqes which will reschedule the requester. Currently it
will fail on the same wqe again unless the error described above occurs but if we post a new valid
wqe it will get executed even though we have detected an error that should have stopped the qp.

It looks like the intent was to keep the qp in the non error state until all the old
wqes get completed before making the transition. But we should disable the requester
from processing new wqes in this case. That seems like a safer solution to the problem.

Bob


  reply	other threads:[~2022-06-26 21:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-16  1:53 [PATCH v3 0/2] RDMA/rxe: Fix no completion event issue Li Zhijian
2022-05-16  1:53 ` [PATCH v3 1/2] RDMA/rxe: Update wqe_index for each wqe error completion Li Zhijian
2022-06-26 21:51   ` Bob Pearson [this message]
2022-06-27  3:41     ` lizhijian
2022-05-16  1:53 ` [PATCH v3 2/2] RDMA/rxe: Generate error completion for error requester QP state Li Zhijian
2022-06-26 22:42   ` Bob Pearson
2022-06-07  8:32 ` [PATCH v3 0/2] RDMA/rxe: Fix no completion event issue lizhijian
2022-06-24 23:39   ` Jason Gunthorpe
2022-06-25  7:47     ` Li, Zhijian
2022-06-25 12:59   ` Yanjun Zhu
2022-06-26  3:29     ` Li, Zhijian
2022-06-26 10:38       ` yangx.jy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1e9a8c0f-b4c3-3edf-33f1-33a2b7ca245a@gmail.com \
    --to=rpearsonhpe@gmail.com \
    --cc=chengyou@linux.alibaba.com \
    --cc=haakon.bugge@oracle.com \
    --cc=jgg@ziepe.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=lizhijian@fujitsu.com \
    --cc=yanjun.zhu@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®