Re: 2.2/2.4/2.6 VMs: do malloc() ever return NULL?

From: Ihar 'Philips' Filipau
Date: Wed Nov 26 2003 - 07:16:49 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/