1#!/bin/sh 2################################################################################ 3# 4# Copyright (C) 2022 Huawei Device Co., Ltd. 5# SPDX-License-Identifier: GPL-2.0 6# 7# Unless required by applicable law or agreed to in writing, software 8# distributed under the License is distributed on an "AS IS" BASIS, 9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10# See the License for the specific language governing permissions and 11# limitations under the License. 12# 13################################################################################ 14# File: enhancedswap05.sh 15# 16# Description: zram to Eswap test 17# 18# Authors: Ma Feng - mafeng.ma@huawei.com 19# 20# History: Mar 24 2022 - init scripts 21# 22################################################################################ 23source tst_oh.sh 24 25do_setup() 26{ 27 28} 29 30do_test() 31{ 32 local ret=0 33 local memcg_100_stat=/dev/memcg/100/memory.stat 34 local memcg_eswap=/dev/memcg/memory.eswap_info 35 local avail_buffers=/dev/memcg/memory.avail_buffers 36 local zswapd_s=/dev/memcg/memory.zswapd_pressure_show 37 38 tst_res TINFO "Start zram to Eswap test" 39 # get init Eswap values 40 eswap_100_b=$(cat ${memcg_100_stat} | grep 'Eswap' | awk -F ' ' '{print$2}') 41 eswap_b=$(cat ${memcg_eswap} | awk -F ' ' '{print$4}') 42 43 # turn on enhanced swap out 44 echo 30 > /dev/memcg/memory.zram_wm_ratio 45 echo 60 10 50 > /dev/memcg/memory.zswapd_single_memcg_param 46 47 # get buffer_size 48 buffer_size=$(cat $zswapd_s | grep 'buffer_size' | awk -F ':' '{print$2}') 49 50 # set avail_buffers > buffer_size to swap out to Eswap 51 echo $(( $buffer_size + 180 )) $(( $buffer_size + 150 )) $(( $buffer_size + 200 )) 0 > $avail_buffers 52 53 sleep 3 54 55 # get new Eswap values after swap-out to Eswap 56 eswap_100_a=$(cat ${memcg_100_stat} | grep 'Eswap' | awk -F ' ' '{print$2}') 57 eswap_a=$(cat ${memcg_eswap} | awk -F ' ' '{print$4}') 58 59 tst_res TINFO "root Eswap: $eswap_b --> $eswap_a" 60 tst_res TINFO "100 Eswap: $eswap_100_b --> $eswap_100_a" 61 62 # Eswap change 63 if [[ $eswap_b -ne $eswap_a || $eswap_100_b -ne $eswap_100_a ]]; then 64 tst_res TINFO "zram to Eswap." 65 else 66 tst_res TINFO "no zram to Eswap." 67 ret=$(( $ret + 1 )) 68 fi 69 70 if [ $ret -eq 0 ];then 71 tst_res TPASS "zram to Eswap test pass." 72 else 73 tst_res TFAIL "zram to Eswap test failed!" 74 fi 75} 76 77do_clean() 78{ 79 80} 81 82do_setup 83do_test 84do_clean 85tst_exit 86