netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] net/smc: Unbind smc control from tcp control
@ 2022-11-23 10:58 Jan Karcher
  2022-11-23 11:13 ` Tony Lu
  2022-11-23 12:07 ` Tony Lu
  0 siblings, 2 replies; 12+ messages in thread
From: Jan Karcher @ 2022-11-23 10:58 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski
  Cc: netdev, linux-s390, Heiko Carstens, Alexandra Winter,
	Wenjia Zhang, Thorsten Winkler, Stefan Raspl, Karsten Graul,
	Jan Karcher, Tony Lu

In the past SMC used the values of tcp_{w|r}mem to create the send
buffer and RMB. We now have our own sysctl knobs to tune them without
influencing the TCP default.

This patch removes the dependency on the TCP control by providing our
own initial values which aim for a low memory footprint.

Signed-off-by: Jan Karcher <jaka@linux.ibm.com>
Reviewed-by: Wenjia Zhang <wenjia@linux.ibm.com>
---
 Documentation/networking/smc-sysctl.rst |  4 ++--
 net/smc/smc_core.h                      |  6 ++++--
 net/smc/smc_sysctl.c                    | 10 ++++++----
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/Documentation/networking/smc-sysctl.rst b/Documentation/networking/smc-sysctl.rst
index 6d8acdbe9be1..a1c634d3690a 100644
--- a/Documentation/networking/smc-sysctl.rst
+++ b/Documentation/networking/smc-sysctl.rst
@@ -44,7 +44,7 @@ smcr_testlink_time - INTEGER
 
 wmem - INTEGER
 	Initial size of send buffer used by SMC sockets.
-	The default value inherits from net.ipv4.tcp_wmem[1].
+	The default value aims for a small memory footprint and is set to 16KiB.
 
 	The minimum value is 16KiB and there is no hard limit for max value, but
 	only allowed 512KiB for SMC-R and 1MiB for SMC-D.
@@ -53,7 +53,7 @@ wmem - INTEGER
 
 rmem - INTEGER
 	Initial size of receive buffer (RMB) used by SMC sockets.
-	The default value inherits from net.ipv4.tcp_rmem[1].
+	The default value aims for a small memory footprint and is set to 64KiB.
 
 	The minimum value is 16KiB and there is no hard limit for max value, but
 	only allowed 512KiB for SMC-R and 1MiB for SMC-D.
diff --git a/net/smc/smc_core.h b/net/smc/smc_core.h
index 285f9bd8e232..67c3937f341d 100644
--- a/net/smc/smc_core.h
+++ b/net/smc/smc_core.h
@@ -206,8 +206,10 @@ struct smc_rtoken {				/* address/key of remote RMB */
 	u32			rkey;
 };
 
-#define SMC_BUF_MIN_SIZE	16384	/* minimum size of an RMB */
-#define SMC_RMBE_SIZES		16	/* number of distinct RMBE sizes */
+#define SMC_SNDBUF_INIT_SIZE 16384 /* initial size of send buffer */
+#define SMC_RCVBUF_INIT_SIZE 65536 /* initial size of receive buffer */
+#define SMC_BUF_MIN_SIZE	 16384	/* minimum size of an RMB */
+#define SMC_RMBE_SIZES		 16	/* number of distinct RMBE sizes */
 /* theoretically, the RFC states that largest size would be 512K,
  * i.e. compressed 5 and thus 6 sizes (0..5), despite
  * struct smc_clc_msg_accept_confirm.rmbe_size being a 4 bit value (0..15)
diff --git a/net/smc/smc_sysctl.c b/net/smc/smc_sysctl.c
index b6f79fabb9d3..a63aa79d4856 100644
--- a/net/smc/smc_sysctl.c
+++ b/net/smc/smc_sysctl.c
@@ -19,8 +19,10 @@
 #include "smc_llc.h"
 #include "smc_sysctl.h"
 
-static int min_sndbuf = SMC_BUF_MIN_SIZE;
-static int min_rcvbuf = SMC_BUF_MIN_SIZE;
+static int initial_sndbuf	= SMC_SNDBUF_INIT_SIZE;
+static int initial_rcvbuf	= SMC_RCVBUF_INIT_SIZE;
+static int min_sndbuf		= SMC_BUF_MIN_SIZE;
+static int min_rcvbuf		= SMC_BUF_MIN_SIZE;
 
 static struct ctl_table smc_table[] = {
 	{
@@ -88,8 +90,8 @@ int __net_init smc_sysctl_net_init(struct net *net)
 	net->smc.sysctl_autocorking_size = SMC_AUTOCORKING_DEFAULT_SIZE;
 	net->smc.sysctl_smcr_buf_type = SMCR_PHYS_CONT_BUFS;
 	net->smc.sysctl_smcr_testlink_time = SMC_LLC_TESTLINK_DEFAULT_TIME;
-	WRITE_ONCE(net->smc.sysctl_wmem, READ_ONCE(net->ipv4.sysctl_tcp_wmem[1]));
-	WRITE_ONCE(net->smc.sysctl_rmem, READ_ONCE(net->ipv4.sysctl_tcp_rmem[1]));
+	WRITE_ONCE(net->smc.sysctl_wmem, initial_sndbuf);
+	WRITE_ONCE(net->smc.sysctl_rmem, initial_rcvbuf);
 
 	return 0;
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-11-25  6:38 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-23 10:58 [PATCH net-next] net/smc: Unbind smc control from tcp control Jan Karcher
2022-11-23 11:13 ` Tony Lu
2022-11-23 11:19   ` Jan Karcher
2022-11-23 11:25     ` Tony Lu
2022-11-24 13:00       ` Alexandra Winter
2022-11-24 14:06         ` Alexandra Winter
2022-11-24 18:04           ` Tony Lu
2022-11-25  6:12             ` Jan Karcher
2022-11-24 17:15         ` Tony Lu
2022-11-25  6:37           ` Jan Karcher
2022-11-23 12:07 ` Tony Lu
2022-11-23 13:36   ` Jan Karcher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).