From owner-cvs-all@FreeBSD.ORG Tue Sep 12 11:39:20 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2177E16A47B; Tue, 12 Sep 2006 11:39:20 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id A517A43D6E; Tue, 12 Sep 2006 11:39:11 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id CF6F746CF2; Tue, 12 Sep 2006 07:39:10 -0400 (EDT) Date: Tue, 12 Sep 2006 12:39:10 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Mike Silbersack In-Reply-To: <20060912001916.S43498@odysseus.silby.com> Message-ID: <20060912123406.P83151@fledge.watson.org> References: <200609061356.k86DuZ0w016069@repoman.freebsd.org> <20060906091204.B6691@odysseus.silby.com> <20060906143204.GQ40020@FreeBSD.org> <20060906093553.L6691@odysseus.silby.com> <20060906150506.GA7069@rambler-co.ru> <20060911005435.A23530@odysseus.silby.com> <20060911142703.GF27667@FreeBSD.org> <20060912001916.S43498@odysseus.silby.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, Gleb Smirnoff , Ruslan Ermilov , cvs-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/netinet in_pcb.c tcp_subr.c tcp_timer.c tcp_var.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Sep 2006 11:39:20 -0000 On Tue, 12 Sep 2006, Mike Silbersack wrote: > On Mon, 11 Sep 2006, Gleb Smirnoff wrote: > >> The UMA zone can't be made smaller than it is, while IP port ranges can >> vary in both directions. > > Hm, it can't be made smaller because we're using UMA_ZONE_NOFREE... why are > we using that? Shouldn't locking handle that, rwatson? :) This is necessary due to the sysctl monitoring model. If you read the sysctl code for various socket types closely, you'll see that it builds a list of pointers to sockets to export data on, but because the quantity of data may be significant, it releases the global pcb list lock for the protocol after building the list. This is alright because the memory is type-stable, and because of the generation counter. Stephan and I have been discussing removing this, but have been working our way through some other issues first. However, if we do remove it, an alternative approach is needed to dealing with very large socket lists. We would both like to be able to reclaim pcb memory, though. Robert N M Watson Computer Laboratory University of Cambridge