summaryrefslogtreecommitdiff
path: root/deps/jemalloc
Commit message (Collapse)AuthorAgeFilesLines
* fix a rare active defrag edge case bug leading to stagnationOran Agra2020-05-202-11/+20
| | | | | | | | | | | | | | | There's a rare case which leads to stagnation in the defragger, causing it to keep scanning the keyspace and do nothing (not moving any allocation), this happens when all the allocator slabs of a certain bin have the same % utilization, but the slab from which new allocations are made have a lower utilization. this commit fixes it by removing the current slab from the overall average utilization of the bin, and also eliminate any precision loss in the utilization calculation and move the decision about the defrag to reside inside jemalloc. and also add a test that consistently reproduce this issue.
* Jemalloc: Avoid blocking on background thread lock for stats.Oran Agra2019-06-021-1/+7
| | | | | | | | | | Background threads may run for a long time, especially when the # of dirty pages is high. Avoid blocking stats calls because of this (which may cause latency spikes). see https://github.com/jemalloc/jemalloc/issues/1502 cherry picked from commit 1a71533511027dbe3f9d989659efeec446915d6b
* Active defrag fixes for 32bit builds (again)Oran Agra2018-07-111-2/+2
| | | | * overflow in jemalloc fragmentation hint to the defragger
* add defrag hint support into jemalloc 5Oran Agra2018-06-273-0/+43
|
* Generate configure for Jemalloc.antirez2018-05-243-0/+13746
|
* Jemalloc upgraded to version 5.0.1.antirez2018-05-24300-34631/+40603
|
* Active defrag fixes for 32bit buildsOran Agra2018-05-171-2/+2
| | | | | | | problems fixed: * failing to read fragmentation information from jemalloc * overflow in jemalloc fragmentation hint to the defragger * test suite not triggering eviction after population
* Revert "Jemalloc updated to 4.4.0."antirez2017-04-22150-17142/+6259
| | | | This reverts commit 36c1acc222d29e6e2dc9fc25362e4faa471111bd.
* Jemalloc updated to 4.4.0.antirez2017-01-30150-6259/+17142
| | | | | | | | The original jemalloc source tree was modified to: 1. Remove the configure error that prevents nested builds. 2. Insert the Redis private Jemalloc API in order to allow the Redis fragmentation function to work.
* Defrag: activate it only if running modified version of Jemalloc.antirez2017-01-101-0/+4
| | | | | This commit also includes minor aesthetic changes like removal of trailing spaces.
* active memory defragmentationoranagra2016-12-301-0/+32
|
* Jemalloc configure script fixed to work nested.antirez2015-10-071-18/+0
| | | | | | | | Now way to make unmodified Jemalloc configure to work when the jemalloc source tree is inside a subdirectory of a different git repository. Problem signaled here: http://www.canonware.com/pipermail/jemalloc-discuss/2015-October/001174.html
* Jemalloc updated to 4.0.3.antirez2015-10-06137-10017/+19876
|
* Jemalloc: use LG_QUANTUM of 3 for AMD64 and I386.antirez2015-07-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This gives us a 24 bytes size class which is dict.c dictEntry size, thus improving the memory efficiency of Redis significantly. Moreover other non 16 bytes aligned tiny classes are added that further reduce the fragmentation of the allocator. Technically speaking LG_QUANTUM should be 4 on i386 / AMD64 because of SSE types and other 16 bytes types, however we don't use those, and our jemalloc only targets Redis. New versions of Jemalloc will have an explicit configure switch in order to specify the quantum value for a platform without requiring any change to the Jemalloc source code: we'll switch to this system when available. This change was originally proposed by Oran Agra (@oranagra) as a change to the Jemalloc script to generate the size classes define. We ended doing it differently by changing LG_QUANTUM since it is apparently the supported Jemalloc method to obtain a 24 bytes size class, moreover it also provides us other potentially useful size classes. Related to issue #2510.
* Jemalloc updated to 3.6.0.antirez2014-06-20148-4901/+16667
| | | | | Not a single bug in about 3 months, and our previous version was too old (3.2.0).
* Redis/Jemalloc Gitignore were too aggressive.antirez2013-04-181-5/+0
| | | | | | | | Redis gitignore was too aggressive since simply broken. Jemalloc gitignore was too agressive because it is conceived to just keep the files that allow to generate all the rest in development environments (so for instance the "configure" file is excluded).
* Jemalloc updated to version 3.2.0.antirez2012-11-2840-631/+1741
|
* Jemalloc updated to 3.0.0.antirez2012-05-1678-9462/+12919
| | | | | | | | | | | | Full changelog here: http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git;a=blob_plain;f=ChangeLog;hb=master Notable improvements from the point of view of Redis: 1) Bugfixing. 2) Support for Valgrind. 3) Support for OSX Lion, FreeBSD.
* jemalloc gitignore updated to jemalloc 2.2.5antirez2011-11-251-11/+19
|
* Update to jemalloc 2.2.5jbergstroem2011-11-2324-202/+535
|
* Ignore jemalloc build artifactsPieter Noordhuis2011-06-201-0/+15
|
* jemalloc source addedantirez2011-06-2083-0/+40431