[LTP] [PATCH] lib/tst_cgroup: Reset cgroup.clone_children value

Li Wang liwang@redhat.com
Fri Aug 7 12:21:32 CEST 2020


On Fri, Aug 7, 2020 at 5:42 PM Yang Xu <xuyang2018.jy@cn.fujitsu.com> wrote:

> When running cgroup test cases(like cpuset01 or oom05) about cpuset
> subsystem
> firstly, then cpuset_inherit case will fail because the value of
> cgroup.clone_children has been changed into 1 on cgroup-v1. Reset this
> value
> when calling tst_cgroupN_umount.
>
> Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
> ---
>  lib/tst_cgroup.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
> index 9459f7ea0..764951afa 100644
> --- a/lib/tst_cgroup.c
> +++ b/lib/tst_cgroup.c
> @@ -9,6 +9,8 @@
>  #include <stdio.h>
>  #include <stdlib.h>
>  #include <sys/mount.h>
> +#include <fcntl.h>
> +#include <unistd.h>
>
>  #include "tst_test.h"
>  #include "tst_safe_macros.h"
> @@ -123,6 +125,7 @@ static void tst_cgroupN_umount(const char *mnt_path,
> const char *new_path)
>         FILE *fp;
>         int fd;
>         char s_new[BUFSIZ], s[BUFSIZ], value[BUFSIZ];
> +       char knob_path[PATH_MAX];
>
>         if (!tst_is_mounted(mnt_path))
>                 return;
> @@ -151,6 +154,11 @@ static void tst_cgroupN_umount(const char *mnt_path,
> const char *new_path)
>                             != (ssize_t)strlen(value) - 1)
>                                 tst_res(TWARN | TERRNO, "write %s", s);
>         }
> +       if (tst_cg_ver & TST_CGROUP_V1) {
>

To recognize cgroup_v1 is not enough here, because it will
be failed "with no such cgroup.clone_children file" on MEMCG umount if the
system no CPUSET mounting.

Maybe a smart way is to save the cgroup.clone_children value, restore it if
it has been changed in the setup phase. What do u think?



> +               sprintf(knob_path, "%s/cgroup.clone_children", mnt_path);
> +               if (!access(knob_path, F_OK))
> +                       SAFE_FILE_PRINTF(knob_path, "%d", 0);
> +       }
>         if (fd != -1)
>                 close(fd);
>         if (fp != NULL)
> --
> 2.23.0
>
>
>
>

-- 
Regards,
Li Wang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20200807/f2babc58/attachment.htm>


More information about the ltp mailing list