All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dust Li <dust.li@linux.alibaba.com>
To: Guangguan Wang <guangguan.wang@linux.alibaba.com>,
	wenjia@linux.ibm.com, jaka@linux.ibm.com, kgraul@linux.ibm.com,
	corbet@lwn.net, davem@davemloft.net, kuba@kernel.org,
	pabeni@redhat.com, edumazet@google.com
Cc: tonylu@linux.alibaba.com, alibuda@linux.alibaba.com,
	guwen@linux.alibaba.com, netdev@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next 2/2] net/smc: add sysctl for max conns per lgr for SMC-R v2.1
Date: Fri, 24 Nov 2023 13:51:32 +0800	[thread overview]
Message-ID: <20231124055132.GK3323@linux.alibaba.com> (raw)
In-Reply-To: <20231122135258.38746-3-guangguan.wang@linux.alibaba.com>

On Wed, Nov 22, 2023 at 09:52:58PM +0800, Guangguan Wang wrote:
>Add a new sysctl: net.smc.smcr_max_conns_per_lgr, which is
>used to control the preferred max connections per lgr for
>SMC-R v2.1. The default value of this sysctl is 255, and
>the acceptable value ranges from 16 to 255.
>
>Signed-off-by: Guangguan Wang <guangguan.wang@linux.alibaba.com>

Reviewed-by: Dust Li <dust.li@linux.alibaba.com>

