From owner-freebsd-current@FreeBSD.ORG Thu May 12 09:39:03 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7AEF916A4CE; Thu, 12 May 2005 09:39:03 +0000 (GMT) Received: from pne-smtpout1-sn2.hy.skanova.net (pne-smtpout1-sn2.hy.skanova.net [81.228.8.83]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E28643D39; Thu, 12 May 2005 09:39:02 +0000 (GMT) (envelope-from daniel_k_eriksson@telia.com) Received: from sentinel (195.198.193.104) by pne-smtpout1-sn2.hy.skanova.net (7.1.026.7) id 41E32167013E0235; Thu, 12 May 2005 11:39:01 +0200 From: "Daniel Eriksson" To: Date: Thu, 12 May 2005 11:38:59 +0200 Organization: Home Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.6353 In-Reply-To: <200505112137.j4BLbhs9011153@repoman.freebsd.org> Thread-Index: AcVWcbuuUBaNfm38SrW1JmWUym7RbwAZCmsg X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527 cc: 'Paul Saab' Subject: RE: cvs commit: src/sys/netinet tcp_input.c tcp_output.c tcp_sack.c tcp_var.h X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 May 2005 09:39:03 -0000 Paul Saab wrote: > ps 2005-05-11 21:37:43 UTC > > FreeBSD src repository > > Modified files: > sys/netinet tcp_input.c tcp_output.c tcp_sack.c > tcp_var.h > Log: > When looking for the next hole to retransmit from the scoreboard, > or to compute the total retransmitted bytes in this sack recovery > episode, the scoreboard is traversed. While in sack recovery, this > traversal occurs on every call to tcp_output(), every dupack and > every partial ack. The scoreboard could potentially get quite large, > making this traversal expensive. > > This change optimizes this by storing hints (for the next hole to > retransmit and the total retransmitted bytes in this sack recovery > episode) reducing the complexity to find these values from O(n) to > constant time. > > The debug code that sanity checks the hints against the computed > value will be removed eventually. After upgrading one of my servers this morning (dual Athlon MP) I'm getting a fair amount of these on the console: tcp_sack_output: Computed sack hole not the same as cached value So far I have ~50 such lines in the log after ~3 hours of uptime. No users have reported any problems though. /Daniel Eriksson