From d6742bfbd3ecadd2bde38ccbb2351bd5c19ede1d Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Wed, 27 Aug 2008 02:00:53 +0000 Subject: 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. --- lib/libc/stdlib/Symbol.map | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/libc/stdlib/Symbol.map') diff --git a/lib/libc/stdlib/Symbol.map b/lib/libc/stdlib/Symbol.map index 10dff7e2b091..d159beddd4ee 100644 --- a/lib/libc/stdlib/Symbol.map +++ b/lib/libc/stdlib/Symbol.map @@ -93,6 +93,7 @@ FBSD_1.0 { }; FBSDprivate_1.0 { + _malloc_thread_cleanup; _malloc_prefork; _malloc_postfork; __system; -- cgit v1.3