cvs commit: src/lib/libc/include libc_private.h src/lib/libc/stdlib
Symbol.map malloc.3 malloc.c src/lib/libthr/thread thr_exit.c
Jason Evans
jasone at FreeBSD.org
Wed Aug 27 02:01:11 UTC 2008
jasone 2008-08-27 02:00:53 UTC
FreeBSD src repository
Modified files:
lib/libc/include libc_private.h
lib/libc/stdlib Symbol.map malloc.3 malloc.c
lib/libthr/thread thr_exit.c
Log:
SVN rev 182225 on 2008-08-27 02:00:53Z by jasone
Add thread-specific caching for small size classes, based on magazines.
This caching allows for completely lock-free allocation/deallocation in the
steady state, at the expense of likely increased memory use and
fragmentation.
Reduce the default number of arenas to 2*ncpus, since thread-specific
caching typically reduces arena contention.
Modify size class spacing to include ranges of 2^n-spaced, quantum-spaced,
cacheline-spaced, and subpage-spaced size classes. The advantages are:
fewer size classes, reduced false cacheline sharing, and reduced internal
fragmentation for allocations that are slightly over 512, 1024, etc.
Increase RUN_MAX_SMALL, in order to limit fragmentation for the
subpage-spaced size classes.
Add a size-->bin lookup table for small sizes to simplify translating sizes
to size classes. Include a hard-coded constant table that is used unless
custom size class spacing is specified at run time.
Add the ability to disable tiny size classes at compile time via
MALLOC_TINY.
Revision Changes Path
1.20 +6 -0 src/lib/libc/include/libc_private.h
1.9 +1 -0 src/lib/libc/stdlib/Symbol.map
1.79 +52 -25 src/lib/libc/stdlib/malloc.3
1.177 +1080 -231 src/lib/libc/stdlib/malloc.c
1.30 +4 -0 src/lib/libthr/thread/thr_exit.c
More information about the cvs-src
mailing list