summaryrefslogtreecommitdiffstats
path: root/jemalloc/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* Move repo contents in jemalloc/ to top level.Jason Evans2011-04-011-927/+0
|
* Revert "Add support for libunwind backtrace caching."Jason Evans2011-03-231-12/+1
| | | | | | | This reverts commit adc675c8ef55b59bb2facf795a3c26411cfbf3ed. The original commit added support for a non-standard libunwind API, so it was not of general utility.
* Add support for libunwind backtrace caching.je@facebook.com2011-03-241-1/+12
| | | | Use libunwind's unw_tdep_trace() if it is available.
* Use OSSpinLock*() for locking on OS X.Jason Evans2011-03-191-0/+15
| | | | | | pthread_mutex_lock() can call malloc() on OS X (!!!), which causes deadlock. Work around this by using spinlocks that are built of more primitive stuff.
* Add atomic operation support for OS X.Jason Evans2011-03-191-0/+22
|
* Use bitmaps to track small regions.Jason Evans2011-03-171-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous free list implementation, which embedded singly linked lists in available regions, had the unfortunate side effect of causing many cache misses during thread cache fills. Fix this in two places: - arena_run_t: Use a new bitmap implementation to track which regions are available. Furthermore, revert to preferring the lowest available region (as jemalloc did with its old bitmap-based approach). - tcache_t: Move read-only tcache_bin_t metadata into tcache_bin_info_t, and add a contiguous array of pointers to tcache_t in order to track cached objects. This substantially increases the size of tcache_t, but results in much higher data locality for common tcache operations. As a side benefit, it is again possible to efficiently flush the least recently used cached objects, so this change changes flushing from MRU to LRU. The new bitmap implementation uses a multi-level summary approach to make finding the lowest available region very fast. In practice, bitmaps only have one or two levels, though the implementation is general enough to handle extremely large bitmaps, mainly so that large page sizes can still be entertained. Fix tcache_bin_flush_large() to always flush statistics, in the same way that tcache_bin_flush_small() was recently fixed. Use JEMALLOC_DEBUG rather than NDEBUG. Add dassert(), and use it for debug-only asserts.
* Improve backtracing-related configuration.Jason Evans2011-03-161-37/+84
| | | | | | | | | | Clean up configuration for backtracing when profiling is enabled, and document the configuration logic in INSTALL. Disable libgcc-based backtracing except on x64 (where it is known to work). Add the --disable-prof-gcc option.
* Set default symbol visibility to hidden.Jason Evans2011-03-151-11/+11
| | | | | | | | Compile with -fvisibility=hidden rather than -fvisibility=internal, in order to avoid PLT lookups for internal functions. Also fix a regression that caused the -fvisibility flag to be omitted, due to: Port to Mac OS X. 2dbecf1f6267fae7a161b9c39cfd4d04ce168a29
* Use mremap(2) for huge realloc().Jason Evans2010-12-011-0/+10
| | | | | | | | | | If mremap(2) is available and supports MREMAP_FIXED, use it for huge realloc(). Initialize rtree later during bootstrapping, so that --enable-debug --enable-dss works. Fix a minor swap_avail stats bug.
* Convert man page from roff to DocBook.Jason Evans2010-11-271-75/+28
| | | | | | | Convert the man page source from roff to DocBook, and generate html and roff output. Modify the build system such that the documentation can be built as part of the release process, so that users need not have DocBook tools installed.
* Use madvise(..., MADV_FREE) on OS X.Jason Evans2010-10-241-1/+1
| | | | | Use madvise(..., MADV_FREE) rather than msync(..., MS_KILLPAGES) on OS X, since it works for at least OS X 10.5 and 10.6.
* Replace JEMALLOC_OPTIONS with MALLOC_CONF.Jason Evans2010-10-241-1/+14
| | | | | | | | | | | Replace the single-character run-time flags with key/value pairs, which can be set via the malloc_conf global, /etc/malloc.conf, and the MALLOC_CONF environment variable. Replace the JEMALLOC_PROF_PREFIX environment variable with the "opt.prof_prefix" option. Replace umax2s() with u2s().
* Re-organize prof-libgcc configuration.Jason Evans2010-10-071-7/+10
| | | | | | Re-organize code for --enable-prof-libgcc so that configure doesn't report both libgcc and libunwind support as being configured in. This change has no impact on how jemalloc is actually configured/built.
* Fix tests build when --with-install-suffix is set.Jason Evans2010-10-071-0/+3
| | | | | | Add test/jemalloc_test.h.in, which is processed to include jemalloc/jemalloc@install_suffix@.h, so that test programs can include it without worrying about the install suffix.
* Print prof-libgcc configure setting.Jason Evans2010-10-031-0/+1
|
* Fix compiler warnings.Jason Evans2010-09-211-0/+18
| | | | | | Add --enable-cc-silence, which can be used to silence harmless warnings. Fix an aliasing bug in ckh_pointer_hash().
* Add memalign() and valloc() overrides.Jason Evans2010-09-201-0/+8
| | | | | If memalign() and/or valloc() are present on the system, override them in order to avoid mixed allocator usage.
* Store full git GID in VERSION.Jason Evans2010-09-181-1/+1
|
* Port to Mac OS X.Jason Evans2010-09-121-67/+107
| | | | | Add Mac OS X support, based in large part on the OS X support in Mozilla's version of jemalloc.
* Add the thread.arena mallctl.Jason Evans2010-08-141-0/+5
| | | | | | | Make it possible for each thread to manage which arena it is associated with. Implement the 'tests' and 'check' build targets.
* Don't build with -march=native.Jason Evans2010-04-081-1/+0
| | | | | | Don't build with -march=native by default, because the generated code may perform especially poorly on ABI-compatible, but internally different, systems.
* Fix build system problems.Jason Evans2010-04-081-6/+6
| | | | | | | | Split library build rules up so that parallel building works. Fix autoconf-related dependencies. Remove obsolete JEMALLOC_VERSION definition.
* Fix various config/build issues.Jason Evans2010-03-041-8/+13
| | | | | | | | | | | | | Don't look for a shared libunwind if --with-static-libunwind is specified. Set SONAME when linking the shared libjemalloc. Add DESTDIR support. Add install_{include,lib/man} build targets. Clean up compiler flag configuration.
* Add the --with-static-libunwind configure option.Jason Evans2010-03-021-1/+14
|
* Add release versioning support.0.0.0Jason Evans2010-03-021-1/+15
| | | | | | | Base version string on 'git describe --long', and provide cpp macros in jemalloc.h. Add the version mallctl.
* Implement sampling for heap profiling.Jason Evans2010-03-021-0/+1
|
* Restructure source tree.Jason Evans2010-02-111-9/+9
|
* Remove tracing (--enable-trace).Jason Evans2010-02-111-52/+0
| | | | | | | Remove all functionality related to tracing. This functionality was useful for understanding memory fragmentation during early algorithmic design of jemalloc, but it had little utility for non-trivial applications, due to the sheer volume of data written to disk.
* Add JEMALLOC_PROF_PREFIX support.Jason Evans2010-02-111-0/+3
| | | | | If JEMALLOC_PROF_PREFIX is set in the environment, use it as the filename prefix when dumping heap profiles, rather than "jeprof".
* Various heap profiling improvements.Jason Evans2010-02-111-0/+23
| | | | | | | | | Add the --disable-prof-libgcc configure option, and add backtracing based on libgcc, which is used by default. Fix a bug in hash(). Fix various configuration-dependent compilation errors.
* Implement allocation profiling and leack checking.Jason Evans2010-02-101-0/+48
| | | | | | | | | | | | | | Add the --enable-prof and --enable-prof-libunwind configure options. Add the B/b, F/f, I/i, L/l, and U/u JEMALLOC_OPTIONS. Interval-based profile dump triggering is not yet implemented. Add supporting generic code: * Add memory barriers. * Add prn (LCG PRNG). * Add hash (Murmur hash function). * Add ckh (cuckoo hash tables).
* Add the --enable-swap configure option.Jason Evans2010-01-241-0/+23
| | | | | | | | Add malloc_swap_enable(). Add the O/o JEMALLOC_OPTIONS flags, which control memory overcommit. Fix mapped memory stats reporting for arenas.
* Add the --disable-tls configure option.Jason Evans2010-01-171-26/+39
|
* Add the --with-install-suffix configure option.Jason Evans2010-01-171-16/+46
| | | | Fix some bugs in the Makefile's install target.
* Refactor jemalloc.c into multiple source files.Jason Evans2010-01-161-10/+4
| | | | | | | | | Fix a stats bug in large object curruns accounting. Replace tcache_bin_fill() with arena_tcache_fill(), and fix a bug in an OOM error path. Fix API name mangling to coexist with __attribute__((malloc)).
* Make malloc_stats_print() a public symbol, and make it repeatedly callable.Jason Evans2010-01-031-0/+1
| | | | | 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-031-4/+1
| | | | | | | | | | | 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.
* Use "lg" prefix rather than "2pow" suffix to indicate base 2 logarithms.Jason Evans2009-12-291-4/+13
| | | | Remove the default definition for SIZEOF_INT_2POW.
* Convert thread-specific caching from magazines, and implement incremental GC.Jason Evans2009-12-291-21/+30
| | | | | | | | 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.
* Remove the dynamic rebalancing code, since magazines reduce its utility.Jason Evans2009-12-291-23/+0
|
* Implement thread-aware allocation event tracing.Jason Evans2009-12-291-1/+24
|
* Add --with-jemalloc-prefix, which supports API mangling.Jason Evans2009-12-291-1/+26
| | | | Rename jemalloc_options-->malloc_options and jemalloc_message-->malloc_message.
* Fix configure docs (--enable-lazy-lock --> --disable-lazy-lock).Jason Evans2009-11-091-1/+1
| | | | | | Fix some style nits. Ignore the jemalloc/bin directory.
* Integrate mtrgraph and mtrplay.Jason Evans2009-07-021-0/+24
|
* Add configure tests for CFLAGS settings.Jason Evans2009-06-301-16/+78
| | | | | | Add configure test for __asm__ syntax. Add configure test for __attribute__ syntax.
* Clean up the manpage and conditionalize various portions according to howJason Evans2009-06-261-5/+60
| | | | | | | | | | | | 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-241-0/+475
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.