__vm_enough_memory reserves a hardcoded 3% of free memory for other processes when overcommit is disabled. However, 3% is becoming excessive as memory sizes increase and memory cgroups provide a more flexible way to manage the issue anyway. This patch against 3.8 removes the "other" reserve.
I've found that reducing this reserve is beneficial in the case where a system with overcommit disabled has one primary user that wants to allocate as much memory as possible with a just few processes. An additional hardcoded 3% is reserved for root, both when overcommit is enabled and when it is disabled. I've made it tunable in private patches, and I plan on submitting some version of them, but I can't decide whether a ratio or a byte count would be more acceptable. What would people prefer see? Signed-off-by: Andrew Shewmaker <ags...@gmail.com> diff --git a/mm/mmap.c b/mm/mmap.c index 09da0b2..eef9505 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -183,11 +183,6 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) allowed -= allowed / 32; allowed += total_swap_pages; - /* Don't let a single process grow too big: - leave 3% of the size of this process for other processes */ - if (mm) - allowed -= mm->total_vm / 32; - if (percpu_counter_read_positive(&vm_committed_as) < allowed) return 0; error: -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/