All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH] allow "unlimited" limit value.
@ 2007-09-25 10:39 KAMEZAWA Hiroyuki
       [not found] ` <20070925193900.1af6d871.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
  0 siblings, 1 reply; 26+ messages in thread
From: KAMEZAWA Hiroyuki @ 2007-09-25 10:39 UTC (permalink / raw)
  To: balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
  Cc: containers-qjLDD68F18O7TbgM5vRIOg, menage-hpIqsD4AKlfQT0dZR+AlfA,
	rientjes-hpIqsD4AKlfQT0dZR+AlfA

just for a RFC.

When I use memory controller, I notice that memory.limit_in_bytes shows
just very big number, if unlimited.

A user(or tool) has to know that the big number(LLONG_MAX) means "unlimted".
IMHO, some interface which allows users to specify "unlimited" value is helpful.

This patch tries to define value RES_COUTNER_UNLIMITED (== LLONG_MAX) and
modifies an interface to support "unlimted" value.

Because this patch breaks limit_in_bytes to some extent,
I'm glad if someone has a better idea to show unlimited value.
(if some easy value means "unlimited", it's helpful. LLONG_MAX is not easy
 to be recognized.)

==after this patch ==
[root@aworks kamezawa]# echo -n 400000000 > /opt/cgroup/memory.limit_in_bytes
[root@aworks kamezawa]# cat /opt/cgroup/memory.limit_in_bytes
400003072
[root@aworks kamezawa]# echo -n unlimited > /opt/cgroup/memory.limit_in_bytes
[root@aworks kamezawa]# cat /opt/cgroup/memory.limit_in_bytes
unlimited


Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>


 include/linux/res_counter.h |    1 +
 kernel/res_counter.c        |   11 ++++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

Index: linux-2.6.23-rc8-mm1/include/linux/res_counter.h
===================================================================
--- linux-2.6.23-rc8-mm1.orig/include/linux/res_counter.h
+++ linux-2.6.23-rc8-mm1/include/linux/res_counter.h
@@ -28,6 +28,7 @@ struct res_counter {
 	 * the limit that usage cannot exceed
 	 */
 	unsigned long long limit;
+#define RES_COUNTER_UNLIMITED		((unsigned long long)LLONG_MAX)
 	/*
 	 * the number of unsuccessful attempts to consume the resource
 	 */
Index: linux-2.6.23-rc8-mm1/kernel/res_counter.c
===================================================================
--- linux-2.6.23-rc8-mm1.orig/kernel/res_counter.c
+++ linux-2.6.23-rc8-mm1/kernel/res_counter.c
@@ -16,7 +16,7 @@
 void res_counter_init(struct res_counter *counter)
 {
 	spin_lock_init(&counter->lock);
-	counter->limit = (unsigned long long)LLONG_MAX;
+	counter->limit = RES_COUNTER_UNLIMITED;
 }
 
 int res_counter_charge_locked(struct res_counter *counter, unsigned long val)
@@ -84,7 +84,9 @@ ssize_t res_counter_read(struct res_coun
 
 	s = buf;
 	val = res_counter_member(counter, member);
-	if (read_strategy)
+	if (*val == RES_COUNTER_UNLIMITED) {
+		s += sprintf(s, "unlimited\n", *val);
+	} else if (read_strategy)
 		s += read_strategy(*val, s);
 	else
 		s += sprintf(s, "%llu\n", *val);
@@ -112,7 +114,10 @@ ssize_t res_counter_write(struct res_cou
 
 	ret = -EINVAL;
 
-	if (write_strategy) {
+	if ((strcmp(buf, "-1") == 0) ||
+	    (strcmp(buf,"unlimited") == 0)) {
+		tmp = RES_COUNTER_UNLIMITED;
+	} else if(write_strategy) {
 		if (write_strategy(buf, &tmp)) {
 			goto out_free;
 		}

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2007-09-26 11:02 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-25 10:39 [RFC][PATCH] allow "unlimited" limit value KAMEZAWA Hiroyuki
     [not found] ` <20070925193900.1af6d871.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2007-09-25 10:49   ` Balbir Singh
     [not found]     ` <46F8E7AE.2090309-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-09-25 11:29       ` KAMEZAWA Hiroyuki
     [not found]         ` <20070925202954.4e477564.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2007-09-25 11:54           ` Balbir Singh
     [not found]             ` <46F8F6FE.7040006-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-09-25 13:06               ` Pavel Emelyanov
     [not found]                 ` <46F907CE.1060807-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2007-09-25 13:31                   ` Balbir Singh
     [not found]                     ` <46F90DCA.5030209-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-09-25 13:34                       ` Pavel Emelyanov
     [not found]                         ` <46F90E48.6080603-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2007-09-25 15:05                           ` KAMEZAWA Hiroyuki
     [not found]                             ` <20070926000510.7d956db8.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2007-09-25 15:14                               ` Pavel Emelyanov
     [not found]                                 ` <46F925ED.20303-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2007-09-25 15:30                                   ` KAMEZAWA Hiroyuki
     [not found]                                     ` <20070926003056.7df087a0.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2007-09-25 19:07                                       ` David Rientjes
     [not found]                                         ` <alpine.DEB.0.9999.0709251205390.19001-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2007-09-25 19:21                                           ` Balbir Singh
     [not found]                                             ` <46F95FD7.3010204-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-09-25 19:30                                               ` David Rientjes
2007-09-25 19:35                                               ` Paul Menage
     [not found]                                                 ` <6599ad830709251235u33dde9c8pfd56ed3d9d4fbe4b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-09-25 19:40                                                   ` David Rientjes
     [not found]                                                     ` <alpine.DEB.0.9999.0709251236040.23337-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2007-09-25 20:00                                                       ` Paul Menage
     [not found]                                                         ` <6599ad830709251300sea126bam5a4b6f7c6bd366e0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-09-25 20:07                                                           ` David Rientjes
     [not found]                                                             ` <alpine.DEB.0.9999.0709251304030.28350-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2007-09-25 20:12                                                               ` Paul Menage
     [not found]                                                                 ` <6599ad830709251312p7cdfae3byac2048fdc64ea5ca-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-09-25 20:32                                                                   ` David Rientjes
     [not found]                                                                     ` <alpine.DEB.0.9999.0709251325540.29575-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2007-09-25 20:40                                                                       ` Paul Menage
     [not found]                                                                         ` <6599ad830709251340t6e002dcbh6d7bcc6e6405739-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-09-25 20:58                                                                           ` David Rientjes
     [not found]                                                                             ` <alpine.DEB.0.9999.0709251346550.30668-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2007-09-26  0:06                                                                               ` Paul Menage
2007-09-26  1:23                                               ` KAMEZAWA Hiroyuki
     [not found]                                                 ` <20070926102343.0f700503.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2007-09-26  9:45                                                   ` Pavel Emelyanov
     [not found]                                                     ` <46FA2A4B.4040801-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2007-09-26 10:59                                                       ` Balbir Singh
     [not found]                                                         ` <46FA3B94.3080808-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-09-26 11:02                                                           ` Pavel Emelyanov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.