pktgen: Rework to improve performance using low CPU frequency
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 17 Nov 2012 10:07:21 +0000 (18:07 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 22 Nov 2012 12:12:58 +0000 (20:12 +0800)
commit391741ecf79383bb438422ff3941bac9c50cb988
treeac6eac0b2111a33b7306371440235c3f52dc3145
parent597382cf67f80590bd8cbf97c3318983c00d3283
pktgen: Rework to improve performance using low CPU frequency

The performance improvement is measured on AMD970 operating at 800Mhz
w/ Intel 82575 NIC using 18bytes UDP datagrams.

- Don't refill and allocate new packets for each transmission, instead
  a set of pregenerated packets are used.
- Use NIC driver's "txeof" to tick out more packets instead of bindly
  trying to inject more packets into NIC's TX ring.

These above two modifications give me ~200Kpps (710Kpps -> 910Kpps)
transmission rate improvement.

- Don't use hardware TX checksum offloading feature.  Since the set of
  packets to be used are pregenerated, this will not hurt performance,
  instead, this could improve performance on certain hardwares, e.g.
  Intel's NIC chipsets which require additional TX descriptor for setting
  up hardware TX checksum offload context.

The above modification give me additional ~40Kpps transmission rate
improvement.
tools/tools/netrate/pktgen/pktgen.c
tools/tools/netrate/pktgen/pktgen.h
tools/tools/netrate/pktgenctl/Makefile
tools/tools/netrate/pktgenctl/pktgenctl.c