jemalloc enhancement for small-memory systems

Tim Kientzle tim at kientzle.com
Sat Dec 22 22:40:43 UTC 2012


On Dec 22, 2012, at 11:28 AM, Ian Lepore wrote:

> When a daemon such as watchdogd uses mlockall(2) on a small-memory
> embedded system, it can end up wiring much of the available ram because
> jemalloc allocates large chunks of vmspace by default.  More background
> info on this can be found in this thread:
> 
> http://lists.freebsd.org/pipermail/freebsd-embedded/2012-November/001679.html
> 
> It's hard to tune jemalloc's allocation behavior for this in a
> machine-independent way because the minimum chunk size depends on
> PAGE_SIZE and other factors internal to jemalloc.  I've created a patch
> that addresses this by defining that lg_chunk:0 is implicitly a request
> to set the chunk size to the smallest value allowable for the machine
> it's running on.  The patch is attached to this PR...
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=174641
> 
> Jason, could you please review this and consider incorporating it into
> jemalloc?  Or let us know if there's a better way to handle this
> situation.

Would it be feasible for jemalloc to initially allocate
small blocks (to not over-allocate for small programs and
systems with small RAM) and then allocate successively
larger blocks as the program requires more memory?

Tim



More information about the freebsd-arch mailing list