From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id A518D8045D for ; Tue, 3 Nov 2026 11:05:18 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A3B3xLY004300; Tue, 3 Nov 2026 14:04:00 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A3B3xLY004300 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="XntIoFZ1" Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A3B3wi1004296 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 3 Nov 2026 14:03:58 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A3B3wi1004296 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4a1895ffc83so30067215e9.3 for ; Tue, 03 Nov 2026 03:03:58 -0800 (PST) X-Gm-Message-State: APuU4Z9x2YLYwwa9lEd62Z52hWXrJ+WDAK25revOuTa9JKm3hls1rkAC 9o1I3J/gV/EALjNQlStQE3ABCsDusJ52gsV1OHNIMb42tALI55R3oPqsBUhVILFuAR6r2PkcT/O Qeif4vcB9kfDycVfzdloWgjIQzSzpLaB4DIa40vi7vw7BmAa9+iZ6Ag== X-Gm-Gg: AYBFou0uunhMhrxUTHWiTZsWcQ2dUv9KLVv4DOzX+UirihwtlTdmxHiscxEc6NU7y5g D55CQc4TXH7aj2cKA1dkc52X9rfS3ehuaPirhp4Z8za+i+9N3bjMyiWT77qevS25H5Y4/8OSUV7 NPzjYXwEUuIPetzhOIVJc42nWj8bJnGobil18fuZzCrcweKtf56/BQ7N3nk6kkmBeOLfXAjNNQf aoCLLKAVgbPuWM3aBUmWWTBceAJ7PN9Nca9Xd0xW1FjgkaWMpXLHaVVDw6r3/ApL1X///i4IRcJ OdmYlry2OuJeWIxJiHHqxfwhPPhbzeNvSIIHjXXsiBFcyq9N5I3dC/BbIFZ03i7Kx6mL9MdFbbe S2AmBYsZJEePUoL/a2MWPU5Vd X-Received: by 2002:a05:600c:3d8d:b0:4a2:cbe:beac with SMTP id 5b1f17b1804b1-4ac18a89393mr274657855e9.23.1793703838308; Tue, 03 Nov 2026 03:03:58 -0800 (PST) X-Received: by 2002:a05:600c:3d8d:b0:4a2:cbe:beac with SMTP id 5b1f17b1804b1-4ac18a89393mr274657195e9.23.1793703837788; Tue, 03 Nov 2026 03:03:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1793703837; cv=none; d=google.com; s=arc-20260327; b=F93ZbDvtvXRMWALF05gOhKEm2wD7AHqJhcUqpT4DjND+sHubEPGh8aMszheyt+v9x7 yGEtdagPEvSO9NQ7T16sUJwHUr87EnoRnera+gGQgYvLjMQAjxdri0WoAli5bBPiqF3H Xe/h6673ZOkuJQ7TEcpRZaRFJi9YMcrOSi8NhsnVsmyYTEl2JnEQ7hcIbVIsfC8JMp4R FfOrstHVBNuYuKX3x5ScaK9NS65cBppZHCZ5cMiExc1ztbqzEELLEnH+gN9fUBSrJ9/4 +EsnusVPS18/PiGf69mpunDKzOh/XX/V0ODF9f/zNZcM+e09YxmU6xhL+kUKDXWZR7pc 4WHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=LKRxgl+CfcxqIeB2HPPnsmmJJPskmUUZgKRt4CNpfnM=; fh=WpT6aB7RBAGHZeWZzqAr71yzRFbPTYkPWKsRagLn48Q=; b=Pv4LHRNTy3NroyRaJWfttDZvQBy5Gm89rDezc1bRsQZQfniFYLn4oO2S4yA7RUbI0J LNirpoNGLwYY6zZyhu/FkKsw2JMCbcSBrG9/2VcSNcJSEGOFt9RKQ30h0l/v+T+Vbe73 8v6MzZICuKcGZ/p9sJi11qva1wlDPa3pu83cMeaBwWCwCHZu5+AYCZHguMSj/QqJf+uI GkJg4ccU2O4CjsI88b7xQ3mVRbtvrIrsplL8PRWhXXTAFJVQomKtJexcve3/9SuQyYr3 4ZIdB/8cptuWEIPLLL8rV96K5x/v8jN/lSe3Wh82rF/LFJCEM9C5DBFyndCLpsdcy7cE 3rAg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=XntIoFZ1; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48e71bae332si23591256f8f.147.2026.11.03.03.03.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2026 03:03:57 -0800 (PST) Received-SPF: pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=XntIoFZ1; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=LKRxgl+CfcxqIeB2HPPnsmmJJPskmUUZgKRt4CNpfnM=; b=XntIoFZ1VdqF 2hicBo5A392sBZqOLXCGJ1ueKHyboeW+lqrYKhOMHs/Eb+0OiuKFx9ra+QGLhvLmU7a1BcNY7tztn oQ705zuzEh/f6zlVioWgpsN93eccePNn1hmEOdT8k0NldwbXziAvohmQPY5uMugbbw9Ql13PEApNJ FMPdP1UDnjkUTYIIQqmhL9C8Z6WeCSnAvfEEy+S6ynWsgZoKz4BK/elZt4O7Nne8Qa9A505MpE3v2 IWrCvTRXn+QC+yKGG+QKtGr8fwHiRKoieDhKoU8pJQEO0WgdBcyHjggpIvBiptHAict1AZMmXXFGI hnoqvltWZJ4cwjVEsqdPuQ==; Received: from ch-vpn.virtuozzo.com ([130.117.225.6] helo=LekKit-T14) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xOCF8-00Cgfw-0J; Tue, 03 Nov 2026 12:03:47 +0100 From: Eva Kurchatova To: khorenko@virtuozzo.com Date: Tue, 3 Nov 2026 13:03:39 +0200 Message-ID: <20261103110354.2525675-1-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.56.0 MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1] selftests/zram: use the device ids that hot_add returns X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org zram_load() numbers the devices it creates by counting the nodes in /dev and discards the ids hot_add returns. hot_add takes the lowest free id, so once the ids have a gap the test works on a device it did not create: with zram0 and zram2 present it creates zram1, then configures, formats and mounts zram2, and finally resets and removes zram2 and leaves zram1 behind. Keep the ids hot_add returns and use them in every step and in the cleanup. A hot_add that fails now fails the test. Fixes: 01dabed20573 ("selftests/zram: Adapt the situation that /dev/zram0 is being used") https://virtuozzo.atlassian.net/browse/VSTOR-152656 Feature: fix selftests Signed-off-by: Eva Kurchatova --- tools/testing/selftests/zram/zram01.sh | 2 +- tools/testing/selftests/zram/zram_lib.sh | 85 +++++++++++++----------- 2 files changed, 49 insertions(+), 38 deletions(-) diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index 8f337e6adf8b..582f7987437b 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -37,7 +37,7 @@ zram_fill_fs() # An earlier step failed, and after a failed mount the directory # would be filled on the host's filesystem [ $ERR_CODE -ne 0 ] && return - for i in $(seq $dev_start $dev_end); do + for i in $dev_ids; do echo "fill zram$i..." local b=0 while [ true ]; do diff --git a/tools/testing/selftests/zram/zram_lib.sh b/tools/testing/selftests/zram/zram_lib.sh index f32c86c876d3..59b7f91a0c9e 100755 --- a/tools/testing/selftests/zram/zram_lib.sh +++ b/tools/testing/selftests/zram/zram_lib.sh @@ -5,10 +5,9 @@ # Author: Alexey Kodanev # Modified: Naresh Kamboju -dev_makeswap=-1 -dev_mounted=-1 -dev_start=0 -dev_end=-1 +dev_ids= +dev_makeswap= +dev_mounted= module_load=-1 sys_control=-1 # Kselftest framework requirement - SKIP code is 4. @@ -55,21 +54,21 @@ zram_cleanup() { echo "zram cleanup" local i= - for i in $(seq $dev_start $dev_makeswap); do + for i in $dev_makeswap; do swapoff /dev/zram$i done - for i in $(seq $dev_start $dev_mounted); do + for i in $dev_mounted; do umount /dev/zram$i done - for i in $(seq $dev_start $dev_end); do + for i in $dev_ids; do echo 1 > /sys/block/zram${i}/reset rm -rf zram$i done if [ $sys_control -eq 1 ]; then - for i in $(seq $dev_start $dev_end); do + for i in $dev_ids; do echo $i > /sys/class/zram-control/hot_remove done fi @@ -87,16 +86,19 @@ zram_load() if [ -d "/sys/class/zram-control" ]; then echo "zram modules already loaded, kernel supports" \ "zram-control interface" - dev_start=$(ls /dev/zram* | wc -w) - dev_end=$(($dev_start + $dev_num - 1)) sys_control=1 - for i in $(seq $dev_start $dev_end); do - cat /sys/class/zram-control/hot_add > /dev/null + local id + for i in $(seq $dev_num); do + id=$(cat /sys/class/zram-control/hot_add) || { + echo "FAIL can't add a zram device" + zram_cleanup + exit 1 + } + dev_ids="$dev_ids $id" done - echo "all zram devices (/dev/zram$dev_start~$dev_end" \ - "successfully created" + echo "zram devices created:$dev_ids" return 0 fi @@ -119,8 +121,8 @@ zram_load() fi module_load=1 - dev_end=$(($dev_num - 1)) - echo "all zram devices (/dev/zram0~$dev_end) successfully created" + dev_ids=$(seq 0 $(($dev_num - 1))) + echo "all zram devices (/dev/zram0~$(($dev_num - 1))) successfully created" } zram_max_streams() @@ -134,8 +136,11 @@ zram_max_streams() return 0 fi - local i=$dev_start + local i + set -- $dev_ids for max_s in $zram_max_streams; do + i=$1 + shift local sys_path="/sys/block/zram${i}/max_comp_streams" echo $max_s > $sys_path || \ { echo "FAIL failed to set '$max_s' to $sys_path"; ERR_CODE=-1; } @@ -147,7 +152,6 @@ zram_max_streams() ERR_CODE=-1 fi - i=$(($i + 1)) echo "$sys_path = '$max_streams'" done @@ -158,16 +162,19 @@ zram_compress_alg() { echo "test that we can set compression algorithm" - local i=$dev_start - local algs=$(cat /sys/block/zram${i}/comp_algorithm) + local i + set -- $dev_ids + local algs=$(cat /sys/block/zram$1/comp_algorithm) echo "supported algs: $algs" if [ -z "$algs" ]; then - echo "FAIL can't read /sys/block/zram${i}/comp_algorithm" + echo "FAIL can't read /sys/block/zram$1/comp_algorithm" ERR_CODE=-1 return fi for alg in $zram_algs; do + i=$1 + shift local sys_path="/sys/block/zram${i}/comp_algorithm" # A kernel built without the algorithm is not a zram failure case " $(echo "$algs" | tr -d '[]') " in @@ -175,13 +182,11 @@ zram_compress_alg() *) echo "SKIP '$alg' is not supported by this kernel" SKIP_CODE=$ksft_skip - i=$(($i + 1)) continue ;; esac echo "$alg" > $sys_path || \ { echo "FAIL can't set '$alg' to $sys_path"; ERR_CODE=-1; } - i=$(($i + 1)) echo "$sys_path = '$alg'" done @@ -191,13 +196,15 @@ zram_compress_alg() zram_set_disksizes() { echo "set disk size to zram device(s)" - local i=$dev_start + local i + set -- $dev_ids for ds in $zram_sizes; do + i=$1 + shift local sys_path="/sys/block/zram${i}/disksize" echo "$ds" > $sys_path || \ { echo "FAIL can't set '$ds' to $sys_path"; ERR_CODE=-1; } - i=$(($i + 1)) echo "$sys_path = '$ds'" done @@ -208,13 +215,15 @@ zram_set_memlimit() { echo "set memory limit to zram device(s)" - local i=$dev_start + local i + set -- $dev_ids for ds in $zram_mem_limits; do + i=$1 + shift local sys_path="/sys/block/zram${i}/mem_limit" echo "$ds" > $sys_path || \ { echo "FAIL can't set '$ds' to $sys_path"; ERR_CODE=-1; } - i=$(($i + 1)) echo "$sys_path = '$ds'" done @@ -224,8 +233,8 @@ zram_set_memlimit() zram_makeswap() { echo "make swap with zram device(s)" - local i=$dev_start - for i in $(seq $dev_start $dev_end); do + local i= + for i in $dev_ids; do mkswap /dev/zram$i > err.log 2>&1 if [ $? -ne 0 ]; then cat err.log @@ -241,7 +250,7 @@ zram_makeswap() fi echo "done with /dev/zram$i" - dev_makeswap=$i + dev_makeswap="$dev_makeswap $i" done echo "zram making zram mkswap and swapon: OK" @@ -250,7 +259,7 @@ zram_makeswap() zram_swapoff() { local i= - for i in $(seq $dev_start $dev_end); do + for i in $dev_ids; do swapoff /dev/zram$i > err.log 2>&1 if [ $? -ne 0 ]; then cat err.log @@ -258,15 +267,18 @@ zram_swapoff() ERR_CODE=-1 fi done - dev_makeswap=-1 + dev_makeswap= echo "zram swapoff: OK" } zram_makefs() { - local i=$dev_start + local i + set -- $dev_ids for fs in $zram_filesystems; do + i=$1 + shift # if requested fs not supported default it to ext2 which mkfs.$fs > /dev/null 2>&1 || fs=ext2 @@ -277,20 +289,19 @@ zram_makefs() echo "FAIL failed to make $fs on /dev/zram$i" ERR_CODE=-1 fi - i=$(($i + 1)) echo "zram mkfs.$fs: OK" done } zram_mount() { - local i=0 - for i in $(seq $dev_start $dev_end); do + local i= + for i in $dev_ids; do echo "mount /dev/zram$i" mkdir zram$i mount /dev/zram$i zram$i > /dev/null || \ { echo "FAIL mount /dev/zram$i failed"; ERR_CODE=-1; } - dev_mounted=$i + dev_mounted="$dev_mounted $i" done echo "zram mount of zram device(s): OK" -- 2.56.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel