From owner-freebsd-hackers@FreeBSD.ORG Thu Apr 10 09:16:52 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0523937B401; Thu, 10 Apr 2003 09:16:52 -0700 (PDT) Received: from otter3.centtech.com (moat3.centtech.com [207.200.51.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1101643F93; Thu, 10 Apr 2003 09:16:51 -0700 (PDT) (envelope-from anderson@centtech.com) Received: from centtech.com (electron.centtech.com [204.177.173.173]) by otter3.centtech.com (8.12.3/8.12.3) with ESMTP id h3AGGl56087861; Thu, 10 Apr 2003 11:16:47 -0500 (CDT) (envelope-from anderson@centtech.com) Message-ID: <3E9598E4.2000601@centtech.com> Date: Thu, 10 Apr 2003 11:16:36 -0500 From: Eric Anderson User-Agent: Mozilla/5.0 (X11; U; Linux i386; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Mike Silbersack References: <200304101311.h3ADBgjY022790@samson.dc.luth.se> <20030410114227.A472@odysseus.silby.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit cc: freebsd-performance@freebsd.org cc: "Jin Guojun \[DSD\]" cc: David Gilbert cc: freebsd-hackers@freebsd.org Subject: Re: tcp_output starving -- is due to mbuf get delay? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Apr 2003 16:16:52 -0000 Mike Silbersack wrote: >>My hosts are connected directly to core routers in a 10Gbps nationwide >>network, so if anybody is interested in some testing I am more than >>willing to participate. If anybody produces a patch, I have a third system >>that I can use for piloting of that too. >> >>--Börje > > > This brings up something I've been wondering about, which you might want > to investigate: > >>From tcp_output: > > if (error == ENOBUFS) { > if (!callout_active(tp->tt_rexmt) && > !callout_active(tp->tt_persist)) > callout_reset(tp->tt_rexmt, tp->t_rxtcur, > tcp_timer_rexmt, tp); > tcp_quench(tp->t_inpcb, 0); > return (0); > } > > That tcp_quench knocks the window size back to one packet, if I'm not > mistaken. You might want to put a counter there and see if that's > happening frequently to you; if so, it might explain some loss of > performance. > > Have you tried running kernel profiling yet? It would be interesting to > see which functions are using up the largest amount of time. It's interesting - I'm only getting about 320mb/s.. I must be hitting a similar problem. I'm not nearly as adept at hacking code to find bugs though. :( Eric -- ------------------------------------------------------------------ Eric Anderson Systems Administrator Centaur Technology Attitudes are contagious, is yours worth catching? ------------------------------------------------------------------