freebsd-dev/lib/libc
Jason Evans b97aec1d61 If no coalesced exact-fit small regions are available, but delayed exact-
fit regions are available, use the delayed regions in LIFO order, in order
to increase locality of reference.  We might expect this to cause delayed
regions to be removed from the delay ring buffer more often (since we're
now re-using more recently buffered regions), but numerous tests indicate
that the overall impact on memory usage tends to be good (reduced
fragmentation).

Re-work arena_frag_reg_alloc() so that when large free regions are
exhausted, it uses small regions in a way that favors contiguous allocation
of sequentially allocated small regions.  Use arena_frag_reg_alloc() in
this capacity, rather than directly attempting over-fitting of small
requests when no large regions are available.

Remove the bin overfit statistic, since it is no longer relevant due to
the arena_frag_reg_alloc() changes.

Do not specify arena_frag_reg_alloc() as an inline function.  It is too
large to benefit much from being inlined, and it is also called in two
places, only one of which is in the critical path (the other call bloated
arena_reg_alloc()).

Call arena_coalesce() for a region before caching it with
arena_mru_cache().

Add assertions that detect the attempted caching of adjacent free regions,
so that we notice this problem when it is first created, rather than in
arena_coalesce(), when it's too late to know how the problem arose.

Reported by:    Hans Blancke
2006-01-25 04:21:22 +00:00
..
alpha Remove fpsetsticky(). This was added for SysV compatibility, but due 2005-03-15 15:53:39 +00:00
amd64 Optimize the instruction alignment. 2005-04-23 18:45:36 +00:00
arm Fix a long line in copyright notice. 2005-10-03 14:43:27 +00:00
compat-43 Include a couple of headers to ensure consistency between the prototype and 2005-09-12 19:52:42 +00:00
db Fix parameter types of close and get members in DB. 2005-09-10 12:40:51 +00:00
gdtoa Don't compile the gdtoa package's strtoIg.c into libc. 2005-01-27 05:44:16 +00:00
gen Use posix_memalign() in valloc() rather than making assumptions about 2006-01-12 09:29:38 +00:00
gmon The minbrk symbol is hidden the same on powerpc as other FreeBSD platforms. 2005-12-29 04:09:38 +00:00
i386 Include a couple of headers to ensure consistency between the prototype and 2005-09-12 19:52:42 +00:00
ia64 - Define LDBL_NBIT to be a mask indicating the position of the integer 2005-03-07 04:55:40 +00:00
include In preparation for a new malloc implementation: 2006-01-12 07:28:21 +00:00
locale -mdoc sweep. 2005-11-17 13:00:00 +00:00
net Fix inet6_opt_get_val() prototype. 2005-11-23 16:07:54 +00:00
nls Better translation. 2005-07-23 21:30:35 +00:00
posix1e There's no longer^Wyet <sys/capability.h>. 2005-11-23 16:24:39 +00:00
powerpc Remove fpsetsticky(). This was added for SysV compatibility, but due 2005-03-15 15:53:39 +00:00
quad - Add prototypes for __cmpdi2() and __ucmpdi2(). 2005-09-12 16:16:12 +00:00
regex Use prototypes for CHIN1() and CHIN(). 2005-09-12 16:02:54 +00:00
rpc I wrote getnetconfig where I meant getnetpath in the previous revision. 2006-01-11 13:57:15 +00:00
softfloat Remove fpsetsticky(). This was added for SysV compatibility, but due 2005-03-15 15:53:39 +00:00
sparc64 Add the functions _Qp_cmp() and _Qp_cmpe() as described in the Sparc 2005-06-21 21:13:07 +00:00
stdio Explicitely use a "signed char" instead of a "char", for those archs where 2005-12-22 14:23:54 +00:00
stdlib If no coalesced exact-fit small regions are available, but delayed exact- 2006-01-25 04:21:22 +00:00
stdtime The arguments for time2posix() and posix2time() are time_t values, not 2005-09-11 17:09:50 +00:00
string Fix prototype. 2005-11-24 06:56:21 +00:00
sys Back out the previous change to rename.2. The previous rename() 2006-01-22 19:49:37 +00:00
uuid Keep up with const poisoning in uuid.h,v 1.3. 2005-11-24 07:04:20 +00:00
xdr Fix prototypes. 2005-11-24 07:12:01 +00:00
yp do mutex lock for each yp calls. with this, 2005-05-03 20:30:31 +00:00
Makefile gmon now supported on powerpc 2005-12-29 04:10:52 +00:00