Date: Wed, 6 Sep 2006 19:12:46 +0400 From: Gleb Smirnoff <glebius@FreeBSD.org> To: Mike Silbersack <silby@silby.com> Cc: cvs-src@FreeBSD.org, 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 Message-ID: <20060906151246.GU40020@FreeBSD.org> In-Reply-To: <20060906150129.GT40020@FreeBSD.org> References: <200609061356.k86DuZ0w016069@repoman.freebsd.org> <20060906091204.B6691@odysseus.silby.com> <20060906143204.GQ40020@FreeBSD.org> <20060906093553.L6691@odysseus.silby.com> <20060906150129.GT40020@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060906151246.GU40020>