hv_netvsc: Fix the TX/RX buffer default sizes
authorHaiyang Zhang <haiyangz@microsoft.com>
Mon, 11 Dec 2017 16:56:58 +0000 (08:56 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Mar 2018 10:01:22 +0000 (11:01 +0100)
[ Upstream commit 41f61db2cd24d5ad802386719cccde1479aa82a6 ]

The values were not computed correctly. There are no significant
visible impact, though.

The intended size of RX buffer is 16 MB, and the default slot size is 1728.
So, NETVSC_DEFAULT_RX should be 16*1024*1024 / 1728 = 9709.

The intended size of TX buffer is 1 MB, and the slot size is 6144.
So, NETVSC_DEFAULT_TX should be 1024*1024 / 6144 = 170.

The patch puts the formula directly into the macro, and moves them to
hyperv_net.h, together with related macros.

Fixes: 5023a6db73196 ("netvsc: increase default receive buffer size")
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/hyperv/hyperv_net.h
drivers/net/hyperv/netvsc_drv.c

index 04e9852ab804b9617b36687c094cbd6a7caef8e2..4f3afcf92a7c0eac6993d24c039173d7abc0eada 100644 (file)
@@ -638,13 +638,24 @@ struct nvsp_message {
 /* Max buffer sizes allowed by a host */
 #define NETVSC_RECEIVE_BUFFER_SIZE             (1024 * 1024 * 31) /* 31MB */
 #define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY      (1024 * 1024 * 15) /* 15MB */
-#define NETVSC_SEND_BUFFER_SIZE                        (1024 * 1024 * 15)   /* 15MB */
+#define NETVSC_RECEIVE_BUFFER_DEFAULT          (1024 * 1024 * 16)
+
+#define NETVSC_SEND_BUFFER_SIZE                        (1024 * 1024 * 15)  /* 15MB */
+#define NETVSC_SEND_BUFFER_DEFAULT             (1024 * 1024)
 
 #define NETVSC_INVALID_INDEX                   -1
 
 #define NETVSC_SEND_SECTION_SIZE               6144
 #define NETVSC_RECV_SECTION_SIZE               1728
 
+/* Default size of TX buf: 1MB, RX buf: 16MB */
+#define NETVSC_MIN_TX_SECTIONS 10
+#define NETVSC_DEFAULT_TX      (NETVSC_SEND_BUFFER_DEFAULT \
+                                / NETVSC_SEND_SECTION_SIZE)
+#define NETVSC_MIN_RX_SECTIONS 10
+#define NETVSC_DEFAULT_RX      (NETVSC_RECEIVE_BUFFER_DEFAULT \
+                                / NETVSC_RECV_SECTION_SIZE)
+
 #define NETVSC_RECEIVE_BUFFER_ID               0xcafe
 #define NETVSC_SEND_BUFFER_ID                  0
 
index a32ae02e1b6cb6fc2975b0e124aacb42370c0c5d..c849de3cb0465da8cb993379c9898263f4481b37 100644 (file)
 #include "hyperv_net.h"
 
 #define RING_SIZE_MIN          64
-#define NETVSC_MIN_TX_SECTIONS 10
-#define NETVSC_DEFAULT_TX      192     /* ~1M */
-#define NETVSC_MIN_RX_SECTIONS 10      /* ~64K */
-#define NETVSC_DEFAULT_RX      10485   /* Max ~16M */
 
 #define LINKCHANGE_INT (2 * HZ)
 #define VF_TAKEOVER_INT (HZ / 10)