SMC Sysctl¶
/proc/sys/net/smc/* Variables¶
- autocorking_size - INTEGER
Setting SMC auto corking size:SMC auto corking is like TCP auto corking from the application’sperspective of view. When applications do consecutive smallwrite()/
sendmsg()system calls, we try to coalesce these small writesas much as possible, to lower total amount of CDC and RDMA Write beensent.autocorking_size limits the maximum corked bytes that can be sent tothe under device in 1 single sending. If set to 0, the SMC auto corkingis disabled.Applications can still use TCP_CORK for optimal behavior when theyknow how/when to uncork their sockets.Default: 64K
- smcr_buf_type - INTEGER
Controls which type of sndbufs and RMBs to use in later newly createdSMC-R link group. Only for SMC-R.
Default: 0 (physically contiguous sndbufs and RMBs)
Possible values:
0 - Use physically contiguous buffers
1 - Use virtually contiguous buffers
2 - Mixed use of the two types. Try physically contiguous buffers first.If not available, use virtually contiguous buffers then.
- smcr_testlink_time - INTEGER
How frequently SMC-R link sends out TEST_LINK LLC messages to confirmviability, after the last activity of connections on it. Value 0 meansdisabling TEST_LINK.
Default: 30 seconds.
- wmem - INTEGER
Initial size of send buffer used by SMC sockets.
The minimum value is 16KiB and there is no hard limit for max value, butonly allowed 512KiB for SMC-R and 1MiB for SMC-D.
Default: 64KiB
- rmem - INTEGER
Initial size of receive buffer (RMB) used by SMC sockets.
The minimum value is 16KiB and there is no hard limit for max value, butonly allowed 512KiB for SMC-R and 1MiB for SMC-D.
Default: 64KiB
- smcr_max_links_per_lgr - INTEGER
Controls the max number of links can be added to a SMC-R link group. Notice thatthe actual number of the links added to a SMC-R link group depends on the numberof RDMA devices exist in the system. The acceptable value ranges from 1 to 2. Onlyfor SMC-R v2.1 and later.
Default: 2
- smcr_max_conns_per_lgr - INTEGER
Controls the max number of connections can be added to a SMC-R link group. Theacceptable value ranges from 16 to 255. Only for SMC-R v2.1 and later.
Default: 255
- smcr_max_send_wr - INTEGER
So-called work request buffers are SMCR link (and RDMA queue pair) levelresources necessary for performing RDMA operations. Since up to 255connections can share a link group and thus also a link and the numberof the work request buffers is decided when the link is allocated,depending on the workload it can be a bottleneck in a sense that threadshave to wait for work request buffers to become available. Before theintroduction of this control the maximal number of work request buffersavailable on the send path used to be hard coded to 16. With this controlit becomes configurable. The acceptable range is between 2 and 2048.
Please be aware that all the buffers need to be allocated as a physicallycontinuous array in which each element is a single buffer and has the sizeof SMC_WR_BUF_SIZE (48) bytes. If the allocation fails, we keep retryingwith half of the buffer count until it is ether successful or (unlikely)we dip below the old hard coded value which is 16 where we give up muchlike before having this control.
Default: 16
- smcr_max_recv_wr - INTEGER
So-called work request buffers are SMCR link (and RDMA queue pair) levelresources necessary for performing RDMA operations. Since up to 255connections can share a link group and thus also a link and the numberof the work request buffers is decided when the link is allocated,depending on the workload it can be a bottleneck in a sense that threadshave to wait for work request buffers to become available. Before theintroduction of this control the maximal number of work request buffersavailable on the receive path used to be hard coded to 16. With this controlit becomes configurable. The acceptable range is between 2 and 2048.
Please be aware that all the buffers need to be allocated as a physicallycontinuous array in which each element is a single buffer and has the sizeof SMC_WR_BUF_SIZE (48) bytes. If the allocation fails, we keep retryingwith half of the buffer count until it is ether successful or (unlikely)we dip below the old hard coded value which is 16 where we give up muchlike before having this control.
Default: 48