[LTP] 答复: [PATCH] memcg_use_hierarchy_test.sh: skip setting use_hierarchy if not available

Chen, Hanxiao chenhx.fnst@cn.fujitsu.com
Mon Sep 21 12:53:58 CEST 2020


Hi, Yang

> -----邮件原件-----
> 主题: Re: [LTP] [PATCH] memcg_use_hierarchy_test.sh: skip setting
> use_hierarchy if not available
> 
> Hi hanxiao
> 
> 
> > The precondition of this case is that we can disable use_hierarchy.
> > But some distributions such as CentOS 8 had enabled it in root cgroup
> > and hard to disabled.
[snip]
> /dev/memcg/memory.use_hierarchy" \
> > +                                    "to 0 failed"
> > +                        fi
> > +                fi
> I test this patch on centos7 and testcase2 skips. On centos7(without installing
> docker), /sys/fs/cgroup/memory/memory.use_hierarchy value is equal to 1 and I
> still can disable value for /dev/memcg/memory.use_hierarchy.
> 

The behavior above looks conflicting with https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt.

> So why not directly use /dev/memcg/memory.use_hierarchy value to judge in
> testcase after setting 0.

In setup_test from memcg_lib.sh, we actually did:
    mount -t cgroup -omemory memcg /dev/memcg
Then kernel will find a suitable cgroup root for us in cgroup1_mount.

In this case, /sys/fs/cgroup/memory/ would be the good choice.
So it's equivalent to read memory.use_hierarchy from either side.

Regards, 
- Hanxiao
> 
> Best Regards
> Yang Xu
> >   	fi
> >
> >   	ROD mkdir "/dev/memcg/$TEST_ID"
> > diff --git
> > a/testcases/kernel/controllers/memcg/functional/memcg_use_hierarchy_te
> > st.sh
> > b/testcases/kernel/controllers/memcg/functional/memcg_use_hierarchy_te
> > st.sh
> > index 4cf6b9fc2..1439b6352 100755
> > ---
> > a/testcases/kernel/controllers/memcg/functional/memcg_use_hierarchy_te
> > st.sh
> > +++ b/testcases/kernel/controllers/memcg/functional/memcg_use_hierarch
> > +++ y_test.sh
> > @@ -34,7 +34,9 @@ TST_TOTAL=3
> >   # test if one of the ancestors goes over its limit, the proces will be killed
> >   testcase_1()
> >   {
> > -	echo 1 > memory.use_hierarchy
> > +        if [ "$root_memory_use_hierarchy" != "1" ]; then
> > +                echo 1 > memory.use_hierarchy
> > +        fi
> >   	echo $PAGESIZE > memory.limit_in_bytes
> >
> >   	mkdir subgroup
> > @@ -48,6 +50,10 @@ testcase_1()
> >   # test Enabling will fail if the cgroup already has other cgroups
> >   testcase_2()
> >   {
> > +        if [ "$root_memory_use_hierarchy" = "1" ]; then
> > +               tst_resm TCONF "root cgroup has use_hierarchy enabled,
> skip"
> > +               return
> > +        fi
> >   	mkdir subgroup
> >   	EXPECT_FAIL echo 1 \> memory.use_hierarchy
> >
> > @@ -57,7 +63,9 @@ testcase_2()
> >   # test disabling will fail if the parent cgroup has enabled hierarchy.
> >   testcase_3()
> >   {
> > -	echo 1 > memory.use_hierarchy
> > +        if [ "$root_memory_use_hierarchy" != "1" ]; then
> > +               echo 1 > memory.use_hierarchy
> > +        fi
> >   	mkdir subgroup
> >   	EXPECT_FAIL echo 0 \> subgroup/memory.use_hierarchy
> >
> >




More information about the ltp mailing list