<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/jemalloc.git/include/jemalloc, branch 3.5.0</title>
<subtitle>github.com: jemalloc/jemalloc
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/'/>
<entry>
<title>Remove __FBSDID from rb.h.</title>
<updated>2014-01-22T04:49:58+00:00</updated>
<author>
<name>Jason Evans</name>
<email>jasone@canonware.com</email>
</author>
<published>2014-01-22T04:48:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=0dec3507c62efac909e204217bf9b6c8c59d10ac'/>
<id>0dec3507c62efac909e204217bf9b6c8c59d10ac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add heap profiling tests.</title>
<updated>2014-01-17T23:40:52+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-17T23:40:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=772163b4f3d8e9a12343e9215f6b070068507604'/>
<id>772163b4f3d8e9a12343e9215f6b070068507604</id>
<content type='text'>
Fix a regression in prof_dump_ctx() due to an uninitized variable.  This
was caused by revision 4f37ef693e3d5903ce07dc0b61c0da320b35e3d9, so no
releases are affected.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix a regression in prof_dump_ctx() due to an uninitized variable.  This
was caused by revision 4f37ef693e3d5903ce07dc0b61c0da320b35e3d9, so no
releases are affected.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a variable prototype/definition mismatch.</title>
<updated>2014-01-17T02:04:30+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-17T02:04:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=eefdd02e70ec1b9cf11920fcff585835dcbd766b'/>
<id>eefdd02e70ec1b9cf11920fcff585835dcbd766b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix name mangling for stress tests.</title>
<updated>2014-01-17T01:38:01+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-17T01:38:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=f234dc51b9740242d8ba69307db7c5a1312f5a03'/>
<id>f234dc51b9740242d8ba69307db7c5a1312f5a03</id>
<content type='text'>
Fix stress tests such that testlib code uses the jet_ allocator, but
test code uses libjemalloc.

Generate jemalloc_{rename,mangle}.h, the former because it's needed for
the stress test name mangling fix, and the latter for consistency.  As
an artifact of this change, some (but not all) definitions related to
the experimental API are absent from the headers unless the feature is
enabled at configure time.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix stress tests such that testlib code uses the jet_ allocator, but
test code uses libjemalloc.

Generate jemalloc_{rename,mangle}.h, the former because it's needed for
the stress test name mangling fix, and the latter for consistency.  As
an artifact of this change, some (but not all) definitions related to
the experimental API are absent from the headers unless the feature is
enabled at configure time.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor prof_dump() to reduce contention.</title>
<updated>2014-01-16T21:36:38+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-16T21:23:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=4f37ef693e3d5903ce07dc0b61c0da320b35e3d9'/>
<id>4f37ef693e3d5903ce07dc0b61c0da320b35e3d9</id>
<content type='text'>
Refactor prof_dump() to use a two pass algorithm, and prof_leave() prior
to the second pass.  This avoids write(2) system calls while holding
critical prof resources.

Fix prof_dump() to close the dump file descriptor for all relevant error
paths.

Minimize the size of prof-related static buffers when prof is disabled.
This saves roughly 65 KiB of application memory for non-prof builds.

Refactor prof_ctx_init() out of prof_lookup_global().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor prof_dump() to use a two pass algorithm, and prof_leave() prior
to the second pass.  This avoids write(2) system calls while holding
critical prof resources.

Fix prof_dump() to close the dump file descriptor for all relevant error
paths.

Minimize the size of prof-related static buffers when prof is disabled.
This saves roughly 65 KiB of application memory for non-prof builds.

Refactor prof_ctx_init() out of prof_lookup_global().
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor overly large/complex functions.</title>
<updated>2014-01-15T00:23:03+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-15T00:23:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=aa5113b1fdafd1129c22512837c6c3d66c295fc8'/>
<id>aa5113b1fdafd1129c22512837c6c3d66c295fc8</id>
<content type='text'>
Refactor overly large functions by breaking out helper functions.

Refactor overly complex multi-purpose functions into separate more
specific functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor overly large functions by breaking out helper functions.

Refactor overly complex multi-purpose functions into separate more
specific functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract profiling code from [re]allocation functions.</title>
<updated>2014-01-12T23:41:05+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-12T23:05:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=b2c31660be917ea6d59cd54e6f650b06b5e812ed'/>
<id>b2c31660be917ea6d59cd54e6f650b06b5e812ed</id>
<content type='text'>
Extract profiling code from malloc(), imemalign(), calloc(), realloc(),
mallocx(), rallocx(), and xallocx().  This slightly reduces the amount
of code compiled into the fast paths, but the primary benefit is the
combinatorial complexity reduction.

