Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xprtrdma: Support larger inline thresholds

The Version One default inline threshold is still 1KB. But allow
testing with thresholds up to 64KB.

This maximum is somewhat arbitrary. There's no fundamental
architectural limit I'm aware of, but it's good to keep the size of
Receive buffers reasonable. Now that Send can use a s/g list, a
Send buffer is only as large as each RPC requires. Receive buffers
are always the size of the inline threshold, however.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>

authored by

Chuck Lever and committed by
Anna Schumaker
44829d02 655fec69

+4 -4
+2 -2
include/linux/sunrpc/xprtrdma.h
··· 53 53 #define RPCRDMA_MAX_SLOT_TABLE (256U) 54 54 55 55 #define RPCRDMA_MIN_INLINE (1024) /* min inline thresh */ 56 - #define RPCRDMA_DEF_INLINE (1024) /* default inline thresh */ 57 - #define RPCRDMA_MAX_INLINE (3068) /* max inline thresh */ 56 + #define RPCRDMA_DEF_INLINE (4096) /* default inline thresh */ 57 + #define RPCRDMA_MAX_INLINE (65536) /* max inline thresh */ 58 58 59 59 /* Memory registration strategies, by number. 60 60 * This is part of a kernel / user space API. Do not remove. */
+2 -2
net/sunrpc/xprtrdma/transport.c
··· 97 97 .data = &xprt_rdma_max_inline_read, 98 98 .maxlen = sizeof(unsigned int), 99 99 .mode = 0644, 100 - .proc_handler = proc_dointvec, 100 + .proc_handler = proc_dointvec_minmax, 101 101 .extra1 = &min_inline_size, 102 102 .extra2 = &max_inline_size, 103 103 }, ··· 106 106 .data = &xprt_rdma_max_inline_write, 107 107 .maxlen = sizeof(unsigned int), 108 108 .mode = 0644, 109 - .proc_handler = proc_dointvec, 109 + .proc_handler = proc_dointvec_minmax, 110 110 .extra1 = &min_inline_size, 111 111 .extra2 = &max_inline_size, 112 112 },