~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/zram/zram01.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0-or-later
  3 # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved.
  4 #
  5 # Test creates several zram devices with different filesystems on them.
  6 # It fills each device with zeros and checks that compression works.
  7 #
  8 # Author: Alexey Kodanev <alexey.kodanev@oracle.com>
  9 # Modified: Naresh Kamboju <naresh.kamboju@linaro.org>
 10 
 11 TCID="zram01"
 12 ERR_CODE=0
 13 
 14 . ./zram_lib.sh
 15 
 16 # Test will create the following number of zram devices:
 17 dev_num=1
 18 # This is a list of parameters for zram devices.
 19 # Number of items must be equal to 'dev_num' parameter.
 20 zram_max_streams="2"
 21 
 22 # The zram sysfs node 'disksize' value can be either in bytes,
 23 # or you can use mem suffixes. But in some old kernels, mem
 24 # suffixes are not supported, for example, in RHEL6.6GA's kernel
 25 # layer, it uses strict_strtoull() to parse disksize which does
 26 # not support mem suffixes, in some newer kernels, they use
 27 # memparse() which supports mem suffixes. So here we just use
 28 # bytes to make sure everything works correctly.
 29 zram_sizes="2097152" # 2MB
 30 zram_mem_limits="2M"
 31 zram_filesystems="ext4"
 32 zram_algs="lzo"
 33 
 34 zram_fill_fs()
 35 {
 36         for i in $(seq $dev_start $dev_end); do
 37                 echo "fill zram$i..."
 38                 local b=0
 39                 while [ true ]; do
 40                         dd conv=notrunc if=/dev/zero of=zram${i}/file \
 41                                 oflag=append count=1 bs=1024 status=none \
 42                                 > /dev/null 2>&1 || break
 43                         b=$(($b + 1))
 44                 done
 45                 echo "zram$i can be filled with '$b' KB"
 46 
 47                 local mem_used_total=`awk '{print $3}' "/sys/block/zram$i/mm_stat"`
 48                 local v=$((100 * 1024 * $b / $mem_used_total))
 49                 if [ "$v" -lt 100 ]; then
 50                          echo "FAIL compression ratio: 0.$v:1"
 51                          ERR_CODE=-1
 52                          return
 53                 fi
 54 
 55                 echo "zram compression ratio: $(echo "scale=2; $v / 100 " | bc):1: OK"
 56         done
 57 }
 58 
 59 check_prereqs
 60 zram_load
 61 zram_max_streams
 62 zram_compress_alg
 63 zram_set_disksizes
 64 zram_set_memlimit
 65 zram_makefs
 66 zram_mount
 67 
 68 zram_fill_fs
 69 zram_cleanup
 70 
 71 if [ $ERR_CODE -ne 0 ]; then
 72         echo "$TCID : [FAIL]"
 73 else
 74         echo "$TCID : [PASS]"
 75 fi

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php