1f08c3bdfSopenharmony_ci#!/bin/sh 2f08c3bdfSopenharmony_ci# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. 3f08c3bdfSopenharmony_ci# Copyright (c) 2019-2021 Petr Vorel <pvorel@suse.cz> 4f08c3bdfSopenharmony_ci# Author: Alexey Kodanev <alexey.kodanev@oracle.com> 5f08c3bdfSopenharmony_ci# 6f08c3bdfSopenharmony_ci# Test checks that we can create swap zram device. 7f08c3bdfSopenharmony_ci 8f08c3bdfSopenharmony_ciTST_CNT=6 9f08c3bdfSopenharmony_ciTST_TESTFUNC="do_test" 10f08c3bdfSopenharmony_ci 11f08c3bdfSopenharmony_ci# List of parameters for zram devices. 12f08c3bdfSopenharmony_ci# For each number the test creates own zram device. 13f08c3bdfSopenharmony_cizram_max_streams="2" 14f08c3bdfSopenharmony_ci 15f08c3bdfSopenharmony_ci# The zram sysfs node 'disksize' value can be either in bytes, 16f08c3bdfSopenharmony_ci# or you can use mem suffixes. But in some old kernels, mem 17f08c3bdfSopenharmony_ci# suffixes are not supported, for example, in RHEL6.6GA's kernel 18f08c3bdfSopenharmony_ci# layer, it uses strict_strtoull() to parse disksize which does 19f08c3bdfSopenharmony_ci# not support mem suffixes, in some newer kernels, they use 20f08c3bdfSopenharmony_ci# memparse() which supports mem suffixes. So here we just use 21f08c3bdfSopenharmony_ci# bytes to make sure everything works correctly. 22f08c3bdfSopenharmony_cizram_sizes="107374182400" # 100GB 23f08c3bdfSopenharmony_cizram_mem_limits="1M" 24f08c3bdfSopenharmony_ci 25f08c3bdfSopenharmony_cizram_makeswap() 26f08c3bdfSopenharmony_ci{ 27f08c3bdfSopenharmony_ci tst_res TINFO "make swap with zram device(s)" 28f08c3bdfSopenharmony_ci tst_require_cmds mkswap swapon swapoff 29f08c3bdfSopenharmony_ci local i=0 30f08c3bdfSopenharmony_ci 31f08c3bdfSopenharmony_ci for i in $(seq $dev_start $dev_end); do 32f08c3bdfSopenharmony_ci ROD mkswap /dev/zram$i 33f08c3bdfSopenharmony_ci ROD swapon /dev/zram$i 34f08c3bdfSopenharmony_ci tst_res TINFO "done with /dev/zram$i" 35f08c3bdfSopenharmony_ci dev_makeswap=$i 36f08c3bdfSopenharmony_ci done 37f08c3bdfSopenharmony_ci 38f08c3bdfSopenharmony_ci tst_res TPASS "making zram swap succeeded" 39f08c3bdfSopenharmony_ci} 40f08c3bdfSopenharmony_ci 41f08c3bdfSopenharmony_cizram_swapoff() 42f08c3bdfSopenharmony_ci{ 43f08c3bdfSopenharmony_ci tst_require_cmds swapoff 44f08c3bdfSopenharmony_ci local i 45f08c3bdfSopenharmony_ci 46f08c3bdfSopenharmony_ci for i in $(seq $dev_start $dev_end); do 47f08c3bdfSopenharmony_ci ROD swapoff /dev/zram$i 48f08c3bdfSopenharmony_ci done 49f08c3bdfSopenharmony_ci dev_makeswap=-1 50f08c3bdfSopenharmony_ci 51f08c3bdfSopenharmony_ci tst_res TPASS "swapoff completed" 52f08c3bdfSopenharmony_ci} 53f08c3bdfSopenharmony_ci 54f08c3bdfSopenharmony_cido_test() 55f08c3bdfSopenharmony_ci{ 56f08c3bdfSopenharmony_ci case $1 in 57f08c3bdfSopenharmony_ci 1) zram_max_streams;; 58f08c3bdfSopenharmony_ci 2) zram_compress_alg;; 59f08c3bdfSopenharmony_ci 3) zram_set_disksizes;; 60f08c3bdfSopenharmony_ci 4) zram_set_memlimit;; 61f08c3bdfSopenharmony_ci 5) zram_makeswap;; 62f08c3bdfSopenharmony_ci 6) zram_swapoff;; 63f08c3bdfSopenharmony_ci esac 64f08c3bdfSopenharmony_ci} 65f08c3bdfSopenharmony_ci 66f08c3bdfSopenharmony_ci. zram_lib.sh 67f08c3bdfSopenharmony_citst_run 68