Re: [PATCH] res_counter: fix off-by-one bug in setting limit

Previous thread: [PATCH] COMPAT_BINFMT_ELF definition tweak by Alexey Dobriyan on Sunday, August 31, 2008 - 9:59 pm. (1 message)

Next thread: none
From: Li Zefan
Date: Sunday, August 31, 2008 - 10:08 pm

I found we can no longer set limit to 0 with 2.6.27-rcX:
 # mount -t cgroup -omemory xxx /mnt
 # mkdir /mnt/0
 # echo 0 > /mnt/0/memory.limit_in_bytes
 bash: echo: write error: Device or resource busy

It turned out 'limit' can't be set to 'usage', which is wrong IMO.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 include/linux/res_counter.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h
index fdeadd9..271c1c2 100644
--- a/include/linux/res_counter.h
+++ b/include/linux/res_counter.h
@@ -166,7 +166,7 @@ static inline int res_counter_set_limit(struct res_counter *cnt,
 	int ret = -EBUSY;
 
 	spin_lock_irqsave(&cnt->lock, flags);
-	if (cnt->usage < limit) {
+	if (cnt->usage <= limit) {
 		cnt->limit = limit;
 		ret = 0;
 	}
-- 1.5.4.rc3 
--

From: KAMEZAWA Hiroyuki
Date: Sunday, August 31, 2008 - 10:30 pm

On Mon, 01 Sep 2008 13:08:55 +0800

But setting limit to 0(usage) in memcg is buggy operation unless you want to see OOM..
Hmm..

Thanks,

--

From: Li Zefan
Date: Sunday, August 31, 2008 - 10:43 pm

I used to set 0 limit to test OOM in memcg. I don't think 0 limit is buggy, there's no
much difference with 0 limit and a very low limit.

And the real issue is, now we can set limit to > usage, but not >= usage. It's odd that
usage can reach to limit but limit can't be shrinked to usage.

--

From: KAMEZAWA Hiroyuki
Date: Sunday, August 31, 2008 - 11:04 pm

On Mon, 01 Sep 2008 13:43:57 +0800
ok.

Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

--

From: Balbir Singh
Date: Sunday, August 31, 2008 - 11:28 pm

OK, based on Kamezawa's feedback and looking at the patch

Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>

-- 
	Balbir
--

From: Pavel Emelyanov
Date: Monday, September 1, 2008 - 1:55 am

Acked-by: Pavel Emelyanov <xemul@openvz.org>
--

Previous thread: [PATCH] COMPAT_BINFMT_ELF definition tweak by Alexey Dobriyan on Sunday, August 31, 2008 - 9:59 pm. (1 message)

Next thread: none