Simplify iralloc[t]() by creating a separate ixalloc() that handles the
no-move cases.

Further simplify [mrxn]allocx() (and by implication [mrn]allocm()) to
make request size overflows due to size class and/or alignment
constraints trigger undefined behavior (detected by debug-only
assertions).

Report ENOMEM rather than EINVAL if an OOM occurs during heap profiling
backtrace creation in imemalign().  This bug impacted posix_memalign()
and aligned_alloc().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extract profiling code from malloc(), imemalign(), calloc(), realloc(),
mallocx(), rallocx(), and xallocx().  This slightly reduces the amount
of code compiled into the fast paths, but the primary benefit is the
combinatorial complexity reduction.

Simplify iralloc[t]() by creating a separate ixalloc() that handles the
no-move cases.

Further simplify [mrxn]allocx() (and by implication [mrn]allocm()) to
make request size overflows due to size class and/or alignment
constraints trigger undefined behavior (detected by debug-only
assertions).

Report ENOMEM rather than EINVAL if an OOM occurs during heap profiling
backtrace creation in imemalign().  This bug impacted posix_memalign()
and aligned_alloc().
</pre>
</div>
</content>
</entry>
<entry>
<title>Add junk/zero filling unit tests, and fix discovered bugs.</title>
<updated>2014-01-08T00:54:17+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-08T00:47:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=6b694c4d47278cddfaaedeb7ee49fa5757e35ed5'/>
<id>6b694c4d47278cddfaaedeb7ee49fa5757e35ed5</id>
<content type='text'>
Fix growing large reallocation to junk fill new space.

Fix huge deallocation to junk fill when munmap is disabled.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix growing large reallocation to junk fill new space.

Fix huge deallocation to junk fill when munmap is disabled.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add util unit tests, and fix discovered bugs.</title>
<updated>2014-01-07T04:41:09+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-07T04:33:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=e18c25d23de0e845f0ee7e11d02c1be044738a3c'/>
<id>e18c25d23de0e845f0ee7e11d02c1be044738a3c</id>
<content type='text'>
Add unit tests for pow2_ceil(), malloc_strtoumax(), and
malloc_snprintf().

Fix numerous bugs in malloc_strotumax() error handling/reporting.  These
bugs could have caused application-visible issues for some seldom used
(0X... and 0... prefixes) or malformed MALLOC_CONF or mallctl() argument
strings, but otherwise they had no impact.

Fix numerous bugs in malloc_snprintf().  These bugs were not exercised
by existing malloc_*printf() calls, so they had no impact.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add unit tests for pow2_ceil(), malloc_strtoumax(), and
malloc_snprintf().

Fix numerous bugs in malloc_strotumax() error handling/reporting.  These
bugs could have caused application-visible issues for some seldom used
(0X... and 0... prefixes) or malformed MALLOC_CONF or mallctl() argument
strings, but otherwise they had no impact.

Fix numerous bugs in malloc_snprintf().  These bugs were not exercised
by existing malloc_*printf() calls, so they had no impact.
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert rtree from (void *) to (uint8_t) storage.</title>
<updated>2014-01-03T01:36:38+00:00</updated>
<author>
<name>Jason Evans</name>
<email>je@fb.com</email>
</author>
<published>2014-01-03T01:36:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/jemalloc.git/commit/?id=b954bc5d3a65966df0ce7801cd6102542b5e894b'/>
<id>b954bc5d3a65966df0ce7801cd6102542b5e894b</id>
<content type='text'>
Reduce rtree memory usage by storing booleans (1 byte each) rather than
pointers.  The rtree code is only used to record whether jemalloc manages
a chunk of memory, so there's no need to store pointers in the rtree.

Increase rtree node size to 64 KiB in order to reduce tree depth from 13
to 3 on 64-bit systems.  The conversion to more compact leaf nodes was
enough by itself to make the rtree depth 1 on 32-bit systems; due to the
fact that root nodes are smaller than the specified node size if
possible, the node size change has no impact on 32-bit systems (assuming
default chunk size).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reduce rtree memory usage by storing booleans (1 byte each) rather than
pointers.  The rtree code is only used to record whether jemalloc manages
a chunk of memory, so there's no need to store pointers in the rtree.

Increase rtree node size to 64 KiB in order to reduce tree depth from 13
to 3 on 64-bit systems.  The conversion to more compact leaf nodes was
enough by itself to make the rtree depth 1 on 32-bit systems; due to the
fact that root nodes are smaller than the specified node size if
possible, the node size change has no impact on 32-bit systems (assuming
default chunk size).
</pre>
</div>
</content>
</entry>
</feed>
