04936d2e08
via mmap() up around the shared library area. Previously the directory was allocated from space from it's own memory pool. Because of the way it was being extended on processes with large malloced data segments (ie: inn) once the page directory was extended for some reason, it was not possible to lower the heap size any more to return pages to the OS. (If my understanding is correct, page directory expansion occurs at 4MB, 12MB, 20MB, 28MB, etc.) I was seeing INN allocate a large amount of short term memory, pushing it over the 28MB mark, and once it's transient demands hit 28MB, it never freed it's pages and swap space again.) I've been running this in my libc for about a month... Also, seperate MALLOC_STATS from EXTRA_SANITY.. I found it useful to call malloc_dump() from within INN from a ctlinnd command to see where the hell all the memory was going.. :-) I've left MALLOC_STATS enabled, as it has no run-time or data storage cost. Reviewed by: phk |
||
---|---|---|
.. | ||
amd64 | ||
compat-43 | ||
db | ||
gen | ||
gmon | ||
i386 | ||
locale | ||
net | ||
nls | ||
quad | ||
regex | ||
rpc | ||
stdio | ||
stdlib | ||
stdtime | ||
string | ||
sys | ||
xdr | ||
yp | ||
Makefile |