Thread (29 messages) 29 messages, 6 authors, 2014-10-02

Re: [RFC PATCH net-next] net: pktgen: packet bursting via skb->xmit_more

From: Eric Dumazet <hidden>
Date: 2014-09-26 15:44:32

On Fri, 2014-09-26 at 00:42 -0700, Eric Dumazet wrote:
On Thu, 2014-09-25 at 18:20 -0700, Eric Dumazet wrote:
quoted
On Thu, 2014-09-25 at 17:46 -0700, Alexei Starovoitov wrote:
quoted
This patch demonstrates the effect of delaying update of HW tailptr.
(based on earlier patch by Jesper)

burst=1 is a default. It sends one packet with xmit_more=false
burst=2 sends one packet with xmit_more=true and
        2nd copy of the same packet with xmit_more=false
burst=3 sends two copies of the same packet with xmit_more=true and
        3rd copy with xmit_more=false
quoted
Cc: Jesper Dangaard Brouer <redacted>
Signed-off-by: Alexei Starovoitov <redacted>
---
Perfect, this is what I had in mind, thanks !

Acked-by: Eric Dumazet <edumazet@google.com>
By the way with this patch, I now reach 10 Mpps on mlx4 
On the other hand, bnx2x is not that happy

[  381.424736] bnx2x: [bnx2x_start_xmit:3772(eth0)]BUG! Tx ring full
when queue awake!
[  381.432660] bnx2x: [bnx2x_start_xmit:3772(eth0)]BUG! Tx ring full
when queue awake!
[  381.440337] bnx2x: [bnx2x_start_xmit:3772(eth0)]BUG! Tx ring full
when queue awake!
[  381.448255] bnx2x: [bnx2x_start_xmit:3772(eth0)]BUG! Tx ring full
when queue awake!

When TX_BUSY is replied, and/or  netif_tx_stop_queue(txq) was done by
the driver, the 'burst' loop should stop

So your :

	if (more)
		goto xmit_more;

Should instead be :

	if (more && !netif_xmit_frozen_or_drv_stopped(txq))
		goto xmit_more;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help