Hi! ----
Are there any plans to implement support for releasing memory obtained via |mmap(..., MAP_ANON)| to the system (via |munmap()|) anytime soon ? The issue I got bug reports about is that if ksh93 allocates very large arrays as function-local variable then leaving the function doesn't release the memory... even if it's in the two-digit GB range. The issue is that this puts the system's VM subsystem under major stress... and IMO more stress than allocators which explicitly tell the underlying kernel that the memory is temporarily not needed. The algorithm I'm looking for should work like this: 1. Each time memory is compacted the allocator should issue a |madvise(data, s, MADV_DONTNEED)| over the affected data (note that |data| must be page aligned and that the backingstore for these pages is "released"... which means the next time these pages are accessed they may be zero-filled). See ttp://lxr.mozilla.org/mozilla-central/source/js/src/gc/Memory.cpp#374 for an example how this is done. 2. If there is excessive (say... 1/128 of the currently mapped memory is in use) memory mapped by the libast allocator but not in use by the consuming applications some of this unused memory should explicitly be |munmap()|'ed. ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) [email protected] \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;) _______________________________________________ ast-developers mailing list [email protected] http://lists.research.att.com/mailman/listinfo/ast-developers
