<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/lib/libc/stdlib/malloc.3, branch release/8.2.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F8.2.0_cvs</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F8.2.0_cvs'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2011-02-16T16:18:46Z</updated>
<entry>
<title>Copy releng/8.2 to release/8.2.0 for 8.2-RELEASE.</title>
<updated>2011-02-16T16:18:46Z</updated>
<author>
<name>Ken Smith</name>
<email>kensmith@FreeBSD.org</email>
</author>
<published>2011-02-16T16:18:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=dec99dafe5763ba1db6950342aa80a634169c083'/>
<id>urn:sha1:dec99dafe5763ba1db6950342aa80a634169c083</id>
<content type='text'>
Approved by:	re (implicit)

This commit was manufactured to restore the state of the 8.2-RELEASE image.
</content>
</entry>
<entry>
<title>MFC r197524</title>
<updated>2009-11-02T18:44:01Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2009-11-02T18:44:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=225da9692c84acb9effede31c7b3fa9198e90d95'/>
<id>urn:sha1:225da9692c84acb9effede31c7b3fa9198e90d95</id>
<content type='text'>
  Make malloc(3) superpage aware.
</content>
</entry>
<entry>
<title>Revert to preferring mmap(2) over sbrk(2) when mapping memory, due to</title>
<updated>2008-11-03T21:17:18Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2008-11-03T21:17:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=b74d3e0c371a55cbd7aba7dc2c9f0001783aa231'/>
<id>urn:sha1:b74d3e0c371a55cbd7aba7dc2c9f0001783aa231</id>
<content type='text'>
potential extreme contention in the kernel for multi-threaded applications
on SMP systems.

Reported by:	kris
</content>
</entry>
<entry>
<title>Add thread-specific caching for small size classes, based on magazines.</title>
<updated>2008-08-27T02:00:53Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2008-08-27T02:00:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d6742bfbd3ecadd2bde38ccbb2351bd5c19ede1d'/>
<id>urn:sha1:d6742bfbd3ecadd2bde38ccbb2351bd5c19ede1d</id>
<content type='text'>
This caching allows for completely lock-free allocation/deallocation in the
steady state, at the expense of likely increased memory use and
fragmentation.

Reduce the default number of arenas to 2*ncpus, since thread-specific
caching typically reduces arena contention.

Modify size class spacing to include ranges of 2^n-spaced, quantum-spaced,
cacheline-spaced, and subpage-spaced size classes.  The advantages are:
fewer size classes, reduced false cacheline sharing, and reduced internal
fragmentation for allocations that are slightly over 512, 1024, etc.

Increase RUN_MAX_SMALL, in order to limit fragmentation for the
subpage-spaced size classes.

Add a size--&gt;bin lookup table for small sizes to simplify translating sizes
to size classes.  Include a hard-coded constant table that is used unless
custom size class spacing is specified at run time.

Add the ability to disable tiny size classes at compile time via
MALLOC_TINY.
</content>
</entry>
<entry>
<title>Remove support for lazy deallocation.  Benchmarks across a wide range of</title>
<updated>2008-02-17T17:09:24Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2008-02-17T17:09:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=196d0d4b59db1f1513c2a1b23cd1cdddfe4baf0e'/>
<id>urn:sha1:196d0d4b59db1f1513c2a1b23cd1cdddfe4baf0e</id>
<content type='text'>
allocation patterns, number of CPUs, and MALLOC_OPTIONS settings indicate
that lazy deallocation has the potential to worsen throughput dramatically.
Performance degradation occurs when multiple threads try to clear the lazy
free cache simultaneously.  Various experiments to avoid this bottleneck
failed to completely solve this problem, while adding yet more complexity.
</content>
</entry>
<entry>
<title>Track dirty unused pages so that they can be purged if they exceed a</title>
<updated>2008-02-06T02:59:54Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2008-02-06T02:59:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=baad859d16b9e505963450c69346f2bfc91cd341'/>
<id>urn:sha1:baad859d16b9e505963450c69346f2bfc91cd341</id>
<content type='text'>
threshold, according to the 'F' MALLOC_OPTIONS flag.  This obsoletes the
'H' flag.

Try to realloc() large objects in place.  This substantially speeds up
incremental large reallocations in the common case.

Fix a bug in arena_ralloc() that caused relocation of sub-page objects
even if the old and new sizes were in the same size class.

Maintain trees of runs and simplify the per-chunk page map.  This allows
logarithmic-time searching for sufficiently large runs in
arena_run_alloc(), whereas the previous algorithm required linear time
in the worst case.

Break various large functions into smaller sub-functions, and inline
only the functions that are in the fast path for small object
allocation/deallocation.

Remove an unnecessary check in base_pages_alloc_mmap().

Avoid integer division in choose_arena() for the NO_TLS case on
single-CPU systems.
</content>
</entry>
<entry>
<title>Enable both sbrk(2)- and mmap(2)-based memory acquisition methods by</title>
<updated>2008-01-03T23:22:13Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2008-01-03T23:22:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f38512f4af387af6e11bc0b5508d0832fe10d7e3'/>
<id>urn:sha1:f38512f4af387af6e11bc0b5508d0832fe10d7e3</id>
<content type='text'>
default.  This has the disadvantage of rendering the datasize resource
limit irrelevant, but without this change, legitimate uses of more
memory than will fit in the data segment are thwarted by default.

Fix chunk_alloc_mmap() to work correctly if initial mapping is not
chunk-aligned and mapping extension fails.
</content>
</entry>
<entry>
<title>Add the 'D' and 'M' run time options, and use them to control whether</title>
<updated>2007-12-27T23:29:44Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2007-12-27T23:29:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=ebc87e7e0bd655f875226759ce27023c44e760a3'/>
<id>urn:sha1:ebc87e7e0bd655f875226759ce27023c44e760a3</id>
<content type='text'>
memory is acquired from the system via sbrk(2) and/or mmap(2).  By default,
use sbrk(2) only, in order to support traditional use of resource limits.
Additionally, when both options are enabled, prefer the data segment to
anonymous mappings, in order to coexist better with large file mappings
in applications on 32-bit platforms.  This change has the potential to
increase memory fragmentation due to the linear nature of the data
segment, but from a performance perspective this is mitigated by the use
of madvise(2). [1]

Add the ability to interpret integer prefixes in MALLOC_OPTIONS
processing.  For example, MALLOC_OPTIONS=lllllllll can now be specified as
MALLOC_OPTIONS=9l.

Reported by:	[1] rwatson
Design review:	[1] alc, peter, rwatson
</content>
</entry>
<entry>
<title>Document the B and L MALLOC_OPTIONS.</title>
<updated>2007-11-27T03:18:26Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2007-11-27T03:18:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=77cfb3fec24843b3404da21f60a7e5b7c84b4b68'/>
<id>urn:sha1:77cfb3fec24843b3404da21f60a7e5b7c84b4b68</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add information about the implications of using mmap(2) instead of sbrk(2).</title>
<updated>2007-06-15T22:32:33Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2007-06-15T22:32:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=0061e03d7fa2c712abf1fd3e267899f614f4598c'/>
<id>urn:sha1:0061e03d7fa2c712abf1fd3e267899f614f4598c</id>
<content type='text'>
Submitted by:	bmah, jhb
</content>
</entry>
</feed>
