1#! /bin/sh 2# SPDX-License-Identifier: GPL-2.0-or-later 3# Copyright (c) 2012 FUJITSU LIMITED 4# Copyright (c) 2014-2018 Linux Test Project 5# Copyright (c) 2021 Joerg Vehlow <[email protected]> 6# 7# Author: Peng Haitao <[email protected]> 8 9MEMCG_TESTFUNC=test 10TST_CNT=4 11 12 13 14# Run test cases which test memory.move_charge_at_immigrate 15test_move_charge() 16{ 17 local memtypes="$1" 18 local size=$2 19 local total_size=$3 20 local move_charge_mask=$4 21 local b_rss=$5 22 local b_cache=$6 23 local a_rss=$7 24 local a_cache=$8 25 26 mkdir subgroup_a 27 28 start_memcg_process $memtypes -s $size 29 30 warmup 31 if [ $? -ne 0 ]; then 32 rmdir subgroup_a 33 return 34 fi 35 36 ROD echo $MEMCG_PROCESS_PID \> subgroup_a/tasks 37 signal_memcg_process $total_size "subgroup_a/" 38 39 ROD mkdir subgroup_b 40 echo $move_charge_mask > subgroup_b/memory.move_charge_at_immigrate 41 echo $MEMCG_PROCESS_PID > subgroup_b/tasks 42 43 cd subgroup_b 44 check_mem_stat "rss" $b_rss 45 check_mem_stat "cache" $b_cache 46 cd ../subgroup_a 47 check_mem_stat "rss" $a_rss 48 check_mem_stat "cache" $a_cache 49 cd .. 50 stop_memcg_process 51 rmdir subgroup_a subgroup_b 52} 53 54 55test1() 56{ 57 tst_res TINFO "Test disable moving charges" 58 test_move_charge "--mmap-anon" $PAGESIZES $PAGESIZES 0 0 0 $PAGESIZES 0 59} 60 61test2() 62{ 63 tst_res TINFO "Test move anon" 64 test_move_charge "--mmap-anon --shm --mmap-file" $PAGESIZES \ 65 $((PAGESIZES * 3)) 1 $PAGESIZES 0 0 $((PAGESIZES * 2)) 66} 67 68test3() 69{ 70 tst_res TINFO "Test move file" 71 test_move_charge "--mmap-anon --shm --mmap-file" $PAGESIZES \ 72 $((PAGESIZES * 3)) 2 0 $((PAGESIZES * 2)) $PAGESIZES 0 73} 74 75test4() 76{ 77 tst_res TINFO "Test move anon and file" 78 test_move_charge "--mmap-anon --shm" $PAGESIZES \ 79 $((PAGESIZES * 2)) 3 $PAGESIZES $PAGESIZES 0 0 80} 81 82. memcg_lib.sh 83tst_run 84