Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 26 Nov 2003 13:14:54 +0100 | From | "Ihar 'Philips' Filipau" <> | Subject | Re: 2.2/2.4/2.6 VMs: do malloc() ever return NULL? |
| |
William Lee Irwin III wrote: > Rik van Riel wrote: > >>>Strict non-overcommit mode. You can allocate as much >>>non-file-backed virtual memory as will fit in swap, >>>plus /proc/sys/vm/overcommit_percentage worth of memory. > > > On Wed, Nov 26, 2003 at 11:30:23AM +0100, Ihar 'Philips' Filipau wrote: > >> [ s/overcommit_percentage/overcommit_ratio/ ] >> Thanks! On 2.6 it works as expected. Test with two concurrent memory >>allocations took some time, but both apps stops exactly when memory was >>depleted. Great. >> Did rmap has something todo with this? >> As I see from implementation of do_mmap_pgoff() - it changed from 2.4 >>to 2.6 - but there are a lot of common things. >> If I will do dumb back port of this check to 2.4 - do you think it >>will work? 2.4->2.6 memory accounting changed? >> I didn't found this check in your rmap patches for 2.4.22. (btw >>thanks for keeping them up-to-date). > > > In principle, non-overcommit shouldn't be dependent on rmap, as it > largely consists of keeping track of the sum of MAP_PRIVATE virtual > mappings' sizes and refusing them when they exceed RAM + swap. >
That's the point of my question. I know a few about MM in Linux. As I understand memory accounting is most complicated: 1st how to account kernel allocatable memory, 2nd how to reliably calculate already allocated memory. (1st looks like not present even in 2.6, 2nd not present in 2.4.)
As I understood, default overcommit_ratio=90% is made especially to protect kernel from running out of memory. And 2.6 does offset available memory by 3% for all non-root allocation checks.
But I cannot find any similar accounting stuff in 2.4... Hard to draw parallels.
Will appreciate any advice.
-- Ihar 'Philips' Filipau / with best regards from Saarbruecken. -- _ _ _ Because the kernel depends on it existing. "init" |_|*|_| literally _is_ special from a kernel standpoint, |_|_|*| because its' the "reaper of zombies" (and, may I add, |*|*|*| that would be a great name for a rock band). -- Linus Torvalds
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |