From patchwork Wed Dec 15 09:56:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang Xu (Fujitsu)" X-Patchwork-Id: 12677855 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC1E3C433FE for ; Wed, 15 Dec 2021 09:56:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241365AbhLOJ4l (ORCPT ); Wed, 15 Dec 2021 04:56:41 -0500 Received: from mail1.bemta36.messagelabs.com ([85.158.142.1]:49456 "EHLO mail1.bemta36.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231747AbhLOJ4k (ORCPT ); Wed, 15 Dec 2021 04:56:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1639562199; i=@fujitsu.com; bh=i/JRwlurL2KCK9xVmA3ssswUEl7pjQd43PSCeXdxb2U=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=Infpt8Q1R/5Qyp+tf92EQnuMmlIWfvfdbzc/gVlJ72qHfWjLrBWubhopEuBVtld6s AWEycWDRTj3QyKRdLUGplgWABVISm/p1YyhlBcuF1Cw7pb6PLxE8qhEx3g4GQOARAr kIwkLKjMIHNePPMf4L/LSeqRIIgYnAlHCWxcErBMgUC2S9c7M7dWyndhVLtqmJmwAs KZwVEH3t5jM2CLkJKUaZ9YnOGXZKyDGN2iYLJcbwJ6AjZ+cIpEmk1ZdN1MUAgMzgjw qzCT5gNrBK99YUOmqRfA9rmJitU4KLFqfZ3skjKFsnXmAPYOd4W6LdlHkP1O03bnU5 VoFRSKo3t2MpA== Received: from [100.115.68.153] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-1.bemta.az-a.eu-central-1.aws.ess.symcld.net id 34/79-31213-6DBB9B16; Wed, 15 Dec 2021 09:56:38 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKIsWRWlGSWpSXmKPExsViZ8MxSffa7p2 JBje/S1vs2z+f0eLyrjlsFtPvvGezuPWJ32LKy3XsDqweR16sZvfYtKqTzePOtT1sHp83yQWw RLFm5iXlVySwZhz9d4KtYKJYxbnD3UwNjP+Euhg5OYQEtjBKrNgg38XIBWQvYJL4dng5M4Szh 1Hi3edmZpAqNgFNiWedC8BsEQFLiV2P97KCFDELtDBKNJw+wtTFyMEhLOAv0XjfG8RkEVCV2P ZTGaScV8BD4tObGewgtoSAgsSUh++ZIeKCEidnPmEBsZkFJCQOvnjBDFGjKHGp4xsjhF0hMWt WGxOErSZx9dwm5gmM/LOQtM9C0r6AkWkVo21SUWZ6RkluYmaOrqGBga6hoamumaWusbFeYpVu ol5qqW5yal5JUSJQVi+xvFgvtbhYr7gyNzknRS8vtWQTIzC0U4pdFXcwXuv7qXeIUZKDSUmUN 2/TzkQhvqT8lMqMxOKM+KLSnNTiQ4wyHBxKErwcO4FygkWp6akVaZk5wDiDSUtw8CiJ8J4HSf MWFyTmFmemQ6ROMSpKifOmA6NTSAAkkVGaB9cGi+1LjLJSwryMDAwMQjwFqUW5mSWo8q8YxTk YlYR5XUCm8GTmlcBNfwW0mAlo8bHc7SCLSxIRUlINTFVPvtW9/VF+50CvtNVJGet5qR7trY2H 1eJ+tMY1dk+cv7s51OBJ6NNDi9K+VnPslnly+Mrc846/axRLvBLai1iMDk25F2ZzWcH8cgnjS qkJL7dLrOeYfV3yQJ+JQseZR3o349WnxqWcPrW95q1g/7feGGVzToa3/3I9V6Tqr/0Z8r8xNj z6rr3d6tVhnOfjrUTs1JPzdqi/lHGbudMoy2bD8ZJVz+ea2d7O3HbofYbL/gN7RJk7PoSFpTX dWX9KJiZ+n2DguVB+J62zC98l89mv8/8acOTGbMOfFz3V2R/ueFW35c2HXXn1OQxRIU+u7tSw doqekPbLQ7Rwx+JWN997YZOeBtg8nlUV+Za7T4mlOCPRUIu5qDgRAJK7G/JoAwAA X-Env-Sender: xuyang2018.jy@fujitsu.com X-Msg-Ref: server-9.tower-532.messagelabs.com!1639562198!18669!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.81.7; banners=-,-,- X-VirusChecked: Checked Received: (qmail 9165 invoked from network); 15 Dec 2021 09:56:38 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-9.tower-532.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 15 Dec 2021 09:56:38 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id E6994100352; Wed, 15 Dec 2021 09:56:37 +0000 (GMT) Received: from R01UKEXCASM126.r01.fujitsu.local (unknown [10.183.43.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id D98F51000E9; Wed, 15 Dec 2021 09:56:37 +0000 (GMT) Received: from localhost.localdomain (10.167.220.84) by R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Wed, 15 Dec 2021 09:56:15 +0000 From: Yang Xu To: , CC: , , , Yang Xu Subject: [PATCH 1/3] selftests/zram: Remove obsolete max_comp_streams interface Date: Wed, 15 Dec 2021 17:56:09 +0800 Message-ID: <1639562171-4434-1-git-send-email-xuyang2018.jy@fujitsu.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 X-Originating-IP: [10.167.220.84] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org Since kernel commit 43209ea2d17a ("zram: remove max_comp_streams internals"), zram has switched to per-cpu streams. Even kernel still keep this interface for some reasons, but writing to max_comp_stream doesn't take any effect. So remove it. Signed-off-by: Yang Xu --- tools/testing/selftests/zram/zram01.sh | 4 ---- tools/testing/selftests/zram/zram02.sh | 4 ---- tools/testing/selftests/zram/zram_lib.sh | 22 ---------------------- 3 files changed, 30 deletions(-) diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index 114863d9fb87..28583e4ae546 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -15,9 +15,6 @@ ERR_CODE=0 # Test will create the following number of zram devices: dev_num=1 -# This is a list of parameters for zram devices. -# Number of items must be equal to 'dev_num' parameter. -zram_max_streams="2" # The zram sysfs node 'disksize' value can be either in bytes, # or you can use mem suffixes. But in some old kernels, mem @@ -72,7 +69,6 @@ zram_fill_fs() check_prereqs zram_load -zram_max_streams zram_compress_alg zram_set_disksizes zram_set_memlimit diff --git a/tools/testing/selftests/zram/zram02.sh b/tools/testing/selftests/zram/zram02.sh index e83b404807c0..d664974a1317 100755 --- a/tools/testing/selftests/zram/zram02.sh +++ b/tools/testing/selftests/zram/zram02.sh @@ -14,9 +14,6 @@ ERR_CODE=0 # Test will create the following number of zram devices: dev_num=1 -# This is a list of parameters for zram devices. -# Number of items must be equal to 'dev_num' parameter. -zram_max_streams="2" # The zram sysfs node 'disksize' value can be either in bytes, # or you can use mem suffixes. But in some old kernels, mem @@ -30,7 +27,6 @@ zram_mem_limits="1M" check_prereqs zram_load -zram_max_streams zram_set_disksizes zram_set_memlimit zram_makeswap diff --git a/tools/testing/selftests/zram/zram_lib.sh b/tools/testing/selftests/zram/zram_lib.sh index 6f872f266fd1..0c49f9d1d563 100755 --- a/tools/testing/selftests/zram/zram_lib.sh +++ b/tools/testing/selftests/zram/zram_lib.sh @@ -82,28 +82,6 @@ zram_load() fi } -zram_max_streams() -{ - echo "set max_comp_streams to zram device(s)" - - local i=0 - for max_s in $zram_max_streams; do - 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" - sleep 1 - local max_streams=$(cat $sys_path) - - [ "$max_s" -ne "$max_streams" ] && \ - echo "FAIL can't set max_streams '$max_s', get $max_stream" - - i=$(($i + 1)) - echo "$sys_path = '$max_streams' ($i/$dev_num)" - done - - echo "zram max streams: OK" -} - zram_compress_alg() { echo "test that we can set compression algorithm" From patchwork Wed Dec 15 09:56:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang Xu (Fujitsu)" X-Patchwork-Id: 12677853 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AEA8C433EF for ; Wed, 15 Dec 2021 09:56:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241376AbhLOJ4k (ORCPT ); Wed, 15 Dec 2021 04:56:40 -0500 Received: from mail1.bemta32.messagelabs.com ([195.245.230.2]:7123 "EHLO mail1.bemta32.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233646AbhLOJ4k (ORCPT ); Wed, 15 Dec 2021 04:56:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1639562199; i=@fujitsu.com; bh=JsCLyLwQRCdIyX/uM1y20jxOZEFlv4Lm1Kc9IvtSS+I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=E1uU6WIV1b8N5DsnGjNgbXKlFXQTlsXAnypTj0eTeusBXTx63pwBtZ9dYNlaUPs1l bKWN1UeTy4KuCQMJdC6u8IDflnI1w/xdCSKsIEO450aH1TL1waeZRjtnWmTYLCExjX difb762TmzbRP9SEKOHgdDRkcKRZjSWSt5RxKV5EXZ/H3KeS5ISEo1YIaUSswAeNeV 05yf4SwGnHcOgob7Qya2BbGYR7OdvWb6/8CqUEbzxJTa9/Tyk6GsmLWKl+wZKElhFn xdWhMfvUE8wxRd3pmN8noucNUpM+tGuS+huSTJg5e4ax/HuCXswzStkxco30dlwDcL dskavUSCkFUrg== Received: from [100.115.3.179] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-2.bemta.az-a.eu-west-1.aws.ess.symcld.net id A5/43-10124-6DBB9B16; Wed, 15 Dec 2021 09:56:38 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsViZ8MxSffa7p2 JBtMey1ns2z+f0eLyrjlsFtPvvGezuPWJ32LKy3XsDqweR16sZvfYtKqTzePOtT1sHp83yQWw RLFm5iXlVySwZsw++pGt4KNAxdfXOxkbGP/zdjFycQgJbGGUOLV8AxOEs4BJov/ydBYIZw+jx KHug8xdjJwcbAKaEs86F4DZIgKWErse72UFKWIWaGGUaDh9hAkkISzgLbGwZwYriM0ioCqx4c JMdhCbV8BD4sjNrWA1EgIKElMevgcbxCngKfHp+AkWEFsIqObW/knMEPWCEidnPgGLMwtISBx 88YIZoldR4lLHN0YIu0Ji1qw2qJlqElfPbWKewCg4C0n7LCTtCxiZVjFaJhVlpmeU5CZm5uga GhjoGhqa6proWhrrJVbpJuqlluqWpxaX6BrqJZYX66UWF+sVV+Ym56To5aWWbGIERkJKMUvsD satfT/1DjFKcjApifLmbdqZKMSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCl2MnUE6wKDU9tSItMw cYlTBpCQ4eJRHe8yBp3uKCxNzizHSI1ClGRSlx3oO7gBICIImM0jy4NlgiuMQoKyXMy8jAwCD EU5BalJtZgir/ilGcg1FJmHcSyBSezLwSuOmvgBYzAS0+lrsdZHFJIkJKqoHJYoLjUQlG/pyO ox8dr9uLPTmQevuS6+1DD2ZNbvQzn3vE60t6jmVdqXC4+5wHf0K+hfbb5z/LuK29+eJl07MT9 D3jd1yIzrrN4bbp9qbVcVaad5YkXc/yjs3IeGJ3UzBBNF59bX1Dg8GGpDx+BffK2nde+8TiX6 V9SjbNcxLSdFi67eFxweVzQiZqbC1/JKR9zVy0zkaGrdZ2qrRdQ5b2memTDT4nPrq9eutRkfV FG/xXng6+/YW3fam+/97CjRu1bY6XzpaZX1PZduekNZNZb+qWk/Fqpl/fnlsRkbdsc7lEdMWO jZfFzNfu+/HltZti65ddv6Sj3z5przny8uxBObk5OtYxs2+c2+YcxxalxFKckWioxVxUnAgAG X3moH8DAAA= X-Env-Sender: xuyang2018.jy@fujitsu.com X-Msg-Ref: server-6.tower-591.messagelabs.com!1639562198!4704!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.81.7; banners=-,-,- X-VirusChecked: Checked Received: (qmail 21238 invoked from network); 15 Dec 2021 09:56:38 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-6.tower-591.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 15 Dec 2021 09:56:38 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id EE253100445; Wed, 15 Dec 2021 09:56:37 +0000 (GMT) Received: from R01UKEXCASM126.r01.fujitsu.local (unknown [10.183.43.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id E190510032A; Wed, 15 Dec 2021 09:56:37 +0000 (GMT) Received: from localhost.localdomain (10.167.220.84) by R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Wed, 15 Dec 2021 09:56:24 +0000 From: Yang Xu To: , CC: , , , Yang Xu Subject: [PATCH 2/3] selftests/zram01.sh: Fix compression ratio calculation Date: Wed, 15 Dec 2021 17:56:10 +0800 Message-ID: <1639562171-4434-2-git-send-email-xuyang2018.jy@fujitsu.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1639562171-4434-1-git-send-email-xuyang2018.jy@fujitsu.com> References: <1639562171-4434-1-git-send-email-xuyang2018.jy@fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.220.84] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org zram01 uses `free -m` to measure zram memory usage. The results are nonsense because they are polluted by all running processes on the system. Use the third field of /sys/block/zram/mm_stat to measure memory usage instead. The file is available since kernel 4.1. orig_data_size(first): uncompressed size of data stored in this disk. compr_data_size(second): compressed size of data stored in this disk mem_used_total(third): the amount of memory allocated for this disk Also remove useless zram cleanup call in zram_fill_fs and so we don't need to cleanup zram twice if fails. Signed-off-by: Yang Xu --- tools/testing/selftests/zram/zram01.sh | 30 +++++++------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index 28583e4ae546..e083a4c628a8 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -30,8 +30,6 @@ zram_algs="lzo" zram_fill_fs() { - local mem_free0=$(free -m | awk 'NR==2 {print $4}') - for i in $(seq 0 $(($dev_num - 1))); do echo "fill zram$i..." local b=0 @@ -42,29 +40,17 @@ zram_fill_fs() b=$(($b + 1)) done echo "zram$i can be filled with '$b' KB" - done - local mem_free1=$(free -m | awk 'NR==2 {print $4}') - local used_mem=$(($mem_free0 - $mem_free1)) + local mem_used_total=`awk '{print $3}' "/sys/block/zram$i/mm_stat"` + local v=$((100 * 1024 * $b / $mem_used_total)) + if [ "$v" -lt 100 ]; then + echo "FAIL compression ratio: 0.$v:1" + ERR_CODE=-1 + return + fi - local total_size=0 - for sm in $zram_sizes; do - local s=$(echo $sm | sed 's/M//') - total_size=$(($total_size + $s)) + echo "zram compression ratio: $(echo "scale=2; $v / 100 " | bc):1: OK" done - - echo "zram used ${used_mem}M, zram disk sizes ${total_size}M" - - local v=$((100 * $total_size / $used_mem)) - - if [ "$v" -lt 100 ]; then - echo "FAIL compression ratio: 0.$v:1" - ERR_CODE=-1 - zram_cleanup - return - fi - - echo "zram compression ratio: $(echo "scale=2; $v / 100 " | bc):1: OK" } check_prereqs From patchwork Wed Dec 15 09:56:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang Xu (Fujitsu)" X-Patchwork-Id: 12677857 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DA9EC4332F for ; Wed, 15 Dec 2021 09:56:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241390AbhLOJ4m (ORCPT ); Wed, 15 Dec 2021 04:56:42 -0500 Received: from mail1.bemta34.messagelabs.com ([195.245.231.3]:24777 "EHLO mail1.bemta34.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241360AbhLOJ4k (ORCPT ); Wed, 15 Dec 2021 04:56:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1639562198; i=@fujitsu.com; bh=a7mWnsi59uOsydxJgMhSpYKKIoLz8lN91u6jjtmczFI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=At0ni+J0ZK87Pnb5UTqY/NjiCkMVI/9j/Uwjib9rylBOWsLcSU8GLixvwFffcNJdt v+bQBF3F0WbbOtaG0Qo5paEttn07buKFerZolR+nlvXH+on0Fli1s6qUwQOVwqWbCa NQ+k3SLshFIR7Dg+RD0DAr2VOPwGCQXebXZ1M/QReX4pL7yszA8SicbMNGE8NooTwE nPrSpEfYMdYsWk2RfPOz00jXD9izOBwoGtFQ33m3KniruGHZERmlpUYi1jlG9ofxYg Dh7V6Om3NHVl3evIKtteGGULkwaEv9nrtQoqMKFrOX2tYwyl5keaYSsa7IqznICVyW cpo4QKsYxmHIg== Received: from [100.115.34.181] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-a.eu-west-2.aws.ess.symcld.net id DA/0A-09428-6DBB9B16; Wed, 15 Dec 2021 09:56:38 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsViZ8MxSffa7p2 JBjMWSlvs2z+f0eLyrjlsFtPvvGezuPWJ32LKy3XsDqweR16sZvfYtKqTzePOtT1sHp83yQWw RLFm5iXlVySwZrzbHlzw0aji266HbA2M5zS7GLk4hAS2MEosX72PBcJZwCTR8u8qlLOHUeLXj RvsXYycHGwCmhLPOhcwg9giApYSux7vZQUpYhZoYZRoOH2ECSQhLBAm8Wz+HhYQm0VAVeLtlG tgDbwCHhINJ8+zgdgSAgoSUx6+B4tzCnhKfDp+AqxeCKjm1v5JUPWCEidnPgGLMwtISBx88YI ZoldR4lLHN0YIu0Ji1qw2JghbTeLquU3MExgFZyFpn4WkfQEj0ypG66SizPSMktzEzBxdQwMD XUNDU11jU11DE0u9xCrdRL3UUt3y1OISXSO9xPJivdTiYr3iytzknBS9vNSSTYzAWEgpVp66g /H0qp96hxglOZiURHnzNu1MFOJLyk+pzEgszogvKs1JLT7EKMPBoSTBy7ETKCdYlJqeWpGWmQ OMS5i0BAePkgjveZA0b3FBYm5xZjpE6hSjLsfO04sXMQux5OXnpUqJ8x7cBVQkAFKUUZoHNwK WIi4xykoJ8zIyMDAI8RSkFuVmlqDKv2IU52BUEuadBDKFJzOvBG7TK6AjmICOOJa7HeSIkkSE lFQD01m7b+9n7+7pdsyQ/p8zYS+bo3nr5CPL5USquOfcm7ZmVdrsjR5aH6OPiIbU3zrySrjmh sGiBzuWfF6Ytvb7dv04H3bpa8EOx2ZN5MvsvSf3Lajs1klXb9b/Z1atkFUqr13EujlOrGJvaP a7795/WKWd6piFH6p0RNx/uniB5T7nqIWyTg8SdSdt6/+xNvvoCw0pHZ/9Ug1+c87MfLSlfNc cvimrl7L8zXixNsVZSuDjVsZ0L5Hihfmfm0NSdRuWx9/L03kt7NGxWT0os0O6tO/Ko5zDuk85 5V6tP3gya4LwCb+/y7vSC0SfPpveu+Ena4U0+4utkUv27/2z6MBO9e9beXfMPTWP02f1Jum1q /WVWIozEg21mIuKEwHEq3SUjAMAAA== X-Env-Sender: xuyang2018.jy@fujitsu.com X-Msg-Ref: server-24.tower-565.messagelabs.com!1639562198!110815!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.81.7; banners=-,-,- X-VirusChecked: Checked Received: (qmail 29661 invoked from network); 15 Dec 2021 09:56:38 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-24.tower-565.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 15 Dec 2021 09:56:38 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id 08CAC10044F; Wed, 15 Dec 2021 09:56:38 +0000 (GMT) Received: from R01UKEXCASM126.r01.fujitsu.local (unknown [10.183.43.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id ED936100440; Wed, 15 Dec 2021 09:56:37 +0000 (GMT) Received: from localhost.localdomain (10.167.220.84) by R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Wed, 15 Dec 2021 09:56:33 +0000 From: Yang Xu To: , CC: , , , Yang Xu Subject: [PATCH 3/3] selftests/zram: Adapt the situation that /dev/zram0 is being used Date: Wed, 15 Dec 2021 17:56:11 +0800 Message-ID: <1639562171-4434-3-git-send-email-xuyang2018.jy@fujitsu.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1639562171-4434-1-git-send-email-xuyang2018.jy@fujitsu.com> References: <1639562171-4434-1-git-send-email-xuyang2018.jy@fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.220.84] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org On some linux distributions, if it used /dev/zram0 as default by zram-generate service, then this case will fail or report EBUSY. To fix this, use hot_add/hot_remove interface. Also, move module check code into zram_load from zram.sh. We can use /sys/class/zram-control to detect the module whether existed. After this patch, we still run case pass even /dev/zram0 is being used. Signed-off-by: Yang Xu --- tools/testing/selftests/zram/zram.sh | 16 +---- tools/testing/selftests/zram/zram01.sh | 2 +- tools/testing/selftests/zram/zram_lib.sh | 75 ++++++++++++------------ 3 files changed, 41 insertions(+), 52 deletions(-) diff --git a/tools/testing/selftests/zram/zram.sh b/tools/testing/selftests/zram/zram.sh index 232e958ec454..d002171fe86f 100755 --- a/tools/testing/selftests/zram/zram.sh +++ b/tools/testing/selftests/zram/zram.sh @@ -2,9 +2,6 @@ # SPDX-License-Identifier: GPL-2.0 TCID="zram.sh" -# Kselftest framework requirement - SKIP code is 4. -ksft_skip=4 - . ./zram_lib.sh run_zram () { @@ -17,15 +14,4 @@ echo "" } check_prereqs - -# check zram module exists -MODULE_PATH=/lib/modules/`uname -r`/kernel/drivers/block/zram/zram.ko -if [ -f $MODULE_PATH ]; then - run_zram -elif [ -b /dev/zram0 ]; then - run_zram -else - echo "$TCID : No zram.ko module or /dev/zram0 device file not found" - echo "$TCID : CONFIG_ZRAM is not set" - exit $ksft_skip -fi +run_zram diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index e083a4c628a8..f87cc1ebf20f 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -30,7 +30,7 @@ zram_algs="lzo" zram_fill_fs() { - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); 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 0c49f9d1d563..ee57990c322d 100755 --- a/tools/testing/selftests/zram/zram_lib.sh +++ b/tools/testing/selftests/zram/zram_lib.sh @@ -8,6 +8,8 @@ MODULE=0 dev_makeswap=-1 dev_mounted=-1 +dev_start=-1 +dev_end=-1 # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 @@ -29,19 +31,22 @@ zram_cleanup() { echo "zram cleanup" local i= - for i in $(seq 0 $dev_makeswap); do + for i in $(seq $dev_start $dev_makeswap); do swapoff /dev/zram$i done - for i in $(seq 0 $dev_mounted); do + for i in $(seq $dev_start $dev_mounted); do umount /dev/zram$i done - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); do echo 1 > /sys/block/zram${i}/reset - rm -rf zram$i + rm -rf zram${i} done + for i in $(seq $dev_start $dev_end); do + echo $i > /sys/class/zram-control/hot_remove + done } zram_unload() @@ -54,32 +59,30 @@ zram_unload() zram_load() { - # check zram module exists - MODULE_PATH=/lib/modules/`uname -r`/kernel/drivers/block/zram/zram.ko - if [ -f $MODULE_PATH ]; then - MODULE=1 - echo "create '$dev_num' zram device(s)" + echo "create '$dev_num' zram device(s)" + + if [ ! -d "/sys/class/zram-control" ]; then modprobe zram num_devices=$dev_num - if [ $? -ne 0 ]; then - echo "failed to insert zram module" - exit 1 + if grep -q '^zram' /proc/modules; then + echo "ERROR: No zram.ko module" + echo "$TCID : CONFIG_ZRAM is not set" + exit $ksft_skip fi + MODULE=1 + dev_start=0 + dev_end=$(($dev_num - 1)) + echo "all zram devices(/dev/zram0~$dev_end) successfully created" + return + fi - dev_num_created=$(ls /dev/zram* | wc -w) + dev_start=$(ls /dev/zram* | wc -w) + dev_end=$(($dev_start + $dev_num - 1)) - if [ "$dev_num_created" -ne "$dev_num" ]; then - echo "unexpected num of devices: $dev_num_created" - ERR_CODE=-1 - else - echo "zram load module successful" - fi - elif [ -b /dev/zram0 ]; then - echo "/dev/zram0 device file found: OK" - else - echo "ERROR: No zram.ko module or no /dev/zram0 device found" - echo "$TCID : CONFIG_ZRAM is not set" - exit 1 - fi + for i in $(seq $dev_start $dev_end); do + cat /sys/class/zram-control/hot_add > /dev/null + done + + echo "all zram devices(/dev/zram$dev_start~$dev_end) successfully created" } zram_compress_alg() @@ -88,13 +91,13 @@ zram_compress_alg() local algs=$(cat /sys/block/zram0/comp_algorithm) echo "supported algs: $algs" - local i=0 + local i=$dev_start for alg in $zram_algs; do local sys_path="/sys/block/zram${i}/comp_algorithm" echo "$alg" > $sys_path || \ echo "FAIL can't set '$alg' to $sys_path" i=$(($i + 1)) - echo "$sys_path = '$alg' ($i/$dev_num)" + echo "$sys_path = '$alg'" done echo "zram set compression algorithm: OK" @@ -103,14 +106,14 @@ zram_compress_alg() zram_set_disksizes() { echo "set disk size to zram device(s)" - local i=0 + local i=$dev_start for ds in $zram_sizes; do local sys_path="/sys/block/zram${i}/disksize" echo "$ds" > $sys_path || \ echo "FAIL can't set '$ds' to $sys_path" i=$(($i + 1)) - echo "$sys_path = '$ds' ($i/$dev_num)" + echo "$sys_path = '$ds'" done echo "zram set disksizes: OK" @@ -120,14 +123,14 @@ zram_set_memlimit() { echo "set memory limit to zram device(s)" - local i=0 + local i=$dev_start for ds in $zram_mem_limits; do local sys_path="/sys/block/zram${i}/mem_limit" echo "$ds" > $sys_path || \ echo "FAIL can't set '$ds' to $sys_path" i=$(($i + 1)) - echo "$sys_path = '$ds' ($i/$dev_num)" + echo "$sys_path = '$ds'" done echo "zram set memory limit: OK" @@ -137,7 +140,7 @@ zram_makeswap() { echo "make swap with zram device(s)" local i=0 - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); do mkswap /dev/zram$i > err.log 2>&1 if [ $? -ne 0 ]; then cat err.log @@ -160,7 +163,7 @@ zram_makeswap() zram_swapoff() { local i= - for i in $(seq 0 $dev_makeswap); do + for i in $(seq $dev_start $dev_makeswap); do swapoff /dev/zram$i > err.log 2>&1 if [ $? -ne 0 ]; then cat err.log @@ -174,7 +177,7 @@ zram_swapoff() zram_makefs() { - local i=0 + local i=$dev_start for fs in $zram_filesystems; do # if requested fs not supported default it to ext2 which mkfs.$fs > /dev/null 2>&1 || fs=ext2 @@ -193,7 +196,7 @@ zram_makefs() zram_mount() { local i=0 - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); do echo "mount /dev/zram$i" mkdir zram$i mount /dev/zram$i zram$i > /dev/null || \