opnsense-src/lib/libc
Jason Evans bb99793a2b Use extents rather than binary buddies to track free pages within
chunks.  This allows runs to be any multiple of the page size.  The
primary advantage is that large objects are no longer constrained to be
2^n pages, which can dramatically decrease internal fragmentation for
large objects.  This also allows the sizes for runs that back small
objects to be more finely tuned.

Free runs are searched for linearly using the chunk page map (with the
help of some heuristic optimizations).  This changes the allocation
policy from "first best fit" to "first fit".  A prototype red-black tree
implementation for tracking free runs that implemented "first best fit"
did not cause a measurable speed or memory usage difference for
realistic chunk sizes (though of course it is possible to construct
benchmarks that favor one allocation policy over another).

Refine the handling of fullness constraints for small runs to be more
tunable.

Restructure the per chunk page map to contain only two fields per entry,
rather than four.  Also, increase each entry from 4 to 8 bytes, since it
allows for 32-bit integers, without increasing the number of chunk
header pages.

Relax the maximum chunk size constraint.  This is of no practical
interest; it is merely fallout from the chunk page map restructuring.

Revamp statistics gathering and reporting to be faster, clearer and more
informative.  Statistics gathering is fast enough now to have little
to no impact on application speed, but it still requires approximately
two extra pages of memory per arena (per process).  This memory overhead
may be acceptable for most systems, but we still need to leave
statistics gathering disabled by default in RELENG branches.

Rename NO_MALLOC_EXTRAS to MALLOC_PRODUCTION in order to make its intent
clearer (i.e. it should be defined in RELENG branches).
2007-03-23 05:05:48 +00:00
..
amd64 Remove silly n that crept in 2007-01-09 00:38:24 +00:00
arm The distinction between quiet and signaling NaN formats is 2007-01-03 05:00:03 +00:00
compat-43 Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
db Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
gdtoa Fix rounding of 0xf for hex fp formats. 2007-01-03 04:57:58 +00:00
gen Don't assert() the TLS allocation requested is big enough; just 2007-02-25 21:23:50 +00:00
gmon Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
i386 Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
ia64 The distinction between quiet and signaling NaN formats is 2007-01-03 05:00:03 +00:00
include Remove 3rd clause, renumber, ok per email 2007-01-12 07:31:30 +00:00
inet Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
isc Merge BIND9 9.3.3 into main chunk. 2006-12-15 20:59:55 +00:00
locale Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
nameser Upgrade res_update(3) and the friends to BIND9's one excluding TSIG 2006-05-21 11:19:36 +00:00
net Let people in on the magic of INET[6]_ADDRSTRLEN which comes quite handy in 2007-03-21 05:46:18 +00:00
nls Add each directory's symbol map file to SYM_MAPS. 2006-03-13 01:15:01 +00:00
posix1e Move _posix1e_acl_name_to_id out of acl_support.c and into 2007-02-26 02:07:02 +00:00
powerpc The distinction between quiet and signaling NaN formats is 2007-01-03 05:00:03 +00:00
quad Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
regex Test cases for back references. 2007-03-05 09:44:41 +00:00
resolv Only reject file descriptors higher than FD_SETSIZE if we are not using 2007-03-05 19:39:51 +00:00
rpc Disable RPC exponential back-off for FreeBSD.org systems (IE. hidden 2007-03-04 12:25:03 +00:00
softfloat Add each directory's symbol map file to SYM_MAPS. 2006-03-13 01:15:01 +00:00
sparc64 Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
stdio o Add ENVIRONMENT section and mention there that TMPDIR is ignored 2007-03-16 21:46:24 +00:00
stdlib Use extents rather than binary buddies to track free pages within 2007-03-23 05:05:48 +00:00
stdtime On FreeBSD/arm, any value > 50 bits will result in a rediculously huge 2007-01-19 01:16:35 +00:00
string Per Regents of the University of Calfornia letter, remove advertising 2007-01-09 00:28:16 +00:00
sys Wordsmithery. 2007-03-09 19:43:42 +00:00
uuid In DCE 1.1, the time_low value is defined as an unsigned 32-bit 2006-08-03 03:34:36 +00:00
xdr Add each directory's symbol map file to SYM_MAPS. 2006-03-13 01:15:01 +00:00
yp - Bump _yplib_timeout limit from 10 to 20 seconds to better handle 2007-03-04 10:30:43 +00:00
Makefile Disable RPC exponential back-off for FreeBSD.org systems (IE. hidden 2007-03-04 12:25:03 +00:00
Versions.def Add symbol maps and initial symbol version definitions to libc. 2006-03-13 00:53:21 +00:00