summaryrefslogtreecommitdiffstats
path: root/jemalloc
Commit message (Collapse)AuthorAgeFilesLines
...
* Enhance the G/g MALLOC_OPTIONS flags to control GC sweep interval, rather thanJason Evans2010-01-032-15/+43
| | | | just enabling/disabling GC.
* Split run deallocation out of arena_dalloc_bin(), into arena_dalloc_bin_run().Jason Evans2010-01-031-47/+89
| | | | | | | | | | | | | Enhance bin run deallocation to avoid marking all pages as dirty, since the dirty bits are already correct for all but the first page, due to the use of arena_run_rc_{incr,decr}(). This tends to dramatically reduce the number of pages that are marked dirty. Modify arena_bin_run_size_calc() to assure that bin run headers never exceed one page. In practice, this can't happen unless hard-coded constants (related to RUN_MAX_OVRHD) are modified, but the dirty page tracking code assumes bin run headers never extend past the first page, so it seems worth making this a universally valid assumption.
* Make malloc_stats_print() a public symbol, and make it repeatedly callable.Jason Evans2010-01-035-386/+479
| | | | | Incrementally merge tcache stats, so that malloc_stats_print() always reports at least most events that have occurred thus far.
* Simplify JEMALLOC_ATTR_* macros to become JEMALLOC_ATTR().Jason Evans2010-01-036-29/+42
| | | | | | | | | | | Use JEMALLOC_ATTR(tls_model("initial-exec)) instead of -ftls-model=initial-exec so that libjemalloc_pic.a can be directly linked into another library without needing linker options changes. Add attributes to malloc, calloc, and posix_memalign, for compatibility with glibc's declarations. Add function prototypes for the standard malloc(3) API.
* Build libjemalloc_pic.a.Jason Evans2010-01-031-4/+7
|
* Add the COPYING file, and consolidate copyright/licensing information.Jason Evans2010-01-0311-306/+57
|
* Fix the 'clean' build target to delete binaries.Jason Evans2009-12-291-0/+1
|
* Implement per size class stats collection for large objects.Jason Evans2009-12-291-52/+150
|
* Base maximum dirty page count on proportion of active memory.Jason Evans2009-12-292-73/+250
| | | | | | Add dirty page tracking for pages within active small/medium object runs. Reduce chunks_dirty red-black tree operations via lazy updating.
* Update description of --with-rpath.Jason Evans2009-12-291-2/+2
|
* Use "lg" prefix rather than "2pow" suffix to indicate base 2 logarithms.Jason Evans2009-12-293-123/+130
| | | | Remove the default definition for SIZEOF_INT_2POW.
* Modify pthread_create() wrapper such that isthreaded is only set once.Jason Evans2009-12-291-3/+7
|
* Handle 0-size allocation requests in posix_memalign().Jason Evans2009-12-291-2/+36
|
* Convert thread-specific caching from magazines, and implement incremental GC.Jason Evans2009-12-298-419/+845
| | | | | | | | Add the 'G'/'g' and 'H'/'h' MALLOC_OPTIONS flags. Add the malloc_tcache_flush() function. Disable thread-specific caching until the application goes multi-threaded.
* Add support for medium size classes, [4KiB..32KiB], 2KiB apart by default.Jason Evans2009-12-292-270/+468
| | | | | | | | | | | Add the 'M' and 'm' MALLOC_OPTIONS flags, which control the maximum medium size class. Relax the cap on small/medium run size to arena_maxclass. Reduce arena_run_reg_dalloc() integer division code complexity. Increase the default chunk size from 1MiB to 4MiB.
* Remove opt_dss and opt_mmap, such that if DSS allocation is enabled, both DSSJason Evans2009-12-292-92/+20
| | | | and heap allocation are always enabled.
* Streamline the fast path for magazine-based allocation/deallocation.Jason Evans2009-12-291-60/+118
|
* Remove the dynamic rebalancing code, since magazines reduce its utility.Jason Evans2009-12-295-424/+69
|
* Implement thread-aware allocation event tracing.Jason Evans2009-12-298-250/+571
|
* Add --with-jemalloc-prefix, which supports API mangling.Jason Evans2009-12-297-113/+165
| | | | Rename jemalloc_options-->malloc_options and jemalloc_message-->malloc_message.
* Use __restrict rather than restrict.Jason Evans2009-12-291-4/+5
|
* Make sure that there are no more than 256 size clases, since size2bin can onlyJason Evans2009-11-131-0/+11
| | | | encode bin indices in [0..255].
* Integrate architecture portability fixes.Jason Evans2009-11-091-1/+4
| | | | Submitted by: Ingvar Hagelund
* Fix configure docs (--enable-lazy-lock --> --disable-lazy-lock).Jason Evans2009-11-092-4/+4
| | | | | | Fix some style nits. Ignore the jemalloc/bin directory.
* _pt_thread_death_internal(), which is part of Linux's nptl pthreadsJason Evans2009-11-091-9/+22
| | | | | | | implementation, calls free() after calling TSD destructors. This was causing a crash during thread exit, since the magazine rack was no longer valid for the thread. Fix this by using a special mag_rack value to indicate that deallocation should bypass the magazine machinery.
* Modify chunk_alloc_mmap() to support address space layout randomization (ASLR).Jason Evans2009-11-091-51/+100
|
* Update assertions in realloc() and free() to allow for deallocation duringJason Evans2009-11-091-4/+6
| | | | initializtion.
* Integrate mtrgraph and mtrplay.Jason Evans2009-07-025-2/+1441
|
* Add configure tests for CFLAGS settings.Jason Evans2009-06-303-21/+90
| | | | | | Add configure test for __asm__ syntax. Add configure test for __attribute__ syntax.
* Fix various compiler warnings.Jason Evans2009-06-291-17/+9
| | | | Reported by: Mark Rabkin
* Minor documentation and comment cleanups.Jason Evans2009-06-262-7/+18
|
* Clean up the manpage and conditionalize various portions according to howJason Evans2009-06-268-229/+469
| | | | | | | | | | | | jemalloc is configured. Modify arena_malloc() API to avoid unnecessary choose_arena() calls. Remove unnecessary code from choose_arena(). Enable lazy-lock by default, now that choose_arena() is both faster and out of the critical path. Implement objdir support in the build system.
* Implement configuration system.Jason Evans2009-06-2413-350/+4448
| | | | | | | | | | | | | | | | | | | | | Implement minimal Makefile. Make compile-time-optional jemalloc features controllable via configure options (debug, stats, tiny, mag, balance, dss). Conditionally exclude most of the opt_* run-time options, based on configure options (fill, xmalloc, sysv). Implement optional --enable-dynamic-page-shift. Implement optional --enable-lazy-lock. Re-order malloc_init_hard() and use the malloc_initializer variable to support recursive allocation in malloc_ncpus(). Add mag_rack_tsd in order to receive notifications of thread termination. Add jemalloc.h.
* Merge FreeBSD's malloc(3) and posix_memalign(3) manpages to create jemalloc(3).Jason Evans2009-06-231-0/+589
|
* Fix various namespace issues.Jason Evans2009-06-231-77/+99
|
* Merge code from the original jemalloc_linux port.Jason Evans2009-06-221-169/+264
|
* Import pristine FreeBSD sources.Jason Evans2009-06-222-0/+6537