• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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