Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Nov 2007 10:03:07 +0100
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Jack Vogel <jfvogel@gmail.com>
Cc:        Vitezslav Novy <vnovy@vnovy.net>, freebsd-stable@freebsd.org
Subject:   Re: 7.0 BETA3 - slow TCP upload (TSO related?)
Message-ID:  <474FD1CB.3020601@FreeBSD.org>
In-Reply-To: <2a41acea0711300016w1aa144fel1641b3dbf075e043@mail.gmail.com>
References:  <474FB9E5.9090208@vnovy.net> <2a41acea0711300016w1aa144fel1641b3dbf075e043@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

Jack Vogel wrote:
> On Nov 29, 2007 11:21 PM, Vitezslav Novy <vnovy@vnovy.net> wrote:
>> Hello,
>>
>> my configuration is
>>
>> kernel GENERIC
>>
>> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>>          options=18b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM,TSO4>
>>          ether 00:19:d1:0f:1c:18
>>          inet 86.49.14.16 netmask 0xffffff00 broadcast 86.49.14.255
>>          media: Ethernet autoselect (100baseTX <full-duplex>)
>>          status: active
>>
>> and standard "open" ipfw firewall and
>> natd -u -s -m -d -dynamic -n em0
>>
>> I experience very slow TCP upload from this host - cca 50kbps.
>> I have some debug prints in kernel (mostly in ip_output and ipfw log)
>> and I see:
>>
>> 1/ outgoing packet appears in ip_output with ip_len 2924 and
>> m->pkthdr.csum_flags=1
>> 2/ is diverted by firewall
>> 3/ Packet appears immediately again in ip_output with ip_len 2924 and
>> m->pkthdr.csum_flags=1
>> 4/ Packet is accepted by firewall and dropped by ip_output with error 40
>> EMSGSIZE
>> 5/ After cca 0.4s (tcp retransmit timeout?) new packet appears in
>> ip_output with ip_len 1488 and m->pkthdr.csum_flags=1
>> 6/ is successfully diverted and accepted by ipfw and sent to wire.
>> 7/ after tcp ack is received new packet appears in ip_output with ip_len
>> 2924 and everything repeats
>>
>>
>> Packets are not changed by natd, beacause have src address of em0.
>> nat
>>
>>
>> Upload has normal speed (512kbps) if
>> I unset TSO on interface OR set net.inet.tcp.tso=0 OR (strange thing)
>> delete ipfw divert rule
>>
>> If necessary I will collect and send more info.
> 
> TSO is silly at 100Mb, turn it off :)

When this was reported before I asked why does the driver allow it, if 
it is "silly" and causes so many problems?  Why not just disable it by 
default if the link is 100Mb?

Kris


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?474FD1CB.3020601>