cvs commit: src/sys/netinet in_pcb.c tcp_subr.c tcp_timer.c
tcp_var.h
Robert Watson
rwatson at FreeBSD.org
Tue Sep 12 04:39:20 PDT 2006
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
More information about the cvs-src
mailing list