From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frederic Weisbecker Subject: [PATCH 06/10] cgroups: pull up res counter charge failure interpretation to caller Date: Wed, 1 Feb 2012 04:37:46 +0100 Message-ID: <1328067470-5980-7-git-send-email-fweisbec@gmail.com> References: <1328067470-5980-1-git-send-email-fweisbec@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=q7MmFZJQgSqv0DiSu8VNJZGQN+C5wnhlb7bdd4MmSMA=; b=SbT+psgYmYMc1QdEwSVZSzdTpDstZSksew4xuXmJZp2iquJIRZV0kQGaDA1od6X8D4 Bhaw/hXw5F9d9Rb3kmkoUq316K+N1U0TS98Z6un4BLsPDO7CuqbS1WjuT804VrEk+6Jv 3zBwlqaJWiy6JKaTtXSo/Ar1t4vEBWDn5s6II= In-Reply-To: <1328067470-5980-1-git-send-email-fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Andrew Morton , Tejun Heo , Li Zefan Cc: Aditya Kali , Glauber Costa , Tejun Heo , "Daniel P. Berrange" , Max Kellermann , Tim Hockin , Frederic Weisbecker , Paul Menage , Daniel J Walsh , Oleg Nesterov , LKML , Mandeep Singh Baines , Johannes Weiner , Cgroups , Containers res_counter_charge() always returns -ENOMEM when the limit is reached and the charge thus can't happen. However it's up to the caller to interpret this failure and return the appropriate error value. The task counter subsystem will need to report the user that a fork() has been cancelled because of some limit reached, not because we are too short on memory. Fix this by returning -1 when res_counter_charge() fails. Signed-off-by: Frederic Weisbecker Cc: Paul Menage Cc: Li Zefan Cc: Johannes Weiner Cc: Aditya Kali Cc: Oleg Nesterov Cc: Tim Hockin Cc: Tejun Heo Cc: Containers Cc: Glauber Costa Cc: Cgroups Cc: Daniel J Walsh Cc: "Daniel P. Berrange" Cc: KAMEZAWA Hiroyuki Cc: Max Kellermann Cc: Mandeep Singh Baines Acked-by: Kirill A. Shutemov Signed-off-by: Andrew Morton --- Documentation/cgroups/resource_counter.txt | 2 ++ kernel/res_counter.c | 2 +- 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/Documentation/cgroups/resource_counter.txt b/Documentation/cgroups/resource_counter.txt index a2cd05b..24ec61c 100644 --- a/Documentation/cgroups/resource_counter.txt +++ b/Documentation/cgroups/resource_counter.txt @@ -76,6 +76,8 @@ to work with it. limit_fail_at parameter is set to the particular res_counter element where the charging failed. + It returns 0 on success and -1 on failure. + d. int res_counter_charge_locked (struct res_counter *rc, unsigned long val) diff --git a/kernel/res_counter.c b/kernel/res_counter.c index d2fc4cd..78cc444 100644 --- a/kernel/res_counter.c +++ b/kernel/res_counter.c @@ -26,7 +26,7 @@ int res_counter_charge_locked(struct res_counter *counter, unsigned long val) { if (counter->usage + val > counter->limit) { counter->failcnt++; - return -ENOMEM; + return -1; } counter->usage += val; -- 1.7.5.4