On 22/11/2021 14:42, Tony Lu wrote: > SMC uses smc->sk.sk_{rcv|snd}buf to create buffer for send buffer or > RMB. And the values of buffer size inherits from clcsock. The clcsock is > a TCP sock which is initiated during SMC connection startup. > > The inherited buffer size doesn't fit SMC well. TCP provides two sysctl > knobs to tune r/w buffers, net.ipv4.tcp_{r|w}mem, and SMC use the default > value from TCP. The buffer size is tuned for TCP, but not fit SMC well > in some scenarios. For example, we need larger buffer of SMC for high > throughput applications, and smaller buffer of SMC for saving contiguous > memory. We need to adjust the buffer size apart from TCP and not to > disturb TCP. > > This unbinds buffer size which inherits from clcsock, and provides > sysctl knobs to adjust buffer size independently. These knobs can be > tuned with different values for different net namespaces for performance > and flexibility. > > Signed-off-by: Tony Lu <tonylu@xxxxxxxxxxxxxxxxx> > Reviewed-by: Wen Gu <guwen@xxxxxxxxxxxxxxxxx> > --- To activate SMC for existing programs usually the smc_run command or the preload library (both from the smc-tools package) are used. This commit introduced support to set the send and recv window sizes using command line parameters or environment variables: https://github.com/ibm-s390-linux/smc-tools/commit/59bfb99c588746f7dca1b3c97fd88f3f7cbc975f Why another way to manipulate these sizes? Your solution would stop applications to set these values.