freebsd-skq/lib
Jason Evans c9f0c8fd74 Avoid using vsnprintf(3) unless MALLOC_STATS is defined, in order to
avoid substantial potential bloat for static binaries that do not
otherwise use any printf(3)-family functions. [1]

Rearrange arena_run_t so that the region bitmask can be minimally sized
according to constraints related to each bin's size class.  Previously,
the region bitmask was the same size for all run headers, which wasted
a measurable amount of memory.

Rather than making runs for small objects as large as possible, make
runs as small as possible such that header overhead stays below a
certain bound.  There are two exceptions that override the header
overhead bound:

	1) If the bound is impossible to honor, it is relaxed on a
	   per-size-class basis.  Since there is one bit of header
	   overhead per object (plus a constant), it is impossible to
	   achieve a header overhead less than or equal to 1/(# of bits
	   per object).  For the current setting of maximum 0.5% header
	   overhead, this relaxation comes into play for {2, 4, 8,
	   16}-byte objects, for which header overhead is (on 64-bit
	   systems) {7.1, 4.3, 2.2, 1.2}%, respectively.

	2) There is still a cap on small run size, still set to 64kB.
	   This comes into play for {1024, 2048}-byte objects, for which
	   header overhead is {1.6, 3.1}%, respectively.

In practice, this reduces the run sizes, which makes worst case
low-water memory usage due to fragmentation less bad.  It also reduces
worst case high-water run fragmentation due to non-full runs, but this
is only a constant improvement (most important to small short-lived
processes).

Reduce the default chunk size from 2MB to 1MB.  Benchmarks indicate that
the external fragmentation reduction makes 1MB the new sweet spot (as
small as possible without adversely affecting performance).

Reported by:	[1] kientzle
2007-03-20 03:44:10 +00:00
..
bind Update generated files for BIND 9.3.4 2007-01-29 18:33:18 +00:00
csu Fix TLS on sparc64 for statically and dynamically linked binaries 2006-10-08 02:50:34 +00:00
libalias Fix a regression: let natd load libalias modules before /usr is mounted 2006-10-08 14:02:00 +00:00
libarchive Don't forget to increment the raw_position (bytes written) counter, even 2007-03-17 14:59:04 +00:00
libatm Bump library majro version for gethostbyaddr(3). 2006-05-21 15:15:21 +00:00
libautofs
libbegemot
libbluetooth
libbsm Hook up additional OpenBSM man page aliases following OpenBSM 1.0 alpha 12 2006-09-25 11:53:58 +00:00
libbsnmp
libbz2
libc Avoid using vsnprintf(3) unless MALLOC_STATS is defined, in order to 2007-03-20 03:44:10 +00:00
libc_r Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
libcalendar
libcam 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
libcom_err
libcompat Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libcrypt
libdevinfo Markup fixes. 2006-09-17 21:27:35 +00:00
libdevstat
libdisk unbreak build for sparc64 etc. 2006-10-09 05:12:54 +00:00
libedit Merge the following changes from NetBSD: 2007-03-11 21:47:40 +00:00
libelf Correct a typo. 2007-03-19 03:52:20 +00:00
libexpat
libfetch Respect MK_INET6_SUPPORT. 2006-07-27 04:54:03 +00:00
libftpio Respect MK_INET6_SUPPORT. 2006-07-27 04:54:03 +00:00
libgeom
libgpib Apply style.Makefile(5) here. 2006-04-13 08:12:31 +00:00
libgssapi
libipsec Markup fixes. 2006-09-17 21:27:35 +00:00
libipx Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libkiconv
libkse Oops, fix a typo in the last commit :-/ 2007-03-05 19:00:49 +00:00
libkvm - Move 'struct swdevt' back into swap_pager.h and expose it to userland. 2007-02-07 17:43:11 +00:00
libmagic Update for the 'file' 4.17 import. 2006-06-19 08:10:23 +00:00
libmd
libmemstat Fix a comment in memstat.h: errors are associated with memory type lists, 2007-03-15 10:44:18 +00:00
libmilter
libmp Pass BN_CTX to internal functions instead of allocating it internally. 2006-07-30 19:29:26 +00:00
libncp Mark data structures used on the wire with IPX SAP as __packed so that 2007-02-26 12:07:08 +00:00
libnetgraph Include sys/socket.h to know about sa_family_t. 2006-10-17 16:56:29 +00:00
libngatm
libopie
libpam Send not only Access Request, but also Access Challenge with defined 2007-01-20 08:52:04 +00:00
libpcap Place shared libpcap library under /lib, currently needed by 2006-04-13 07:25:02 +00:00
libpmc Markup fixes. 2006-09-17 21:27:35 +00:00
libpthread Oops, fix a typo in the last commit :-/ 2007-03-05 19:00:49 +00:00
libradius
librpcsvc
librt Account for recent changes in namespace.h. Use _pthread_create 2006-03-29 04:20:53 +00:00
libsbuf
libsdp - Add new service class definitions and a new attribute identifier definition 2006-08-26 23:16:35 +00:00
libsm Add new libsm file from sendmail 8.13.6 2006-03-22 16:58:15 +00:00
libsmb
libsmdb
libsmutil
libstand Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libtacplus o Fix function name. 2006-10-28 10:53:39 +00:00
libtelnet Stop enforcing dependencies between MK_* options at Makefile level. 2006-07-31 13:29:36 +00:00
libthr Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
libthread_db remove libc_r remanent. 2006-10-20 14:15:42 +00:00
libufs The ufs_disk_fillout(3) can take special device name (with or without /dev/ 2007-03-16 03:13:28 +00:00
libugidfw Add some new options to mac_bsdestended. We can now match on: 2006-04-23 17:06:18 +00:00
libusbhid
libutil Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libvgl o Fix typo. 2006-10-21 15:12:36 +00:00
libwrap Remove a (harmless) stray backslash. 2007-02-27 16:13:19 +00:00
liby Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libypclnt Hook ypclnt.3 up to the build. 2007-02-15 02:43:14 +00:00
libz Resolve conflicts. 2006-03-23 14:09:21 +00:00
msun Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
ncurses Enable ncurses wide character support 2007-03-09 12:11:58 +00:00
Makefile Switch to new ncurses build glue 2007-01-20 07:48:10 +00:00
Makefile.inc