public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: juice@swagman.org
Cc: "Brandeburg, Jesse" <jesse.brandeburg@intel.com>,
	"Loke, Chetan" <chetan.loke@netscout.com>,
	Jon Zhou <jon.zhou@jdsu.com>,
	Stephen Hemminger <shemminger@vyatta.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: RE: Using ethernet device as efficient small packet generator
Date: Mon, 24 Jan 2011 10:18:13 +0100	[thread overview]
Message-ID: <1295860693.2755.17.camel@edumazet-laptop> (raw)
In-Reply-To: <30747065682effddc661b8cd235553d9.squirrel@www.liukuma.net>

Le lundi 24 janvier 2011 à 10:10 +0200, juice a écrit :
> >> you may also want to try reducing the tx descriptor ring count to 128
> >> using ethtool, and change the ethtool -C rx-usecs 20 setting, try
> >> 20,30,40,50,60
> >
> > So this could up my current network card to a little faster?
> > If I can reach 1.1Mpackets/s, thats about 560Mbits/s. At least it would
> > get me a little closet to what I am trying to achieve.
> >
> 
> I tried these tunings, and it turns out that I am able to get the best
> performance with pktgen when I set the options "ethtool -G eth1 tx 128"
> and "ethtool -C eth1 rx-usecs 10". Anything different will lower the TX
> performance.
> 

That (rx-usecs 10) makes no sense.
pktgen sends packets.
You should not receive packets ?

> Now I can get these rates:
> 
> root@d8labralinux:/var/home/juice/pkt_test# cat /proc/net/pktgen/eth1
> Params: count 10000000  min_pkt_size: 60  max_pkt_size: 60
>      frags: 0  delay: 0  clone_skb: 1  ifname: eth1
>      flows: 0 flowlen: 0
>      queue_map_min: 0  queue_map_max: 0
>      dst_min: 10.10.11.2  dst_max:
>         src_min:   src_max:
>      src_mac: 00:1b:21:7c:e5:b1 dst_mac: 00:04:23:08:91:dc
>      udp_src_min: 9  udp_src_max: 9  udp_dst_min: 9  udp_dst_max: 9
>      src_mac_count: 0  dst_mac_count: 0
>      Flags:
> Current:
>      pkts-sofar: 10000000  errors: 0
>      started: 1205660106us  stopped: 1218005650us idle: 804us
>      seq_num: 10000001  cur_dst_mac_offset: 0  cur_src_mac_offset: 0
>      cur_saddr: 0x0  cur_daddr: 0x20b0a0a
>      cur_udp_dst: 9  cur_udp_src: 9
>      cur_queue_map: 0
>      flows: 0
> Result: OK: 12345544(c12344739+d804) nsec, 10000000 (60byte,0frags)
>   810008pps 388Mb/sec (388803840bps) errors: 0
> 
> AX4000:
>   Total bitrate:             414.629 MBits/s
>   Packet rate:               809824 packets/s
>   Bandwidth:                 41.46% GE
>   Average packet intereval:  1.23 us
> 
> This is a bit better than the previous maxim of 750064pps / 360Mb/sec
> that I was able to achieve without tuning parameters with ethtool, but
> still not near the 1.1Mpacks/s that shoud be doable with my card?
> 
> Are there other tunings or alternate driver that I could use to get the
> best performance out of the card? Basically what puzzles me is the fact
> that I can get a lot better performance using larger packets, so that
> suggests to me that the bottleneck cannot be the PCIe interface, as I can
> push enough data through it. Is there any way of doing larger transfers
> on the bus, like grouping many smaller packets together to avoid the
> problems caused by so many TX interrupts?
> 

What matters is not size of packets, but number of transactions (packets
per second)

You need a x4 or x8 connector to get more transactions per second, by an
order of magnitude, not 10% or 15% ;)

TX interrupts are already 'grouped', one for ~50 packets

ethtool -c :

tx-usecs: 72
tx-frames: 53
tx-usecs-irq: 0
tx-frames-irq: 53




  reply	other threads:[~2011-01-24  9:18 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-30  1:11 Using ethernet device as efficient small packet generator Loke, Chetan
2011-01-21 11:44 ` juice
2011-01-21 11:51   ` Eric Dumazet
2011-01-21 12:12     ` juice
2011-01-21 13:38       ` Ben Greear
2011-01-21 22:09   ` Brandeburg, Jesse
2011-01-23 21:48     ` juice
2011-01-24  8:10       ` juice
2011-01-24  9:18         ` Eric Dumazet [this message]
2011-01-24 16:34         ` Eric Dumazet
2011-01-24 20:51           ` juice
2011-02-02  8:13       ` juice
  -- strict thread matches above, loose matches on Subject: below --
2010-12-23  5:15 juice
2010-12-23  8:57 ` Jon Zhou
2010-12-23 10:50   ` juice
2010-12-22  7:30 juice
2010-12-22  8:08 ` Eric Dumazet
2010-12-22 11:11   ` juice
2010-12-22 11:28     ` Eric Dumazet
2010-12-22 15:48   ` Jon Zhou
2010-12-22 15:59     ` Eric Dumazet
2010-12-22 16:52       ` Jon Zhou
2010-12-22 17:18         ` Eric Dumazet
2010-12-22 17:40           ` Jon Zhou
2010-12-22 17:51             ` Eric Dumazet
2010-12-22 17:15       ` Jon Zhou
2010-12-21  9:56 juice
2010-12-21 18:22 ` Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1295860693.2755.17.camel@edumazet-laptop \
    --to=eric.dumazet@gmail.com \
    --cc=chetan.loke@netscout.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=jon.zhou@jdsu.com \
    --cc=juice@swagman.org \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@vyatta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox