jemalloc enhancement for small-memory systems

Ian Lepore freebsd at damnhippie.dyndns.org
Sat Dec 22 19:28:29 UTC 2012


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.

-- Ian




More information about the freebsd-arch mailing list