15 Commits

Author SHA1 Message Date
VivekSainiEQ
50884c6a20 Updated jemalloc to version 5.2.1
Former-commit-id: 7fefc7b245bc1795bd67564bcc0a8a38d1ec121c
2021-03-19 20:10:27 +00:00
Oran Agra
56d63f4d7d fix a rare active defrag edge case bug leading to stagnation
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.
2020-05-22 12:37:49 +02:00
Oran Agra
0e07566591 Jemalloc: Avoid blocking on background thread lock for stats.
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
2019-06-02 15:27:38 +03:00
Oran Agra
ad7a05292e add defrag hint support into jemalloc 5 2018-06-27 10:52:39 +03:00
antirez
e3d1823414 Jemalloc upgraded to version 5.0.1. 2018-05-24 17:17:37 +02:00
Oran Agra
0bd6e341f5 Active defrag fixes for 32bit builds
problems fixed:
* failing to read fragmentation information from jemalloc
* overflow in jemalloc fragmentation hint to the defragger
* test suite not triggering eviction after population
2018-05-17 09:52:00 +03:00
antirez
412b1733e2 Revert "Jemalloc updated to 4.4.0."
This reverts commit 36c1acc222d29e6e2dc9fc25362e4faa471111bd.
2017-04-22 13:17:07 +02:00
antirez
d69cc12bb3 Jemalloc updated to 4.4.0.
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.
2017-01-30 09:58:34 +01:00
oranagra
c053025a0a active memory defragmentation 2016-12-30 03:37:52 +02:00
antirez
e7e83e86f2 Jemalloc updated to 4.0.3. 2015-10-06 16:55:37 +02:00
antirez
72090a63a7 Jemalloc updated to 3.6.0.
Not a single bug in about 3 months, and our previous version was
too old (3.2.0).
2014-06-20 14:59:20 +02:00
antirez
24c94d3dc5 Jemalloc updated to version 3.2.0. 2012-11-28 18:39:35 +01:00
antirez
39f8289c41 Jemalloc updated to 3.0.0.
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.
2012-05-16 11:09:45 +02:00
jbergstroem
705733c4bd Update to jemalloc 2.2.5 2011-11-23 21:36:25 +01:00
antirez
f675ff36b4 jemalloc source added 2011-06-20 11:30:06 +02:00