Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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