On Tue, 11 Mar 2008 19:09:02 +0900
Li Zefan <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
> ---
>  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
> 

_______________________________________________
Containers mailing list
[EMAIL PROTECTED]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to