lkml.org 
[lkml]   [2008]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/3] memcgoup: allow memory.failcnt to be reset
On Tue, 11 Mar 2008 19:09:02 +0900
Li Zefan <lizf@cn.fujitsu.com> wrote:

> Allow memory.failcnt to be reset to 0:
>
> echo 0 > memory.failcnt
>
> And '0' is the only valid value.
>
Can't this be generic resource counter function ?

Thanks,
-Kame


> This is useful when testing or observing the memory resource
> controller. Without this function, one will have to remember
> the previous failcnt to decide whether memory reclaim has
> happened *again*.
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> ---
> Documentation/controllers/memory.txt | 4 +++-
> mm/memcontrol.c | 15 +++++++++++++++
> 2 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/Documentation/controllers/memory.txt b/Documentation/controllers/memory.txt
> index 866b9cd..28f80e3 100644
> --- a/Documentation/controllers/memory.txt
> +++ b/Documentation/controllers/memory.txt
> @@ -194,7 +194,9 @@ this file after a write to guarantee the value committed by the kernel.
> 4096
>
> The memory.failcnt field gives the number of times that the cgroup limit was
> -exceeded.
> +exceeded. It can be reset.
> +
> +# echo 0 > memory.failcnt
>
> The memory.stat file gives accounting information. Now, the number of
> caches, RSS and Active pages/Inactive pages are shown.
> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index 6145031..fd26dc2 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -883,6 +883,20 @@ static int mem_force_empty_write(struct cgroup *cont, struct cftype *cft,
> return ret;
> }
>
> +static int mem_failcnt_write(struct cgroup *cont, struct cftype *cft,
> + u64 val)
> +{
> + struct res_counter *counter;
> +
> + if (val != 0)
> + return -EINVAL;
> +
> + counter = &mem_cgroup_from_cont(cont)->res;
> + res_counter_write_u64(counter, cft->private, 0);
> +
> + return 0;
> +}
> +
> static const struct mem_cgroup_stat_desc {
> const char *msg;
> u64 unit;
> @@ -934,6 +948,7 @@ static struct cftype mem_cgroup_files[] = {
> {
> .name = "failcnt",
> .private = RES_FAILCNT,
> + .write_u64 = mem_failcnt_write,
> .read_u64 = mem_cgroup_read,
> },
> {
> --
> 1.5.4.rc3
>



\
 
 \ /
  Last update: 2008-03-11 11:17    [W:0.044 / U:0.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site