I've seen a couple of instances where people try to impose a vsize limit simply because there is no rss limit in Linux. The vsize limit is a horrible approximation and even this patch seems to be an improvement.
Would there be strong opposition to actually supporting RLIMIT_RSS? Jörn -- It's not whether you win or lose, it's how you place the blame. -- unknown Not quite perfect, but close enough for many purposes. This checks rss limit inside may_expand_vm() and will fail if we are already over the limit. Signed-off-by: Joern Engel <[email protected]> --- mm/mmap.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index ab652fa..ea90c73 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2446,12 +2446,19 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, int may_expand_vm(struct mm_struct *mm, unsigned long npages) { unsigned long cur = mm->total_vm; /* pages */ - unsigned long lim; + unsigned long lim, rlim; lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT; + rlim = rlimit(RLIMIT_RSS) >> PAGE_SHIFT; if (cur + npages > lim) return 0; + if (cur + npages > rlim) { + /* Yes, the rss limit is somewhat imprecise. */ + if (get_mm_rss(mm) > rlim) { + return 0; + } + } return 1; } -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

