net/smc: add sysctl for smc_limit_hs

JIRA: https://issues.redhat.com/browse/RHEL-99989
Conflicts: Conflicts due to change in line numbers between 5.14 & 6.17
kernel, no functional changes

commit f8406a2fd279d05eb4a76c9b77cb740b6f350549
Author: D. Wythe <alibuda@linux.alibaba.com>
Date:   Fri Sep 6 10:35:35 2024 +0800

    net/smc: add sysctl for smc_limit_hs

    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>
    Reviewed-by: Wen Gu <guwen@linux.alibaba.com>
    Reviewed-by: Jan Karcher <jaka@linux.ibm.com>
    Link: https://patch.msgid.link/1725590135-5631-1-git-send-email-alibuda@linux.alibaba.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

Signed-off-by: Mahanta Jambigi <mjambigi@linux.ibm.com>
Signed-off-by: Mete Durlu <mdurlu@redhat.com>
This commit is contained in:
Mete Durlu 2025-11-07 15:48:06 +01:00
parent 1d1ede1e3d
commit debd5dc1ad
2 changed files with 11 additions and 3 deletions

View File

@ -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;
}

View File

@ -66,6 +66,15 @@ static struct ctl_table smc_table[] = {
.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,
},
{ }
};
@ -94,6 +103,8 @@ int __net_init smc_sysctl_net_init(struct net *net)
net->smc.sysctl_smcr_testlink_time = SMC_LLC_TESTLINK_DEFAULT_TIME;
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;