cvs commit: src/sys/netinet ip_divert.c raw_ip.ctcp_hostcache.c tcp_subr.c tcp_syncache.c udp_usrreq.c

Andre Oppermann andre at freebsd.org
Wed Aug 11 13:34:42 PDT 2004


Robert Watson wrote:
> 
> On Wed, 11 Aug 2004, Bosko Milekic wrote:
> 
> > Please be careful here.  The reason they were NOFREE before was because
> > the original zone code was implicitly nofree.  If these structures need
> > to be type stable, then you just broke them with this commit.  So are
> > you sure that they absolutely do not need to be type stable?
> 
> Often, zones with the old zone allocator being type-stable allowed low
> cost monitoring using generation numbers (see the UNIX domain socket code
> as an example).  As a result, monitoring code will assume it can walk the
> global list of sockets even after the sockets are free'd, and detect it
> with the generation number.  This may or may not apply to the pcbs (don't
> have source in front of me), but the caution definitely applies.

I have made a backout for all those zones which have timers in their
structures.  Tor Egge provided a very convincing argument for this in
private email.

TCP hostcache and rtentry's do not need type-stable storage and remain
without NOFREE.

Thanks for all comments urging caution!

-- 
Andre


More information about the cvs-src mailing list