linux/net/sunrpc/xprtrdma
Tom Tucker b334eaabf4 RPC/RDMA: fix connection IRD/ORD setting
This logic sets the connection parameter that configures the local device
and informs the remote peer how many concurrent incoming RDMA_READ
requests are supported. The original logic didn't really do what was
intended for two reasons:

- The max number supported by the device is typically smaller than
any one factor in the calculation used, and

- The field in the connection parameter structure where the value is
stored is a u8 and always overflows for the default settings.

So what really happens is the value requested for responder resources
is the left over 8 bits from the "desired value". If the desired value
happened to be a multiple of 256, the result was zero and it wouldn't
connect at all.

Given the above and the fact that max_requests is almost always larger
than the max responder resources supported by the adapter, this patch
simplifies this logic and simply requests the max supported by the device,
subject to a reasonable limit.

This bug was found by Jim Schutt at Sandia.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Acked-by: Tom Talpey <talpey@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2008-10-10 15:09:56 -04:00
..
Makefile rdma: makefile 2008-02-01 16:42:14 -05:00
rpc_rdma.c SUNRPC: Fix an unnecessary implicit type cast in rpcrdma_count_chunks() 2008-01-30 02:05:42 -05:00
svc_rdma_marshal.c rdma: ONCRPC RDMA protocol marshalling 2008-02-01 16:42:14 -05:00
svc_rdma_recvfrom.c svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet 2008-08-13 16:57:31 -04:00
svc_rdma_sendto.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
svc_rdma_transport.c svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet 2008-08-13 16:57:31 -04:00
svc_rdma.c svcrdma: Create a kmem cache for the WR contexts 2008-07-02 15:02:01 -05:00
transport.c RPC/RDMA: support FRMR client memory registration. 2008-10-10 15:09:34 -04:00
verbs.c RPC/RDMA: fix connection IRD/ORD setting 2008-10-10 15:09:56 -04:00
xprt_rdma.h RPC/RDMA: add data types and new FRMR memory registration enum. 2008-10-10 15:09:24 -04:00