Re: [PATCH RFC net-next] net/smc: Unbind buffer size from clcsock and make it tunable

Karsten Graul
2021-11-22T15:08:48Z

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@linux.alibaba.com>
> Reviewed-by: Wen Gu <guwen@linux.alibaba.com>
> ---

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.