From owner-freebsd-current@FreeBSD.ORG Thu Jun 30 17:08:37 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org 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 44D0716A41C for ; Thu, 30 Jun 2005 17:08:37 +0000 (GMT) (envelope-from mohan_srinivasan@yahoo.com) Received: from web80605.mail.yahoo.com (web80605.mail.yahoo.com [66.218.79.94]) by mx1.FreeBSD.org (Postfix) with SMTP id 28C5D43D48 for ; Thu, 30 Jun 2005 17:08:37 +0000 (GMT) (envelope-from mohan_srinivasan@yahoo.com) Received: (qmail 64380 invoked by uid 60001); 30 Jun 2005 17:08:36 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=avmaJVxalAa/B+ZqUtZPct+tf70o8hCeh1/Fjbrkktsxg0Dt97uVoSVO6hY3E7cC1r64oQUcgjq8w/W+Hrt2ZrfgHf/NBxW68unaJ9WSMYHAG1Zf9UTzffT0Trhm9zMJYAWzhjYPBR8x7nmn5w1jGVCZIx3Drp3iAtYvh3ifmi8= ; Message-ID: <20050630170836.64378.qmail@web80605.mail.yahoo.com> Received: from [64.172.44.216] by web80605.mail.yahoo.com via HTTP; Thu, 30 Jun 2005 10:08:36 PDT Date: Thu, 30 Jun 2005 10:08:36 -0700 (PDT) From: Mohan Srinivasan To: Daniel Eriksson , freebsd-current@freebsd.org In-Reply-To: <4F9C9299A10AE74E89EA580D14AA10A6028584@royal64.emp.zapto.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Cc: Subject: Re: tcp_sack_output: Computed sack hole not the same as cached value X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 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, 30 Jun 2005 17:08:37 -0000 This patch (from Noritoshi Demizu) should fix this. Andrey Chernov reported this as well and the patch fixes the problem for him. This will be committed to -current shortly. mohan Index: netinet/tcp_input.c =================================================================== RCS file: /home/cvsup/FreeBSD/ncvs/src/sys/netinet/tcp_input.c,v retrieving revision 1.277 diff -u -r1.277 tcp_input.c --- netinet/tcp_input.c 27 Jun 2005 22:27:42 -0000 1.277 +++ netinet/tcp_input.c 29 Jun 2005 09:42:35 -0000 @@ -1147,7 +1147,8 @@ ((!tcp_do_newreno && !tp->sack_enable && tp->t_dupacks < tcprexmtthresh) || ((tcp_do_newreno || tp->sack_enable) && - !IN_FASTRECOVERY(tp) && to.to_nsacks == 0))) { + !IN_FASTRECOVERY(tp) && to.to_nsacks == 0 && + TAILQ_EMPTY(&tp->snd_holes)))) { KASSERT(headlocked, ("headlocked")); INP_INFO_WUNLOCK(&tcbinfo); headlocked = 0; @@ -1822,7 +1823,8 @@ tcpstat.tcps_rcvacktoomuch++; goto dropafterack; } - if (tp->sack_enable) + if (tp->sack_enable && + (to.to_nsacks > 0 || !TAILQ_EMPTY(&tp->snd_holes))) tcp_sack_doack(tp, &to, th->th_ack); if (SEQ_LEQ(th->th_ack, tp->snd_una)) { if (tlen == 0 && tiwin == tp->snd_wnd) { Index: netinet/tcp_subr.c =================================================================== RCS file: /home/cvsup/FreeBSD/ncvs/src/sys/netinet/tcp_subr.c,v retrieving revision 1.227 diff -u -r1.227 tcp_subr.c --- netinet/tcp_subr.c 1 Jun 2005 12:06:07 -0000 1.227 +++ netinet/tcp_subr.c 29 Jun 2005 09:42:35 -0000 @@ -605,8 +605,7 @@ if (tcp_do_rfc1323) tp->t_flags = (TF_REQ_SCALE|TF_REQ_TSTMP); tp->sack_enable = tcp_do_sack; - if (tp->sack_enable) - TAILQ_INIT(&tp->snd_holes); + TAILQ_INIT(&tp->snd_holes); tp->t_inpcb = inp; /* XXX */ /* * Init srtt to TCPTV_SRTTBASE (0), so we can tell that we have no --- Daniel Eriksson wrote: > > With latest CURRENT (2005.06.30.12.00.00) I get a ton of these messages > on the console. 50-100 per minute and that's when load is light. With > the old kernel (2005.06.23.00.30.00) no such messages show up. > > tcp_sack_output: Computed sack hole not the same as cached value > > This is on an SMP machine. On my UP server I saw no messages, but I only > had the two machines (one UP and one SMP) running the new kernel for a > few minutes. > > /Daniel Eriksson > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >