summaryrefslogtreecommitdiffstats
path: root/include/jemalloc/internal/tcache_inlines.h
Commit message (Collapse)AuthorAgeFilesLines
* Rename cache_alloc_easy to cache_bin_alloc_easy.David T. Goldblatt2017-12-191-2/+2
| | | | This lives in the cache_bin module; just a typo.
* Pull out arena_bin_info_t and arena_bin_t into their own file.David T. Goldblatt2017-12-191-5/+5
| | | | | In the process, kill arena_bin_index, which is unused. To follow are several diffs continuing this separation.
* Pull out caching for a bin into its own file.David Goldblatt2017-08-171-56/+29
| | | | | | This is the first step towards breaking up the tcache and arena (since they interact primarily at the bin level). It should also make a future arena caching implementation more straightforward.
* Header refactoring: Pull size helpers out of jemalloc module.David Goldblatt2017-05-311-4/+5
|
* Revert "Use trylock in tcache_bin_flush when possible."Qi Wang2017-05-011-2/+2
| | | | | This reverts commit 8584adc451f31adfc4ab8693d9189cf3a7e5d858. Production results not favorable. Will investigate separately.
* Revert "Use try_flush first in tcache_dalloc."Qi Wang2017-04-281-10/+4
| | | | | | This reverts commit b0c2a28280d363fc85aa8b4fdbe7814ef46cb17b. Production benchmark shows this caused significant regression in both CPU and memory consumption. Will investigate separately later on.
* Use try_flush first in tcache_dalloc.Qi Wang2017-04-261-4/+10
| | | | Only do must_flush if try_flush didn't manage to free anything.
* Use trylock in tcache_bin_flush when possible.Qi Wang2017-04-261-2/+2
| | | | | During tcache gc, use tcache_bin_try_flush_small / _large so that we can skip items with their bins locked already.
* Header refactoring: size_classes module - remove from the catchallDavid Goldblatt2017-04-241-0/+1
|
* Header refactoring: ticker module - remove from the catchall and unify.David Goldblatt2017-04-241-0/+1
|
* Get rid of most of the various inline macros.David Goldblatt2017-04-241-21/+2
|
* Remove --disable-tcache.Jason Evans2017-04-211-5/+0
| | | | | | | | | | | Simplify configuration by removing the --disable-tcache option, but replace the testing for that configuration with --with-malloc-conf=tcache:false. Fix the thread.arena and thread.tcache.flush mallctls to work correctly if tcache is disabled. This partially resolves #580.
* Header refactoring: move jemalloc_internal_types.h out of the catch-allDavid Goldblatt2017-04-191-0/+1
|
* Header refactoring: move util.h out of the catchallDavid Goldblatt2017-04-191-0/+2
|
* Bundle 3 branches on fast path into tsd_state.Qi Wang2017-04-141-0/+1
| | | | | | Added tsd_state_nominal_slow, which on fast path malloc() incorporates tcache_enabled check, and on fast path free() bundles both malloc_slow and tcache_enabled branches.
* Optimizing TSD and thread cache layout.Qi Wang2017-04-071-6/+6
| | | | | | | | | | 1) Re-organize TSD so that frequently accessed fields are closer to the beginning and more compact. Assuming 64-bit, the first 2.5 cachelines now contains everything needed on tcache fast path, expect the tcache struct itself. 2) Re-organize tcache and tbins. Take lg_fill_div out of tbin, and reduce tbin to 24 bytes (down from 32). Split tbins into tbins_small and tbins_large, and place tbins_small close to the beginning.
* Get rid of tcache_enabled_t as we have runtime init support.Qi Wang2017-04-071-11/+5
|
* Integrate auto tcache into TSD.Qi Wang2017-04-071-51/+14
| | | | | | | | | The embedded tcache is initialized upon tsd initialization. The avail arrays for the tbins will be allocated / deallocated accordingly during init / cleanup. With this change, the pointer to the auto tcache will always be available, as long as we have access to the TSD. tcache_available() (called in tcache_get()) is provided to check if we should use tcache.
* Convert extent_t's usize to szind.Jason Evans2017-03-231-6/+3
| | | | | | | | Rather than storing usize only for large (and prof-promoted) allocations, store the size class index for allocations that reside within the extent, such that the size class index is valid for all extents that contain extant allocations, and invalid otherwise (mainly to make debugging simpler).
* Remove extraneous parens around return arguments.Jason Evans2017-01-211-13/+13
| | | | This resolves #540.
* Update brace style.Jason Evans2017-01-211-41/+49
| | | | | | | Add braces around single-line blocks, and remove line breaks before function-opening braces. This resolves #537.
* Remove leading blank lines from function bodies.Jason Evans2017-01-131-1/+0
| | | | This resolves #535.
* Break up headers into constituent partsDavid Goldblatt2017-01-121-0/+306
This is part of a broader change to make header files better represent the dependencies between one another (see https://github.com/jemalloc/jemalloc/issues/533). It breaks up component headers into smaller parts that can be made to have a simpler dependency graph. For the autogenerated headers (smoothstep.h and size_classes.h), no splitting was necessary, so I didn't add support to emit multiple headers.