diff mbox series

[net-next] vmxnet3: increase default rx ring sizes

Message ID 20171128211204.12234-1-skhare@vmware.com
State Changes Requested, archived
Delegated to: David Miller
Headers show
Series [net-next] vmxnet3: increase default rx ring sizes | expand

Commit Message

Shrikrishna Khare Nov. 28, 2017, 9:12 p.m. UTC
We often notice rx packet drops due to small default rx ring sizes and
solve the problem by increasing the ring sizes. This patch increases the
default rx ring sizes thereby reducing the probability of rx packet
drops out of the box.

Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
Acked-by: Jin Heo <heoj@vmware.com>
Acked-by: Guolin Yang <gyang@vmware.com>
Acked-by: Boon Ang <bang@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_int.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Andrew Lunn Nov. 28, 2017, 9:33 p.m. UTC | #1
>  /*
>   * Version numbers
>   */
> -#define VMXNET3_DRIVER_VERSION_STRING   "1.4.a.0-k"
> +#define VMXNET3_DRIVER_VERSION_STRING   "1.4.11.0-k"
>  
>  /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
> -#define VMXNET3_DRIVER_VERSION_NUM      0x01040a00
> +#define VMXNET3_DRIVER_VERSION_NUM      0x01040b00

Version strings in drivers are totally pointless, but should not this
be 0x01041100?

   Andrew
Shrikrishna Khare Nov. 28, 2017, 9:49 p.m. UTC | #2
On Tue, 28 Nov 2017, Andrew Lunn wrote:

> >  /*
> >   * Version numbers
> >   */
> > -#define VMXNET3_DRIVER_VERSION_STRING   "1.4.a.0-k"
> > +#define VMXNET3_DRIVER_VERSION_STRING   "1.4.11.0-k"
> >  
> >  /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
> > -#define VMXNET3_DRIVER_VERSION_NUM      0x01040a00
> > +#define VMXNET3_DRIVER_VERSION_NUM      0x01040b00
> 
> Version strings in drivers are totally pointless, but should not this
> be 0x01041100?
> 

Version number is hex value written to vmxnet3 emulation, thus 0x1040b00 
is correct (0x0b = 11). The VERSION_STRING should have previously been 
"1.4.10.0-k", this patch rectifies that by setting correct value 
"1.4.11.0-k".

I will let John Savanyo (cc'ed) comment on having the version in the 
driver part.

Thanks,
Shri
David Miller Nov. 29, 2017, 2:14 p.m. UTC | #3
From: Shrikrishna Khare <skhare@vmware.com>
Date: Tue, 28 Nov 2017 13:12:04 -0800

> We often notice rx packet drops due to small default rx ring sizes and
> solve the problem by increasing the ring sizes. This patch increases the
> default rx ring sizes thereby reducing the probability of rx packet
> drops out of the box.
> 
> Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
> Acked-by: Jin Heo <heoj@vmware.com>
> Acked-by: Guolin Yang <gyang@vmware.com>
> Acked-by: Boon Ang <bang@vmware.com>

That's not enough for me.

If you're going to quadruple your default RX ring size I want to
hear more about the research you did into the packet drops and
whether other things can be done to solve the problem.

Is something holding onto the packets unnecessarily long?

Is something blocking interrupts (hardware or software)?

Is an offload miscoded or misbehaving?

Is there a problem with the RX ring replenish algorithm of the
driver or it's heuristics?

Tell me more about that than just "bumping the RX ring
size fixes the problem".

Thank you.
David Miller Nov. 30, 2017, 3:11 p.m. UTC | #4
From: Boon Ang <bang@vmware.com>
Date: Wed, 29 Nov 2017 16:25:16 +0000

> I hope the above explains our motivation.  Let us know if you have
> more questions.

Please add these descriptive details to your commit message and
resubmit.
diff mbox series

Patch

diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h
index 9c51b8be0038..5ba222920e80 100644
--- a/drivers/net/vmxnet3/vmxnet3_int.h
+++ b/drivers/net/vmxnet3/vmxnet3_int.h
@@ -69,10 +69,10 @@ 
 /*
  * Version numbers
  */
-#define VMXNET3_DRIVER_VERSION_STRING   "1.4.a.0-k"
+#define VMXNET3_DRIVER_VERSION_STRING   "1.4.11.0-k"
 
 /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
-#define VMXNET3_DRIVER_VERSION_NUM      0x01040a00
+#define VMXNET3_DRIVER_VERSION_NUM      0x01040b00
 
 #if defined(CONFIG_PCI_MSI)
 	/* RSS only makes sense if MSI-X is supported. */
@@ -416,8 +416,8 @@  struct vmxnet3_adapter {
 
 /* must be a multiple of VMXNET3_RING_SIZE_ALIGN */
 #define VMXNET3_DEF_TX_RING_SIZE    512
-#define VMXNET3_DEF_RX_RING_SIZE    256
-#define VMXNET3_DEF_RX_RING2_SIZE   128
+#define VMXNET3_DEF_RX_RING_SIZE    1024
+#define VMXNET3_DEF_RX_RING2_SIZE   256
 
 #define VMXNET3_DEF_RXDATA_DESC_SIZE 128