[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d21add89-7298-4574-9873-44c8e9dd8075@linux.alibaba.com>
Date: Fri, 16 Aug 2024 10:06:12 +0800
From: "D. Wythe" <alibuda@...ux.alibaba.com>
To: Wen Gu <guwen@...ux.alibaba.com>, kgraul@...ux.ibm.com,
wenjia@...ux.ibm.com, jaka@...ux.ibm.com, wintera@...ux.ibm.com
Cc: kuba@...nel.org, davem@...emloft.net, netdev@...r.kernel.org,
linux-s390@...r.kernel.org, linux-rdma@...r.kernel.org,
tonylu@...ux.alibaba.com, pabeni@...hat.com, edumazet@...gle.com
Subject: Re: [PATCH net-next] net/smc: add sysctl for smc_limit_hs
On 8/15/24 9:14 PM, Wen Gu wrote:
>
>
> On 2024/8/15 21:03, D. Wythe wrote:
>> From: "D. Wythe" <alibuda@...ux.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, it is not reasonable for us to initialize limit_smc_hs in
>> smc_pnet_net_init, we made a mistable before. It should be initialized
>
> nit: mistable -> mistake?
Take it. Also, I suddenly realized that the reason for initializing
limit_smc_hs in smc_pnet_net_init before
was because there was no smc_sysctl_net_init at that time ...
D. Wythe
>
>> in smc_sysctl_net_init(), just like other systcl.
>>
>> Signed-off-by: D. Wythe <alibuda@...ux.alibaba.com>
>> ---
>> 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;
Powered by blists - more mailing lists