Re: [PATCH net-next v2] net/smc: add sysctl for smc_limit_hs

Wen Gu
2024-08-21T07:21:31Z

On 2024/8/21 10:36, D. Wythe wrote:
> From: "D. Wythe" <alibuda@linux.alibaba.com>
>
> In commit 48b6190a0042 ("net/smc: Limit SMC visits when handshake workqueue congested"),
> we introduce a mechanism to put constraint on SMC connections visit
> according to the pressure of SMC handshake process.
>
> At that time, we believed that controlling the feature through netlink
> was sufficient. However, most people have realized now that netlink is
> not convenient in container scenarios, and sysctl is a more suitable
> approach.
>
> In addition, since commit 462791bbfa35 ("net/smc: add sysctl interface for SMC")
> had introcuded smc_sysctl_net_init(), it is reasonable for us to
> initialize limit_smc_hs in it instead of initializing it in
> smc_pnet_net_int().
>
> Signed-off-by: D. Wythe <alibuda@linux.alibaba.com>

LGTM. Thanks!

Reviewed-by: Wen Gu <guwen@linux.alibaba.com>

> ---
> v1 -> v2:
>
> Modified the description in the commit and removed the incorrect
> spelling.
>
> net/smc/smc_pnet.c | 3 ---
> net/smc/smc_sysctl.c | 11 +++++++++++
> 2 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c
> index 2adb92b..1dd3623 100644
> --- a/net/smc/smc_pnet.c
> +++ b/net/smc/smc_pnet.c
> @@ -887,9 +887,6 @@ int smc_pnet_net_init(struct net *net)
>
> smc_pnet_create_pnetids_list(net);
>
> - /* disable handshake limitation by default */
> - net->smc.limit_smc_hs = 0;
> -
> return 0;
> }
>
> diff --git a/net/smc/smc_sysctl.c b/net/smc/smc_sysctl.c
> index 13f2bc0..2fab645 100644
> --- a/net/smc/smc_sysctl.c
> +++ b/net/smc/smc_sysctl.c
> @@ -90,6 +90,15 @@
> .extra1 = &conns_per_lgr_min,
> .extra2 = &conns_per_lgr_max,
> },
> + {
> + .procname = "limit_smc_hs",
> + .data = &init_net.smc.limit_smc_hs,
> + .maxlen = sizeof(int),
> + .mode = 0644,
> + .proc_handler = proc_dointvec_minmax,
> + .extra1 = SYSCTL_ZERO,
> + .extra2 = SYSCTL_ONE,
> + },
> };
>
> int __net_init smc_sysctl_net_init(struct net *net)
> @@ -121,6 +130,8 @@ int __net_init smc_sysctl_net_init(struct net *net)
> WRITE_ONCE(net->smc.sysctl_rmem, net_smc_rmem_init);
> net->smc.sysctl_max_links_per_lgr = SMC_LINKS_PER_LGR_MAX_PREFER;
> net->smc.sysctl_max_conns_per_lgr = SMC_CONN_PER_LGR_PREFER;
> + /* disable handshake limitation by default */
> + net->smc.limit_smc_hs = 0;
>
> return 0;
>