>---
> Documentation/networking/smc-sysctl.rst |  6 ++++++
> include/net/netns/smc.h                 |  1 +
> net/smc/smc_clc.c                       |  5 +++--
> net/smc/smc_sysctl.c                    | 12 ++++++++++++
> net/smc/smc_sysctl.h                    |  1 +
> 5 files changed, 23 insertions(+), 2 deletions(-)
>
>diff --git a/Documentation/networking/smc-sysctl.rst b/Documentation/networking/smc-sysctl.rst
>index c6ef86ef4c4f..a874d007f2db 100644
>--- a/Documentation/networking/smc-sysctl.rst
>+++ b/Documentation/networking/smc-sysctl.rst
>@@ -65,3 +65,9 @@ smcr_max_links_per_lgr - INTEGER
> 	for SMC-R v2.1 and later.
> 
> 	Default: 2
>+
>+smcr_max_conns_per_lgr - INTEGER
>+	Controls the max number of connections can be added to a SMC-R link group. The
>+	acceptable value ranges from 16 to 255. Only for SMC-R v2.1 and later.
>+
>+	Default: 255
>diff --git a/include/net/netns/smc.h b/include/net/netns/smc.h
>index da7023587824..fc752a50f91b 100644
>--- a/include/net/netns/smc.h
>+++ b/include/net/netns/smc.h
>@@ -23,5 +23,6 @@ struct netns_smc {
> 	int				sysctl_wmem;
> 	int				sysctl_rmem;
> 	int				sysctl_max_links_per_lgr;
>+	int				sysctl_max_conns_per_lgr;
> };
> #endif
>diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c
>index 1f87c8895a27..0fda5156eef0 100644
>--- a/net/smc/smc_clc.c
>+++ b/net/smc/smc_clc.c
>@@ -944,7 +944,7 @@ int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini)
> 	}
> 	if (smcr_indicated(ini->smc_type_v2)) {
> 		memcpy(v2_ext->roce, ini->smcrv2.ib_gid_v2, SMC_GID_SIZE);
>-		v2_ext->max_conns = SMC_CONN_PER_LGR_PREFER;
>+		v2_ext->max_conns = net->smc.sysctl_max_conns_per_lgr;
> 		v2_ext->max_links = net->smc.sysctl_max_links_per_lgr;
> 	}
> 
>@@ -1191,7 +1191,8 @@ int smc_clc_srv_v2x_features_validate(struct smc_sock *smc,
> 		return SMC_CLC_DECL_NOV2EXT;
> 
> 	if (ini->smcr_version & SMC_V2) {
>-		ini->max_conns = min_t(u8, pclc_v2_ext->max_conns, SMC_CONN_PER_LGR_PREFER);
>+		ini->max_conns = min_t(u8, pclc_v2_ext->max_conns,
>+				       net->smc.sysctl_max_conns_per_lgr);
> 		if (ini->max_conns < SMC_CONN_PER_LGR_MIN)
> 			return SMC_CLC_DECL_MAXCONNERR;
> 
>diff --git a/net/smc/smc_sysctl.c b/net/smc/smc_sysctl.c
>index 3e9bb921e40a..a5946d1b9d60 100644
>--- a/net/smc/smc_sysctl.c
>+++ b/net/smc/smc_sysctl.c
>@@ -27,6 +27,8 @@ static const int net_smc_wmem_init = (64 * 1024);
> static const int net_smc_rmem_init = (64 * 1024);
> static int links_per_lgr_min = SMC_LINKS_ADD_LNK_MIN;
> static int links_per_lgr_max = SMC_LINKS_ADD_LNK_MAX;
>+static int conns_per_lgr_min = SMC_CONN_PER_LGR_MIN;
>+static int conns_per_lgr_max = SMC_CONN_PER_LGR_MAX;
> 
> static struct ctl_table smc_table[] = {
> 	{
>@@ -79,6 +81,15 @@ static struct ctl_table smc_table[] = {
> 		.extra1		= &links_per_lgr_min,
> 		.extra2		= &links_per_lgr_max,
> 	},
>+	{
>+		.procname	= "smcr_max_conns_per_lgr",
>+		.data		= &init_net.smc.sysctl_max_conns_per_lgr,
>+		.maxlen		= sizeof(int),
>+		.mode		= 0644,
>+		.proc_handler	= proc_dointvec_minmax,
>+		.extra1		= &conns_per_lgr_min,
>+		.extra2		= &conns_per_lgr_max,
>+	},
> 	{  }
> };
> 
>@@ -109,6 +120,7 @@ int __net_init smc_sysctl_net_init(struct net *net)
> 	WRITE_ONCE(net->smc.sysctl_wmem, net_smc_wmem_init);
> 	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;
> 
> 	return 0;
> 
>diff --git a/net/smc/smc_sysctl.h b/net/smc/smc_sysctl.h
>index 5783dd7575dd..eb2465ae1e15 100644
>--- a/net/smc/smc_sysctl.h
>+++ b/net/smc/smc_sysctl.h
>@@ -24,6 +24,7 @@ static inline int smc_sysctl_net_init(struct net *net)
> {
> 	net->smc.sysctl_autocorking_size = SMC_AUTOCORKING_DEFAULT_SIZE;
> 	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;
> 	return 0;
> }
> 
>-- 
>2.24.3 (Apple Git-128)

  reply	other threads:[~2023-11-24  5:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-22 13:52 [PATCH net-next 0/2] add two sysctl for SMC-R v2.1 Guangguan Wang
2023-11-22 13:52 ` [PATCH net-next 1/2] net/smc: add sysctl for max links per lgr " Guangguan Wang
2023-11-24  5:50   ` Dust Li
2023-11-24 12:22   ` Jan Karcher
2023-11-22 13:52 ` [PATCH net-next 2/2] net/smc: add sysctl for max conns " Guangguan Wang
2023-11-24  5:51   ` Dust Li [this message]
2023-11-24 12:22   ` Jan Karcher
2023-11-24 12:20 ` [PATCH net-next 0/2] add two sysctl " patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231124055132.GK3323@linux.alibaba.com \
    --to=dust.li@linux.alibaba.com \
    --cc=alibuda@linux.alibaba.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=guangguan.wang@linux.alibaba.com \
    --cc=guwen@linux.alibaba.com \
    --cc=jaka@linux.ibm.com \
    --cc=kgraul@linux.ibm.com \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=tonylu@linux.alibaba.com \
    --cc=wenjia@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.