aboutsummaryrefslogtreecommitdiffstats
path: root/include/jemalloc/internal/bitmap.h
Commit message (Collapse)AuthorAgeFilesLines
* Avoid compiler warnings on Windows.Jason Evans2017-05-111-5/+5
|
* Header refactoring: bitmap - unify and remove from catchall.David Goldblatt2017-04-241-0/+369
|
* Break up headers into constituent partsDavid Goldblatt2017-01-121-322/+0
| | | | | | | | | | 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.
* Move slabs out of chunks.Jason Evans2016-06-051-1/+1
|
* Implement BITMAP_INFO_INITIALIZER(nbits).Jason Evans2016-05-131-19/+67
| | | | This allows static initialization of bitmap_info_t structures.
* Support --with-lg-page values larger than actual page size.Jason Evans2016-04-111-2/+2
| | | | | | | | | | | | | | During over-allocation in preparation for creating aligned mappings, allocate one more page than necessary if PAGE is the actual page size, so that trimming still succeeds even if the system returns a mapping that has less than PAGE alignment. This allows compiling with e.g. 64 KiB "pages" on systems that actually use 4 KiB pages. Note that for e.g. --with-lg-page=21, it is also necessary to increase the chunk size (e.g. --with-malloc-conf=lg_chunk:22) so that there are at least two "pages" per chunk. In practice this isn't a particularly compelling configuration because so much (unusable) virtual memory is dedicated to chunk headers.
* Reduce differences between alternative bitmap implementations.Jason Evans2016-04-061-1/+1
|
* Fix bitmap_sfu() regression.Jason Evans2016-04-061-1/+1
| | | | | | | | | | | | Fix bitmap_sfu() to shift by LG_BITMAP_GROUP_NBITS rather than hard-coded 6 when using linear (non-USE_TREE) bitmap search. In practice this affects only 64-bit systems for which sizeof(long) is not 8 (i.e. Windows), since USE_TREE is defined for 32-bit systems. This regression was caused by b8823ab02607d6f03febd32ac504bb6188c54047 (Use linear scan for small bitmaps). This resolves #368.
* Refactor some bitmap cpp logic.Jason Evans2016-02-261-3/+2
|
* Use linear scan for small bitmapsDave Watson2016-02-261-2/+48
| | | | | | | | | | | | | For small bitmaps, a linear scan of the bitmap is slightly faster than a tree search - bitmap_t is more compact, and there are fewer writes since we don't have to propogate state transitions up the tree. On x86_64 with the current settings, I'm seeing ~.5%-1% CPU improvement in production canaries with this change. The old tree code is left since 32bit sizes are much larger (and ffsl smaller), and maybe the run sizes will change in the future. This resolves #339.
* Miscellaneous bitmap refactoring.Jason Evans2016-02-261-11/+10
|
* Silence miscellaneous 64-to-32-bit data loss warnings.Jason Evans2016-02-241-1/+1
|
* Refactor jemalloc_ffs*() into ffs_*().Jason Evans2016-02-241-2/+2
| | | | Use appropriate versions to resolve 64-to-32-bit data loss warnings.
* Convert to uniform style: cond == false --> !condJason Evans2014-10-031-4/+4
|
* Implement compile-time bitmap size computation.Jason Evans2014-09-281-0/+46
|
* Try to use __builtin_ffsl if ffsl is unavailable.Richard Diamond2014-06-021-2/+2
| | | | | | | | | | | Some platforms (like those using Newlib) don't have ffs/ffsl. This commit adds a check to configure.ac for __builtin_ffsl if ffsl isn't found. __builtin_ffsl performs the same function as ffsl, and has the added benefit of being available on any platform utilizing Gcc-compatible compiler. This change does not address the used of ffs in the MALLOCX_ARENA() macro.
* Move repo contents in jemalloc/ to top level.Jason Evans2011-03-311-0/+184