Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Thumshirn <jthumshirn@suse.de>2017-01-27 12:38:00 +0100
committerJohannes Thumshirn <jthumshirn@suse.de>2017-01-27 12:41:32 +0100
commit00f9dbeffbdd08b84e6d9e5f118f585d7f7a0666 (patch)
tree77b350bb259c3478256a5af4b2b0e3b781e852bd
parentfdb76e165375196b30f2df1b14823d4df79d71da (diff)
IB/rxe: Drop future atomic/read packets rather than retrying
-rw-r--r--patches.drivers/0036-IB-rxe-Drop-future-atomic-read-packets-rather-than-r.patch52
-rw-r--r--series.conf1
2 files changed, 53 insertions, 0 deletions
diff --git a/patches.drivers/0036-IB-rxe-Drop-future-atomic-read-packets-rather-than-r.patch b/patches.drivers/0036-IB-rxe-Drop-future-atomic-read-packets-rather-than-r.patch
new file mode 100644
index 0000000000..3ac66ca6f1
--- /dev/null
+++ b/patches.drivers/0036-IB-rxe-Drop-future-atomic-read-packets-rather-than-r.patch
@@ -0,0 +1,52 @@
+From 87ac082733ab979efda384be853e402954abdb38 Mon Sep 17 00:00:00 2001
+From: Andrew Boyer <andrew.boyer@dell.com>
+Date: Thu, 22 Dec 2016 08:54:37 -0500
+Subject: IB/rxe: Drop future atomic/read packets rather than retrying
+Git-commit: cbf1f9a46c9c5903e34b0b110ca40b1e7d4b2ab1
+Patch-mainline: v4.10-rc1
+References: FATE#322149
+
+If the completer is in the middle of a large read operation, one
+lost packet can cause havoc. Going to COMPST_ERROR_RETRY will
+cause the requester to resend the request. After that, any packet
+from the first attempt still in the receive queue will be
+interpreted as an error, restarting the error/retry sequence.
+The transfer will quickly exhaust its retries.
+
+This behavior is very noticeable when doing 512KB reads on a
+QEMU system configured with 1500B MTU.
+
+Also, a resent request here will prompt the responder on the
+other side to immediately start resending, but the resent
+packets will get stuck in the already-loaded receive queue and
+will never be processed.
+
+Rather than erroring out every time an unexpected future packet
+arrives, just drop it. Eventually the retry timer will send a
+duplicate request; the completer will be able to make progress since
+the queue will start relatively empty.
+
+Signed-off-by: Andrew Boyer <andrew.boyer@dell.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
+
+---
+ drivers/infiniband/sw/rxe/rxe_comp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/infiniband/sw/rxe/rxe_comp.c b/drivers/infiniband/sw/rxe/rxe_comp.c
+index cd27cbd..d369f24 100644
+--- a/drivers/infiniband/sw/rxe/rxe_comp.c
++++ b/drivers/infiniband/sw/rxe/rxe_comp.c
+@@ -224,7 +224,7 @@ static inline enum comp_state check_psn(struct rxe_qp *qp,
+ else
+ return COMPST_DONE;
+ } else if ((diff > 0) && (wqe->mask & WR_ATOMIC_OR_READ_MASK)) {
+- return COMPST_ERROR_RETRY;
++ return COMPST_DONE;
+ } else {
+ return COMPST_CHECK_ACK;
+ }
+--
+1.8.5.6
+
diff --git a/series.conf b/series.conf
index 84610ffc2d..25719e1e93 100644
--- a/series.conf
+++ b/series.conf
@@ -5378,6 +5378,7 @@
patches.drivers/0033-IB-core-Let-create_ah-return-extended-response-to-us.patch
patches.drivers/0034-IB-rxe-Fix-a-memory-leak-in-rxe_qp_cleanup.patch
patches.drivers/0035-IB-rxe-Use-BTH_PSN_MASK-when-ACKing-duplicate-sends.patch
+ patches.drivers/0036-IB-rxe-Drop-future-atomic-read-packets-rather-than-r.patch
# fate#322061 Hisilicon/Huawei Hip06d05 network
patches.drivers/arm64-hip-0001-net-hns-Add-support-of-Hip06-SoC-to-the-Hislicon-Net.patch