if_em update (Re: if_em and ip aliases)

:I noticed last night that it takes over 3 seconds to add an ip alias on this
:driver. While it's bringing up the alias, the kernel is unresponsive.
:After discussing this with Hiten, he made a patch that brought our driver in
:sync with FreeBSD. Here's a link:
:
:http://www.sublimic.com/~hmp/dragonfly/if_em+integ.diff
:
:After this patch I was able to bring up 254 aliases in about 73 seconds.
:..
All right, I finally got my GigE switches and cards! I can finally
do some real GigE testing in my workroom without having to turn on one
of those blasted Dell2550's :-)
I have patched in the EM update and so far it works like a charm on
my Shuttle AMD64 boxes.
(Server side has cached all the data and isn't going to the hard drive
for these tests)
Default NFS mount (8K r/w):
dhcp62# dd if=/mnt/test of=/dev/null bs=32k
16384+0 records in
16384+0 records out
536870912 bytes transferred in 8.186223 secs (65582248 bytes/sec)
mount_nfs -r 32768 -w 32768 dhcp61:/home /mnt
dhcp62# dd if=/mnt/test of=/dev/null bs=32k
16384+0 records in
16384+0 records out
536870912 bytes transferred in 8.132268 secs (66017366 bytes/sec)
mount_nfs -r 32768 -w 32768 -a2 dhcp61:/home /mnt
dhcp62# dd if=/mnt/test of=/dev/null bs=32k
16384+0 records in
16384+0 records out
536870912 bytes transferred in 5.997798 secs (89511337 bytes/sec)
^^^^^^^^^^^^^
I am officially impressed
Ok, I am officially impressed. 90 MBytes/sec without any serious tuning
is impressive. The cpu on each box was still 75% idle running that
last test, too. The interrupt rate was around 8000 interrupts/sec, using
a standard MTU.
Now lets try TCP:
mount_nfs -T dhcp61:/home /mnt
dhcp62# dd if=/mnt/test of=/dev/null bs=32k
16384+0 records in
16384+0 records out
536870912 bytes transferred in 6.567702 secs (81744106 bytes/sec)
mount_nfs -T -r 32768 -w 32768 -a2 dhcp61:/home /mnt
dhcp62# dd if=/mnt/test of=/dev/null bs=32k
16384+0 records in
16384+0 records out
536870912 bytes transferred in 6.314970 secs (85015592 bytes/sec)
Also very impressive. And, even more to the point, it hasn't crashed or
hicuped on me yet.
Unfortunately it apears that the cheap NetGear GigE switches I bought
can't handle Jumbo frames. The switch's LED blinks on the port I'm
transmitting the jumbo ping's on, but the LED on the target machine's
port does not blink, so the switch is eating the jumbo packets. Ah well.
In anycase, I will do a final review of the patch set and commit it
today. Kudos!
-Matt