| 1 | |
| 2 |
|
| 3 | ==========
|
| 4 | SMC Sysctl
|
| 5 | ==========
|
| 6 |
|
| 7 | /proc/sys/net/smc/* Variables
|
| 8 | =============================
|
| 9 |
|
| 10 | autocorking_size - INTEGER
|
| 11 | Setting SMC auto corking size:
|
| 12 | SMC auto corking is like TCP auto corking from the application's
|
| 13 | perspective of view. When applications do consecutive small
|
| 14 | write()/sendmsg() system calls, we try to coalesce these small writes
|
| 15 | as much as possible, to lower total amount of CDC and RDMA Write been
|
| 16 | sent.
|
| 17 | autocorking_size limits the maximum corked bytes that can be sent to
|
| 18 | the under device in 1 single sending. If set to 0, the SMC auto corking
|
| 19 | is disabled.
|
| 20 | Applications can still use TCP_CORK for optimal behavior when they
|
| 21 | know how/when to uncork their sockets.
|
| 22 |
|
| 23 | Default: 64K
|
| 24 |
|
| 25 | smcr_buf_type - INTEGER
|
| 26 | Controls which type of sndbufs and RMBs to use in later newly created
|
| 27 | SMC-R link group. Only for SMC-R.
|
| 28 |
|
| 29 | Default: 0 (physically contiguous sndbufs and RMBs)
|
| 30 |
|
| 31 | Possible values:
|
| 32 |
|
| 33 | - 0 - Use physically contiguous buffers
|
| 34 | - 1 - Use virtually contiguous buffers
|
| 35 | - 2 - Mixed use of the two types. Try physically contiguous buffers first.
|
| 36 | If not available, use virtually contiguous buffers then.
|
| 37 |
|
| 38 | smcr_testlink_time - INTEGER
|
| 39 | How frequently SMC-R link sends out TEST_LINK LLC messages to confirm
|
| 40 | viability, after the last activity of connections on it. Value 0 means
|
| 41 | disabling TEST_LINK.
|
| 42 |
|
| 43 | Default: 30 seconds.
|
| 44 |
|
| 45 | wmem - INTEGER
|
| 46 | Initial size of send buffer used by SMC sockets.
|
| 47 |
|
| 48 | The minimum value is 16KiB and there is no hard limit for max value, but
|
| 49 | only allowed 512KiB for SMC-R and 1MiB for SMC-D.
|
| 50 |
|
| 51 | Default: 64KiB
|
| 52 |
|
| 53 | rmem - INTEGER
|
| 54 | Initial size of receive buffer (RMB) used by SMC sockets.
|
| 55 |
|
| 56 | The minimum value is 16KiB and there is no hard limit for max value, but
|
| 57 | only allowed 512KiB for SMC-R and 1MiB for SMC-D.
|
| 58 |
|
| 59 | Default: 64KiB
|
| 60 |
|
| 61 | smcr_max_links_per_lgr - INTEGER
|
| 62 | Controls the max number of links can be added to a SMC-R link group. Notice that
|
| 63 | the actual number of the links added to a SMC-R link group depends on the number
|
| 64 | of RDMA devices exist in the system. The acceptable value ranges from 1 to 2. Only
|
| 65 | for SMC-R v2.1 and later.
|
| 66 |
|
| 67 | Default: 2
|
| 68 |
|
| 69 | smcr_max_conns_per_lgr - INTEGER
|
| 70 | Controls the max number of connections can be added to a SMC-R link group. The
|
| 71 | acceptable value ranges from 16 to 255. Only for SMC-R v2.1 and later.
|
| 72 |
|
| 73 | Default: 255
|
| 74 |
|
| 75 | smcr_max_send_wr - INTEGER
|
| 76 | So-called work request buffers are SMCR link (and RDMA queue pair) level
|
| 77 | resources necessary for performing RDMA operations. Since up to 255
|
| 78 | connections can share a link group and thus also a link and the number
|
| 79 | of the work request buffers is decided when the link is allocated,
|
| 80 | depending on the workload it can be a bottleneck in a sense that threads
|
| 81 | have to wait for work request buffers to become available. Before the
|
| 82 | introduction of this control the maximal number of work request buffers
|
| 83 | available on the send path used to be hard coded to 16. With this control
|
| 84 | it becomes configurable. The acceptable range is between 2 and 2048.
|
| 85 |
|
| 86 | Please be aware that all the buffers need to be allocated as a physically
|
| 87 | continuous array in which each element is a single buffer and has the size
|
| 88 | of SMC_WR_BUF_SIZE (48) bytes. If the allocation fails, we keep retrying
|
| 89 | with half of the buffer count until it is either successful or (unlikely)
|
| 90 | we dip below the old hard coded value which is 16 where we give up much
|
| 91 | like before having this control.
|
| 92 |
|
| 93 | Default: 16
|
| 94 |
|
| 95 | smcr_max_recv_wr - INTEGER
|
| 96 | So-called work request buffers are SMCR link (and RDMA queue pair) level
|
| 97 | resources necessary for performing RDMA operations. Since up to 255
|
| 98 | connections can share a link group and thus also a link and the number
|
| 99 | of the work request buffers is decided when the link is allocated,
|
| 100 | depending on the workload it can be a bottleneck in a sense that threads
|
| 101 | have to wait for work request buffers to become available. Before the
|
| 102 | introduction of this control the maximal number of work request buffers
|
| 103 | available on the receive path used to be hard coded to 48. With this control
|
| 104 | it becomes configurable. The acceptable range is between 2 and 2048.
|
| 105 |
|
| 106 | Please be aware that all the buffers need to be allocated as a physically
|
| 107 | continuous array in which each element is a single buffer and has the size
|
| 108 | of SMC_WR_BUF_SIZE (48) bytes. If the allocation fails, we keep retrying
|
| 109 | with half of the buffer count until it is either successful or (unlikely)
|
| 110 | we dip below the old hard coded value which is 48 where we give up much
|
| 111 | like before having this control.
|
| 112 |
|
| 113 | Default: 48
|
| 114 |
|
| 115 | limit_smc_hs - INTEGER
|
| 116 | Whether to limit SMC handshake for newly created sockets.
|
| 117 |
|
| 118 | When enabled, SMC listen path applies handshake limitation based on
|
| 119 | handshake worker congestion and queued SMC handshake load.
|
| 120 |
|
| 121 | Possible values:
|
| 122 |
|
| 123 | - 0 - Disable handshake limitation
|
| 124 | - 1 - Enable handshake limitation
|
| 125 |
|
| 126 | Default: 0 (disable)
|
| 127 |
|
| 128 | hs_ctrl - STRING
|
| 129 | Select the SMC handshake control profile by name.
|
| 130 |
|
| 131 | This string refers to the name of a user-implemented
|
| 132 | BPF struct_ops instance of type smc_hs_ctrl.
|
| 133 |
|
| 134 | The selected profile controls whether SMC options are advertised
|
| 135 | during TCP SYN/SYN-ACK handshake.
|
| 136 |
|
| 137 | Only available when CONFIG_SMC_HS_CTRL_BPF is enabled.
|
| 138 | Write an empty string to clear the current profile.
|
| 139 |
|
| 140 | Default: empty string
|