aboutsummaryrefslogtreecommitdiff
path: root/include/jemalloc/internal/size_classes.sh
AgeCommit message (Collapse)Author
2015-04-22Revert "Revert "Merge remote-tracking branch 'aosp/upstream-dev' into merge""Christopher Ferris
This reverts commit 75929a97332565c3b987986f35652b6d5d275d3c. The original failure this was reverted for seems to have been a bug somewhere else. Change-Id: Ib29ba03b1b967f940dc19eceac2aa1d2923be1eb
2015-04-16Revert "Merge remote-tracking branch 'aosp/upstream-dev' into merge"Nicolas Geoffray
Revert due to random ART crashes seen. This reverts commit 5b5d97b42e84c2ac417271c3fab6fc282496a335. Change-Id: I62a784301fded7ee853b182d172be46bb32bded7
2014-10-10Add --with-lg-tiny-min, generalize --with-lg-quantum.Jason Evans
2014-10-09Add configure options.Jason Evans
Add: --with-lg-page --with-lg-page-sizes --with-lg-size-class-group --with-lg-quantum Get rid of STATIC_PAGE_SHIFT, in favor of directly setting LG_PAGE. Fix various edge conditions exposed by the configure options.
2014-10-06Normalize size classes.Jason Evans
Normalize size classes to use the same number of size classes per size doubling (currently hard coded to 4), across the intire range of size classes. Small size classes already used this spacing, but in order to support this change, additional small size classes now fill [4 KiB .. 16 KiB). Large size classes range from [16 KiB .. 4 MiB). Huge size classes now support non-multiples of the chunk size in order to fill (4 MiB .. 16 MiB).
2014-09-07Optimize [nmd]alloc() fast paths.Jason Evans
Optimize [nmd]alloc() fast paths such that the (flags == 0) case is streamlined, flags decoding only happens to the minimum degree necessary, and no conditionals are repeated.
2014-09-04Refactor chunk map.Qinfan Wu
Break the chunk map into two separate arrays, in order to improve cache locality. This is related to issue #23.
2014-05-28Add size class computation capability.Jason Evans
Add size class computation capability, currently used only as validation of the size class lookup tables. Generalize the size class spacing used for bins, for eventual use throughout the full range of allocation sizes.
2014-04-11Remove support for non-prof-promote heap profiling metadata.Jason Evans
Make promotion of sampled small objects to large objects mandatory, so that profiling metadata can always be stored in the chunk map, rather than requiring one pointer per small region in each small-region page run. In practice the non-prof-promote code was only useful when using jemalloc to track all objects and report them as leaks at program exit. However, Valgrind is at least as good a tool for this particular use case. Furthermore, the non-prof-promote code is getting in the way of some optimizations that will make heap profiling much cheaper for the predominant use case (sampling a small representative proportion of all allocations).
2012-04-16Use echo instead of cat in loops in size_classes.shMike Hommey
This avoids fork/exec()ing in loops, as echo is a builtin, and makes size_classes.sh much faster (from > 10s to < 0.2s on mingw on my machine).
2012-04-03Use $((...)) instead of expr.Jason Evans
Use $((...)) for math in size_classes.h rather than expr, because it is much faster. This is not supported syntax in the classic Bourne shell, but all modern sh implementations support it, including bash, zsh, and ash.
2012-04-02Clean up *PAGE* macros.Jason Evans
s/PAGE_SHIFT/LG_PAGE/g and s/PAGE_SIZE/PAGE/g. Remove remnants of the dynamic-page-shift code. Rename the "arenas.pagesize" mallctl to "arenas.page". Remove the "arenas.chunksize" mallctl, which is redundant with "opt.lg_chunk".
2012-03-12Remove bashism.Jason Evans
Submitted by Mike Hommey.
2012-02-28Simplify small size class infrastructure.Jason Evans
Program-generate small size class tables for all valid combinations of LG_TINY_MIN, LG_QUANTUM, and PAGE_SHIFT. Use the appropriate table to generate all relevant data structures, and remove the distinction between tiny/quantum/cacheline/subpage bins. Remove --enable-dynamic-page-shift. This option didn't prove useful in practice, and it prevented optimizations. Add Tilera architecture support.