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 11:09:23 PDT 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?

In all cases the zone is used as kmalloc replacement.  It always
initializes a newly allocated object.  It always unlinks the object
from any lists before it uma_zfree's it.  All such operations are
covered by mutexes, no concurrent access should happen.  If there
is any use-after-free then it is a bug that needs to be fixed.

I hope/guess that this sufficiently non-type-stable wrt UMA to remove
NOFREE.

-- 
Andre


> -Bosko
> 
> andre       2004-08-11 17:08:32 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/netinet          ip_divert.c raw_ip.c tcp_hostcache.c
>                          tcp_subr.c tcp_syncache.c udp_usrreq.c
>   Log:
>   Remove the UMA_ZONE_NOFREE flag to all uma_zcreate() calls in the IP and
>   TCP code.  This flag would have prevented giving back excessive free slabs
>   to the global pool after a transient peak usage.


More information about the cvs-all mailing list