On 03/19/2012 06:28 PM, Zhouping Liu wrote:

> Since commit http://git.kernel.org/linus/a42c390cfa0c,
> which added an option to control memcg swap, when kernel
> neither set CGROUP_MEM_RES_CTLR_SWAP_ENABLED nor add
> 'swapaccount=1' kernel parameter, that indicates memcg swap
> accounting is disabled, it will have no such file:
> memory.memsw.*, then oom03 & oom04 cases will fail.
> 
> The patch fixed it: removed memsw cases when memcg swap
> accounting is disabled, and added a TCONF:
> tst_resm(TCONF,"memcg swap accounting is disabled");
> 
> Signed-off-by: Zhouping Liu <[email protected]>
> Reviewed-by: Caspar Zhang <[email protected]>
> 
> v2 -> v3: added MEMCG_SW_LIMIT to instead of
>           'MEMCG_PATH_NEW "/memory.memsw.limit_in_bytes"'
>           and updated TINFO to TCONF, which made more sense.
> ---
>  testcases/kernel/mem/include/mem.h |    1 +
>  testcases/kernel/mem/oom/oom03.c   |   12 ++++++++++--
>  testcases/kernel/mem/oom/oom04.c   |   25 ++++++++++++++++++++-----
>  3 files changed, 31 insertions(+), 7 deletions(-)
> 
> diff --git a/testcases/kernel/mem/include/mem.h 
> b/testcases/kernel/mem/include/mem.h
> index 00bb139..4c568cd 100644
> --- a/testcases/kernel/mem/include/mem.h
> +++ b/testcases/kernel/mem/include/mem.h
> @@ -50,6 +50,7 @@ void ksm_usage(void);
>  #define CPATH_NEW            CPATH "/1"
>  #define MEMCG_PATH           "/dev/cgroup"
>  #define MEMCG_PATH_NEW               MEMCG_PATH "/1"
> +#define MEMCG_SW_LIMIT               MEMCG_PATH_NEW 
> "/memory.memsw.limit_in_bytes"
>  #if HAVE_SYS_EVENTFD_H
>  #define PATH_OOMCTRL         MEMCG_PATH_NEW "/memory.oom_control"
>  #define PATH_EVTCTRL         MEMCG_PATH_NEW "/cgroup.event_control"
> diff --git a/testcases/kernel/mem/oom/oom03.c 
> b/testcases/kernel/mem/oom/oom03.c
> index b90d4d7..6de68b0 100644
> --- a/testcases/kernel/mem/oom/oom03.c
> +++ b/testcases/kernel/mem/oom/oom03.c
> @@ -66,8 +66,16 @@ int main(int argc, char *argv[])
>               write_file(MEMCG_PATH_NEW "/memory.limit_in_bytes", mem);
>               testoom(0, 0, 0);
>  
> -             write_file(MEMCG_PATH_NEW "/memory.memsw.limit_in_bytes", mem);
> -             testoom(0, 1, 0);
> +             if (access(MEMCG_SW_LIMIT, F_OK) == -1) {
> +                     if (errno == ENOENT)
> +                             tst_resm(TCONF,
> +                                 "memcg swap accounting is disabled");
> +                     else
> +                             tst_brkm(TBROK|TERRNO, cleanup, "access");
> +             } else {
> +                     write_file(MEMCG_SW_LIMIT, mem);
> +                     testoom(0, 1, 0);
> +             }
>       }
>       cleanup();
>       tst_exit();
> diff --git a/testcases/kernel/mem/oom/oom04.c 
> b/testcases/kernel/mem/oom/oom04.c
> index fb35f96..00030b9 100644
> --- a/testcases/kernel/mem/oom/oom04.c
> +++ b/testcases/kernel/mem/oom/oom04.c
> @@ -48,6 +48,7 @@ int main(int argc, char *argv[])
>  {
>       char *msg;
>       int lc;
> +     int swap_acc_on = 1;
>       long nodes[MAXNODES];
>       char buf[BUFSIZ], mem[BUFSIZ];
>  
> @@ -73,19 +74,33 @@ int main(int argc, char *argv[])
>               snprintf(mem, BUFSIZ, "%ld", TESTMEM);
>               write_file(MEMCG_PATH_NEW "/memory.limit_in_bytes", mem);
>  
> +             if (access(MEMCG_SW_LIMIT, F_OK) == -1) {
> +                     if (errno == ENOENT) {
> +                             tst_resm(TCONF,
> +                                 "memcg swap accounting is disabled");
> +                             swap_acc_on = 0;
> +                     } else
> +                             tst_brkm(TBROK|TERRNO, cleanup, "access");


Here also need a parentheses for "else" , but it's just as well.

Reviewed-by: Wanlong Gao <[email protected]>



Thanks,
Wanlong Gao


> +             }
> +
>               tst_resm(TINFO, "process mempolicy.");
>               testoom(1, 0, 1);
>  
> -             write_file(MEMCG_PATH_NEW "/memory.memsw.limit_in_bytes", mem);
> -             testoom(1, 1, 1);
> +             if (swap_acc_on) {
> +                     write_file(MEMCG_SW_LIMIT, mem);
> +                     testoom(1, 1, 1);
> +             }
>  
>               tst_resm(TINFO, "process cpuset.");
>  
> -             write_file(MEMCG_PATH_NEW "/memory.memsw.limit_in_bytes", "-1");
> +             if (swap_acc_on)
> +                     write_file(MEMCG_SW_LIMIT, "-1");
>               testoom(0, 0, 1);
>  
> -             write_file(MEMCG_PATH_NEW "/memory.memsw.limit_in_bytes", mem);
> -             testoom(0, 1, 1);
> +             if (swap_acc_on) {                      
> +                     write_file(MEMCG_SW_LIMIT, mem);
> +                     testoom(0, 1, 1);
> +             }
>       }
>       cleanup();
>       tst_exit();



------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to