public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Boyer <andrew.boyer-8PEkshWhKlo@public.gmane.org>
To: monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	yonatanc-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Andrew Boyer <andrew.boyer-8PEkshWhKlo@public.gmane.org>
Subject: [PATCH v2 3/8] IB/rxe: Don't update the response PSN unless it's going forwards
Date: Wed, 23 Nov 2016 12:39:19 -0500	[thread overview]
Message-ID: <1479922764-13091-4-git-send-email-andrew.boyer@dell.com> (raw)
In-Reply-To: <1479922764-13091-1-git-send-email-andrew.boyer-8PEkshWhKlo@public.gmane.org>

A client might post a read followed by a send. The partner receives
and acknowledges both transactions, posting an RCQ entry for the
send, but something goes wrong with the read ACK. When the client
retries the read, the partner's responder processes the duplicate
read but incorrectly resets the PSN to the value preceding the
original send. When the duplicate send arrives, the responder cannot
tell that it is a duplicate, so the responder generates a duplicate
RCQ entry, confusing the client.

Signed-off-by: Andrew Boyer <andrew.boyer-8PEkshWhKlo@public.gmane.org>
Reviewed-by: Yonatan Cohen <yonatanc-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/sw/rxe/rxe_resp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/sw/rxe/rxe_resp.c b/drivers/infiniband/sw/rxe/rxe_resp.c
index dd3d88a..cb3fd4c 100644
--- a/drivers/infiniband/sw/rxe/rxe_resp.c
+++ b/drivers/infiniband/sw/rxe/rxe_resp.c
@@ -742,7 +742,8 @@ static enum resp_states read_reply(struct rxe_qp *qp,
 	} else {
 		qp->resp.res = NULL;
 		qp->resp.opcode = -1;
-		qp->resp.psn = res->cur_psn;
+		if (psn_compare(res->cur_psn, qp->resp.psn) >= 0)
+			qp->resp.psn = res->cur_psn;
 		state = RESPST_CLEANUP;
 	}
 
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2016-11-23 17:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-23 17:39 [PATCH v2 0/8] RXE improvements Andrew Boyer
     [not found] ` <1479922764-13091-1-git-send-email-andrew.boyer-8PEkshWhKlo@public.gmane.org>
2016-11-23 17:39   ` [PATCH v2 1/8] IB/rxe: Remove buffer used for printing IP address Andrew Boyer
     [not found]     ` <1479922764-13091-2-git-send-email-andrew.boyer-8PEkshWhKlo@public.gmane.org>
2016-11-23 17:48       ` Moni Shoua
2016-11-23 17:39   ` [PATCH v2 2/8] IB/rxe: Advance the consumer pointer before posting the CQE Andrew Boyer
2016-11-23 17:39   ` Andrew Boyer [this message]
2016-11-23 17:39   ` [PATCH v2 4/8] IB/rxe: Unblock loopback by moving skb_out increment Andrew Boyer
2016-11-23 17:39   ` [PATCH v2 5/8] IB/rxe: Add support for zero-byte operations Andrew Boyer
2016-11-23 17:39   ` [PATCH v2 6/8] IB/rxe: Add support for IB_CQ_REPORT_MISSED_EVENTS Andrew Boyer
2016-11-23 17:39   ` [PATCH v2 7/8] IB/rxe: Fix ref leak in rxe_create_qp() Andrew Boyer
2016-11-23 17:39   ` [PATCH v2 8/8] IB/rxe: Fix ref leak in duplicate_request() Andrew Boyer
2016-11-23 17:59   ` [PATCH v2 0/8] RXE improvements Moni Shoua
     [not found]     ` <CAG9sBKMkoCbeCO6SgPZrW-x0rBNTQUaar+wAqeVDTLeoT8HfHw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-12-05 13:58       ` Boyer, Andrew
     [not found]         ` <D46ADB9D.7D50%Andrew.Boyer-mb1K0bWo544@public.gmane.org>
2016-12-12 21:40           ` Doug Ledford

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=1479922764-13091-4-git-send-email-andrew.boyer@dell.com \
    --to=andrew.boyer-8pekshwhklo@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=yonatanc-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    /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