Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Sep 2007 22:08:16 +0400
From:      "Artem Kuchin" <matrix@itlegion.ru>
To:        <freebsd-current@freebsd.org>
Subject:   TSP on em makes send of streams very slow
Message-ID:  <01c801c7fc7a$696ab900$0c00a8c0@Artem>

next in thread | raw e-mail | index | archive | help
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@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@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






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?01c801c7fc7a$696ab900$0c00a8c0>