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=falsequoted
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;