TSP on em makes send of streams very slow
Artem Kuchin
matrix at itlegion.ru
Fri Sep 21 11:35:13 PDT 2007
Hello!
Here is what i have experienced today.
I just installed 7.0-CURRENT (cvsed and build on 2007/09/20)
on a PRODUCTION web server
(because, IHMO, this current is stable enough and i like
too much :)
This is intel MB with two built-in em intefaces.
I sshed to the server.
While i was in plain shell everything was fine, but when i
stared midnight commander i saw how it very slowly draws
scren part by part. It took about 3 monutes to almost
completely draw a screen when i got disconnected. I tied again
- the same. Then i connected via ftp and uploaded 10MB file
at 900KB/sec. When i tried to download it back i got about
500 *BYTES*/sec and the got disconnected in a couple of minutes.
Ping was just find, even flood ping from the server on the save
switch with 15000 packets was fine (just one dot on the left).
I went also crazy already when i desided to compare interface params
with another server with em NICs.
The dfference is that this is has the following options (by DEFAULT,
i did not turn it on):
VLAN_HWCSUM,TSO4
I've read about TSO on 'man ifconfig' and just for kicks decided
to turn it off. VOILA!!! In a seconds send speed was up to 10 MBYTES/sec!
I have googled about 'em tso slow ' etc.. and found a couple of seemingly
the same problem dated back 2006. Is it supposed to be solved by now?
What IS the problem with TSO?
Another question, what is VLAN_HWCSUM? Is it good for anything on a web
server? How to disable it? (this option is not descriobed on ifconfig man
page).
Weirdly enough, when i looked at pciconf i have noticed that two build in
nic are different chips. Is it normal?
em1 at pci6:5:0: class=0x020000 card=0x30a18086 chip=0x10768086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = '82541EI Gigabit Ethernet Controller'
class = network
subclass = ethernet
em0 at pci5:0:0: class=0x020000 card=0x30a28086 chip=0x108c8086 rev=0x03 hdr=0x00
vendor = 'Intel Corporation'
device = 'PRO/1000 PM'
class = network
subclass = ethernet
ifconfig:
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:16:76:9b:a1:bc
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM>
ether 00:16:76:9b:a1:bd
media: Ethernet autoselect
status: no carrier
Another em man page weirdness is that it says that if one does not
specify full-duplex in mediaopt then driver is supposed top be in
half-duplex even in autoselect mode. It definetely does not behave
like this (you can see in my ifconfig output).
Totally BTW: should i enable polling? does it give anything good
at very low cost?
--
Regards,
Artem Kuchin
IT Legion
Moscow, Russia
www.itlegion.ru
+7 495 232-0338
More information about the freebsd-current
mailing list