2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-25 21:54:06 +08:00
linux-next/drivers/infiniband/sw/rxe
Andrew Boyer cbf1f9a46c IB/rxe: Drop future atomic/read packets rather than retrying
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>
2016-12-22 11:36:12 -05:00
..
Kconfig
Makefile
rxe_av.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_comp.c IB/rxe: Drop future atomic/read packets rather than retrying 2016-12-22 11:36:12 -05:00
rxe_cq.c
rxe_dma.c IB/{rxe,core,rdmavt}: Fix kernel crash for reg MR 2016-10-06 13:50:04 -04:00
rxe_hdr.h
rxe_icrc.c
rxe_loc.h IB/rxe: Unblock loopback by moving skb_out increment 2016-12-12 16:31:45 -05:00
rxe_mcast.c
rxe_mmap.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_mr.c IB/rxe: Add support for zero-byte operations 2016-12-12 16:31:45 -05:00
rxe_net.c IB/rxe: Unblock loopback by moving skb_out increment 2016-12-12 16:31:45 -05:00
rxe_net.h IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_opcode.c
rxe_opcode.h
rxe_param.h IB/rxe: Increase max number of completions to 32k 2016-12-13 13:33:24 -05:00
rxe_pool.c IB/rxe: Remove and fix debug prints after allocation failure 2016-12-03 13:12:52 -05:00
rxe_pool.h
rxe_qp.c IB/rxe: Fix a memory leak in rxe_qp_cleanup() 2016-12-18 13:35:19 -05:00
rxe_queue.c
rxe_queue.h
rxe_recv.c IB/rxe: Remove buffer used for printing IP address 2016-12-12 16:31:45 -05:00
rxe_req.c IB/rxe: Hold refs when running tasklets 2016-12-12 16:34:22 -05:00
rxe_resp.c IB/rxe: Use BTH_PSN_MASK when ACKing duplicate sends 2016-12-22 11:36:12 -05:00
rxe_srq.c IB/rxe: Remove unneeded cast in rxe_srq_from_attr() 2016-12-12 16:31:45 -05:00
rxe_sysfs.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_task.c IB/rxe: Wait for tasklets to finish before tearing down QP 2016-12-12 16:31:45 -05:00
rxe_task.h IB/rxe: Wait for tasklets to finish before tearing down QP 2016-12-12 16:31:45 -05:00
rxe_verbs.c Merge branches 'misc', 'qedr', 'reject-helpers', 'rxe' and 'srp' into merge-test 2016-12-14 14:44:47 -05:00
rxe_verbs.h
rxe.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe.h IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00