linux/net/sunrpc/xprtrdma
Chuck Lever cc9a903d91 svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD
Both commit 0380a3f375 ("svcrdma: Add a separate "max data segs"
macro for svcrdma") and commit 7e5be28827 ("svcrdma: advertise
the correct max payload") are incorrect. This commit reverts both
changes, restoring the server's maximum payload size to 1MB.

Commit 7e5be28827 based the server's maximum payload on the
_client's_ RPCRDMA_MAX_DATA_SEGS value. That was wrong.

Commit 0380a3f375 tried to fix this so that the client maximum
payload size could be raised without affecting the server, but
managed to confuse matters more on the server side.

More importantly, limiting the advertised maximum payload size was
meant to be a workaround, not the actual fix. We need to revisit

  https://bugzilla.linux-nfs.org/show_bug.cgi?id=270

A Linux client on a platform with 64KB pages can overrun and crash
an x86_64 NFS/RDMA server when the r/wsize is 1MB. An x86/64 Linux
client seems to work fine using 1MB reads and writes when the Linux
server's maximum payload size is restored to 1MB.

BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=270
Fixes: 0380a3f375 ("svcrdma: Add a separate "max data segs" macro")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2015-08-10 16:04:57 -04:00
..
Makefile rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
fmr_ops.c xprtrdma: Reduce per-transport MR allocation 2015-06-12 13:10:37 -04:00
frwr_ops.c NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
physical_ops.c xprtrdma: Remove ->ro_reset 2015-06-12 13:10:37 -04:00
rpc_rdma.c xprtrdma: Acquire MRs in rpcrdma_register_external() 2015-06-12 13:10:37 -04:00
svc_rdma.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
svc_rdma_marshal.c svcrdma: Keep rpcrdma_msg fields in network byte-order 2015-06-04 16:55:59 -04:00
svc_rdma_recvfrom.c Merge branch 'for-4.2' of git://linux-nfs.org/~bfields/linux 2015-06-27 10:14:39 -07:00
svc_rdma_sendto.c svcrdma: Clean up svc_rdma_get_reply_array() 2015-07-20 14:58:47 -04:00
svc_rdma_transport.c svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD 2015-08-10 16:04:57 -04:00
transport.c NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
verbs.c NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
xprt_rdma.h svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD 2015-08-10 16:04:57 -04:00