In some linux distribution, such as RHEL7U0Beta, memory.use_hierarchy is
set to 1 by systemd default, which will cause some tests failed, such as
memcg_stat_test.sh, memcg_use_hierarchy_test.sh.

According to kernel Documentation/cgroups/memory.txt's description,
the default value should be 0, and some ltp tests are written based on
this assumption, so here we set the root cgroup's memory.use_hierarchy
to 0 before running the test and restore it when finishing the test.

Signed-off-by: Xiaoguang Wang <[email protected]>
---
 .../controllers/memcg/functional/memcg_lib.sh      | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh 
b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh
index 16e30ec..ffbe006 100755
--- a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh
+++ b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh
@@ -38,6 +38,7 @@ HUGEPAGESIZE=`grep Hugepagesize /proc/meminfo | awk '{ print 
$2 }'`
 HUGEPAGESIZE=$(( $HUGEPAGESIZE * 1024 ))
 PASS=0
 FAIL=1
+orig_memory_use_hierarchy=""
 
 cur_id=0
 failed=0
@@ -396,6 +397,16 @@ test_move_charge()
 
 cleanup()
 {
+       if [ -n "$orig_memory_use_hierarchy" ];then
+               echo $orig_memory_use_hierarchy > \
+                    /dev/memcg/memory.use_hierarchy
+               if [ $? -ne 0 ];then
+                       tst_resm TINFO "restore "\
+                                "/dev/memcg/memory.use_hierarchy failed"
+               fi
+               orig_memory_use_hierarchy=""
+       fi
+
        killall -9 memcg_process 2>/dev/null
        if [ -e /dev/memcg ]; then
                umount /dev/memcg 2>/dev/null
@@ -409,4 +420,21 @@ do_mount()
 
        mkdir /dev/memcg 2> /dev/null
        mount -t cgroup -omemory memcg /dev/memcg
+
+       # The default value for memory.use_hierarchy is 0 and some of tests
+       # (memcg_stat_test.sh and memcg_use_hierarchy_test.sh) expect it so
+       # while there are distributions (RHEL7U0Beta for example) that sets
+       # it to 1.
+       orig_memory_use_hierarchy=$(cat /dev/memcg/memory.use_hierarchy)
+       if [ -z "orig_memory_use_hierarchy" ];then
+               tst_resm TINFO "cat /dev/memcg/memory.use_hierarchy failed"
+       elif [ "$orig_memory_use_hierarchy" = "0" ];then
+               orig_memory_use_hierarchy=""
+       else
+               echo 0 > /dev/memcg/memory.use_hierarchy
+               if [ $? -ne 0 ];then
+                       tst_resm TINFO "set /dev/memcg/memory.use_hierarchy" \
+                               "to 0 failed"
+               fi
+       fi
 }
-- 
1.8.2.1


------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to