Date: Thu, 9 Apr 2009 09:04:27 +0900 From: Pyun YongHyeon <pyunyh@gmail.com> To: Bjoern Koenig <bkoenig@alpha-tierchen.de> Cc: stable@freebsd.org, yongari@freebsd.org Subject: Re: fxp: stalled transfers Message-ID: <20090409000427.GD37714@michelle.cdnetworks.co.kr> In-Reply-To: <70ba25e4f1a5e43ab8d99b361235dda2.squirrel@webmail.alpha-tierchen.de> References: <70ba25e4f1a5e43ab8d99b361235dda2.squirrel@webmail.alpha-tierchen.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 09, 2009 at 12:05:06AM +0200, Bjoern Koenig wrote: > Hello, > > after upgrading my system from 7.1-RELEASE to recent RELENG_7 I noticed > stalled network transfers in certain cases. I have an Intel PRO/100 > ethernet adapter (card=0x00408086 chip=0x12298086 rev=0x0c). In general > networking works fine. I can ping hosts, surf on websites and so on. But > if I send large files (>1 MB) to my server the transfer stalls after a few > kilobytes. This concerns FTP and SCP likewise. While trying to find a > reason for this problem I did a binary search on the source tree using a > generic kernel configuration and found out that the following commit is > responsible for this: > > SVN rev 188374 on 2009-02-09 03:48:49Z by yongari > > MFC r185330: > Implement TSO for 82550/82551 controllers. > o Configure controller to use dynamic TBD as TSO requires that > operation mode. > o Add a dummy TBD to tx_cb_u as TSO can access one more TBD in TSO > operation. > o Increase a DMA segment size to 4096 to hold a full IP segment > with link layer header. > o Unlike other TSO capable controllers, 82550/82551 does not > modify the first IP packet in TSO operation so driver should > create an IP packet with proper header. Subsequent IP packets > are generated from the header information in the first IP packet > header. Likewise pseudo checksum also should be computed by > driver for the first packet. > o TSO requires one more TBD to hold total TCP payload. To make > code simple for TSO/non-TSO case, increase the index of the > first available TBD array. > o Remove KASSERT that checks the size of a DMA segment should be > less than or equal to MCLBYTES as it's no longer valid in TSO. > o Tx threshold and number of TBDs field is used to store MSS in > TSO. So don't set the Tx threshold in TSO case. > > > I didn't look further on this commit for now. Please review it. Probably > someone of you can give me a hint. > Could you disable TSO and try again?('ifconfig fxp0 -tso' will do the job).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090409000427.GD37714>