From owner-cvs-src@FreeBSD.ORG Wed Sep 6 16:07:37 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4CF6616A4DD for ; Wed, 6 Sep 2006 16:07:37 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 02D4843D86 for ; Wed, 6 Sep 2006 16:07:34 +0000 (GMT) (envelope-from andre@freebsd.org) Received: (qmail 50397 invoked from network); 6 Sep 2006 15:52:34 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 6 Sep 2006 15:52:34 -0000 Message-ID: <44FEF244.4010005@freebsd.org> Date: Wed, 06 Sep 2006 18:07:32 +0200 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) MIME-Version: 1.0 To: Gleb Smirnoff References: <200609061356.k86DuZ0w016069@repoman.freebsd.org> <20060906091204.B6691@odysseus.silby.com> <20060906143204.GQ40020@FreeBSD.org> <20060906093553.L6691@odysseus.silby.com> <20060906150129.GT40020@FreeBSD.org> <20060906151246.GU40020@FreeBSD.org> In-Reply-To: <20060906151246.GU40020@FreeBSD.org> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, Mike Silbersack , src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/netinet in_pcb.c tcp_subr.c tcp_timer.c tcp_var.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Sep 2006 16:07:37 -0000 Gleb Smirnoff wrote: > followup on my last email: > > T> I think we should free the oldmost tcptw entry in a case if we can't > T> find the local endpoint. We can tell definitely that we can't find one > T> only in in_pcbbind_setup() in the "do {} while (in_pcblookup_local)" cycle, > T> where EADDRNOTAVAIL is returned. We can't definitely tell this in > T> in_pcblookup_local() since we don't know whether tried port is the > T> last one. > > Another simple enough solution would be to msleep() with tcbinfo mutex > temporarily dropped if we fail to find a port. Then the tcp_timer_2msl_tw() > on the next run will free tcptw entries and wake up us. > > Anyway, I'm strongly against doing the purge cycling in the syscalls. Seconded. -- Andre