Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1469652 > unrolled thread

[PATCH] net: macb: Increase DMA buffer size

Started byXander Huff <xander.huff@ni.com>
First post2016-08-24 21:00 +0200
Last post2016-08-26 02:20 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] net: macb: Increase DMA buffer size Xander Huff <xander.huff@ni.com> - 2016-08-24 21:00 +0200
    Re: [PATCH] net: macb: Increase DMA buffer size Nicolas Ferre <nicolas.ferre@atmel.com> - 2016-08-24 21:20 +0200
      [PATCH v2] net: macb: Increase DMA TX buffer size Xander Huff <xander.huff@ni.com> - 2016-08-25 01:30 +0200
        Re: [PATCH v2] net: macb: Increase DMA TX buffer size David Miller <davem@redhat.com> - 2016-08-26 02:20 +0200

#1469652 — [PATCH] net: macb: Increase DMA buffer size

FromXander Huff <xander.huff@ni.com>
Date2016-08-24 21:00 +0200
Subject[PATCH] net: macb: Increase DMA buffer size
Message-ID<s9Lz4-6dc-3@gated-at.bofh.it>
From: Nathan Sullivan <nathan.sullivan@ni.com>

In recent testing with the RT patchset, we have seen cases where the
transmit ring can fill even with up to 200 txbds in the ring.  Increase
the size of the DMA rings to avoid overruns.

Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>
Acked-by: Ben Shelton <ben.shelton@ni.com>
Acked-by: Jaeden Amero <jaeden.amero@ni.com>
Natinst-ReviewBoard-ID: 83662
---
 drivers/net/ethernet/cadence/macb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 3256839..86a8e20 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -35,12 +35,12 @@
 
 #include "macb.h"
 
-#define MACB_RX_BUFFER_SIZE	128
+#define MACB_RX_BUFFER_SIZE	1536
 #define RX_BUFFER_MULTIPLE	64  /* bytes */
 #define RX_RING_SIZE		512 /* must be power of 2 */
 #define RX_RING_BYTES		(sizeof(struct macb_dma_desc) * RX_RING_SIZE)
 
-#define TX_RING_SIZE		128 /* must be power of 2 */
+#define TX_RING_SIZE		512 /* must be power of 2 */
 #define TX_RING_BYTES		(sizeof(struct macb_dma_desc) * TX_RING_SIZE)
 
 /* level of occupied TX descriptors under which we wake up TX process */
-- 
1.9.1

[toc] | [next] | [standalone]


#1469660

FromNicolas Ferre <nicolas.ferre@atmel.com>
Date2016-08-24 21:20 +0200
Message-ID<s9LSp-6Bj-3@gated-at.bofh.it>
In reply to#1469652
Le 24/08/2016 à 20:25, Xander Huff a écrit :
> From: Nathan Sullivan <nathan.sullivan@ni.com>
> 
> In recent testing with the RT patchset, we have seen cases where the
> transmit ring can fill even with up to 200 txbds in the ring.  Increase
> the size of the DMA rings to avoid overruns.
> 
> Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>
> Acked-by: Ben Shelton <ben.shelton@ni.com>
> Acked-by: Jaeden Amero <jaeden.amero@ni.com>
> Natinst-ReviewBoard-ID: 83662
> ---
>  drivers/net/ethernet/cadence/macb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
> index 3256839..86a8e20 100644
> --- a/drivers/net/ethernet/cadence/macb.c
> +++ b/drivers/net/ethernet/cadence/macb.c
> @@ -35,12 +35,12 @@
>  
>  #include "macb.h"
>  
> -#define MACB_RX_BUFFER_SIZE	128
> +#define MACB_RX_BUFFER_SIZE	1536

This change seems not covered by the commit message. Can you  please
separate the changes in 2 patches or elaborate a bit more the reason for
this RX buffer size change.

Bye,

>  #define RX_BUFFER_MULTIPLE	64  /* bytes */
>  #define RX_RING_SIZE		512 /* must be power of 2 */
>  #define RX_RING_BYTES		(sizeof(struct macb_dma_desc) * RX_RING_SIZE)
>  
> -#define TX_RING_SIZE		128 /* must be power of 2 */
> +#define TX_RING_SIZE		512 /* must be power of 2 */
>  #define TX_RING_BYTES		(sizeof(struct macb_dma_desc) * TX_RING_SIZE)
>  
>  /* level of occupied TX descriptors under which we wake up TX process */
> 


-- 
Nicolas Ferre

[toc] | [prev] | [next] | [standalone]


#1469786 — [PATCH v2] net: macb: Increase DMA TX buffer size

FromXander Huff <xander.huff@ni.com>
Date2016-08-25 01:30 +0200
Subject[PATCH v2] net: macb: Increase DMA TX buffer size
Message-ID<s9PMm-17y-23@gated-at.bofh.it>
In reply to#1469660
From: Nathan Sullivan <nathan.sullivan@ni.com>

In recent testing with the RT patchset, we have seen cases where the
transmit ring can fill even with up to 200 txbds in the ring. Increase the
size of the DMA TX ring to avoid overruns.

Signed-off-by: Xander Huff <xander.huff@ni.com>
Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>
---
 drivers/net/ethernet/cadence/macb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 3256839..3efddb7 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -40,7 +40,7 @@
 #define RX_RING_SIZE		512 /* must be power of 2 */
 #define RX_RING_BYTES		(sizeof(struct macb_dma_desc) * RX_RING_SIZE)
 
-#define TX_RING_SIZE		128 /* must be power of 2 */
+#define TX_RING_SIZE		512 /* must be power of 2 */
 #define TX_RING_BYTES		(sizeof(struct macb_dma_desc) * TX_RING_SIZE)
 
 /* level of occupied TX descriptors under which we wake up TX process */
-- 
1.9.1

[toc] | [prev] | [next] | [standalone]


#1470492 — Re: [PATCH v2] net: macb: Increase DMA TX buffer size

FromDavid Miller <davem@redhat.com>
Date2016-08-26 02:20 +0200
SubjectRe: [PATCH v2] net: macb: Increase DMA TX buffer size
Message-ID<sad2h-888-9@gated-at.bofh.it>
In reply to#1469786
From: Xander Huff <xander.huff@ni.com>
Date: Wed, 24 Aug 2016 17:25:39 -0500

> From: Nathan Sullivan <nathan.sullivan@ni.com>
> 
> In recent testing with the RT patchset, we have seen cases where the
> transmit ring can fill even with up to 200 txbds in the ring. Increase the
> size of the DMA TX ring to avoid overruns.
> 
> Signed-off-by: Xander Huff <xander.huff@ni.com>
> Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>

This is really a short term solution.

While a larger TX ring may help RT, it's wasteful to have a ring that
large on non-RT.  Both uses are valid.

Therefore what really needs to happen is to make this driver support
changing the RX and TX ring sizes at runtime via ethtool just like
pretty much every other driver.

THanks.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web