xref: /linux/Documentation/networking/smc-sysctl.rst (revision dfecb0c5af3b07ebfa84be63a7a21bfc9e29a872)
1.. SPDX-License-Identifier: GPL-2.0
2
3==========
4SMC Sysctl
5==========
6
7/proc/sys/net/smc/* Variables
8=============================
9
10autocorking_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
25smcr_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
38smcr_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
45wmem - 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
53rmem - 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
61smcr_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
69smcr_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
75smcr_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 ether 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
95smcr_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 16. 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 ether successful or (unlikely)
110	we dip below the old hard coded value which is 16 where we give up much
111	like before having this control.
112
113	Default: 48
114
115limit_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
128hs_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
141