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
jasone at FreeBSD.org
Wed Aug 27 02:01:11 UTC 2008
jasone 2008-08-27 02:00:53 UTC
FreeBSD src repository
lib/libc/stdlib Symbol.map malloc.3 malloc.c
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
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
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-all