From owner-freebsd-stable@FreeBSD.ORG Fri Nov 30 18:12:22 2007 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B2B616A46C for ; Fri, 30 Nov 2007 18:12:22 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from mu-out-0910.google.com (mu-out-0910.google.com [209.85.134.189]) by mx1.freebsd.org (Postfix) with ESMTP id 4FA6D13C4D9 for ; Fri, 30 Nov 2007 18:12:20 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by mu-out-0910.google.com with SMTP id i10so3329799mue for ; Fri, 30 Nov 2007 10:12:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=VHPBplPGrByYilbHmmopCYrQRpSmTFIOezaZQuVvgxw=; b=FQ1ybXzPehcFWrHbwJqCXt+qcta25qkWIr97azAtFjPfkOW6S2Fj1VhmgIfV+ZbBaN097Kb/RMKVZiKkTcxwW4oR35GDOwUW61Szmi93/MGLINFkPMETpqXUpmfAq3Ou1DE7zugJB7FNoy2xIc68jvGHDYnF+NnoF2cKOpJeDvA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=KDSZGfcNNRSGzKU5dTciy2mlguK4sLnOSRwhbeCfaROV/u+JUtezMnHbv5E4FptemnopFaZ0Vmmfv9tCllMXgRpVilYuWIZWR9dwBxIU4giayUaMOrESboF2s5wNYLGHCjuT1QBT/VBLRFl4wwcATEAmX+tlczVaN+FCh0u3aSs= Received: by 10.86.100.7 with SMTP id x7mr7515371fgb.1196446339648; Fri, 30 Nov 2007 10:12:19 -0800 (PST) Received: by 10.86.97.10 with HTTP; Fri, 30 Nov 2007 10:12:19 -0800 (PST) Message-ID: <2a41acea0711301012j4472074rbc4dadd2cf661173@mail.gmail.com> Date: Fri, 30 Nov 2007 10:12:19 -0800 From: "Jack Vogel" To: "Kris Kennaway" In-Reply-To: <474FD1CB.3020601@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <474FB9E5.9090208@vnovy.net> <2a41acea0711300016w1aa144fel1641b3dbf075e043@mail.gmail.com> <474FD1CB.3020601@FreeBSD.org> Cc: Vitezslav Novy , freebsd-stable@freebsd.org Subject: Re: 7.0 BETA3 - slow TCP upload (TSO related?) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Nov 2007 18:12:22 -0000 On Nov 30, 2007 1:03 AM, Kris Kennaway wrote: > > Jack Vogel wrote: > > On Nov 29, 2007 11:21 PM, Vitezslav Novy wrote: > >> Hello, > >> > >> my configuration is > >> > >> kernel GENERIC > >> > >> em0: flags=8843 metric 0 mtu 1500 > >> options=18b > >> ether 00:19:d1:0f:1c:18 > >> inet 86.49.14.16 netmask 0xffffff00 broadcast 86.49.14.255 > >> media: Ethernet autoselect (100baseTX ) > >> 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? This is Unix right, where you have the freedom to make your own decisions, unlike that endlessly irritating OS from Redmond :) I have not turned it off by default because, frankly, the testing that we do in house has not shown any problems. The reason its "silly" is because what TSO does is lower CPU overhead, but 100Mb on modern systems should be a trivial load anyway. For every one report of problems there are far more that don't have any, at least that's my perception, which could be wrong of course. I will turn it off by default at 100Mb and lower if I get a few votes to do so. Jack