- Check number of free TX descs before trying to xmit packets
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 12 Jul 2008 11:44:17 +0000 (11:44 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 12 Jul 2008 11:44:17 +0000 (11:44 +0000)
commitd378110e40035522bcb4010cacb561b4c6b70cd9
tree4b6ec0b0ca39195e8abd6fce50257b3ae1f42fcc
parent1ace988fe435f9f0a09f9f3768c169ea38ab0f54
- Check number of free TX descs before trying to xmit packets
- Recollect TX descs in nfe_start() if nfe(4) is going to enter OACTIVE
- Use dynamic segment limit for bus_dmamap_load() in nfe_encap()

This change gives me following result on AMD64X2 3600+ with MCP51:

10 seconds, TX 64bytes packets, before/after

256 TX desc
 imtimer | packets     | if_snd full    | if_oerrors
  -125     1.08M/1.08M   84532/82786      90/0
  -250     990K/1.08M    3735886/157125   38872/0

4096 TX desc
 imtimer | packets     | if_snd full    | if_oerrors
  -125     1.08M/1.09M   0/0              45/0
  -250     1.08M/1.10M   0/0              39/0

It gives great improvement when number of TX desc is 256 (default),
and it at least will not loose any packets if number TX desc is 4096.
sys/dev/netif/nfe/if_nfe.c
sys/dev/netif/nfe/if_nfereg.h
sys/dev/netif/nfe/if_nfevar.h