From patchwork Fri Apr 21 06:05:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Wagner X-Patchwork-Id: 86144 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp851344vqo; Thu, 20 Apr 2023 23:14:58 -0700 (PDT) X-Google-Smtp-Source: AKy350b6PdOfs/5sw4X7NW4jAZu4S1t9cUjZREvz1t31OyBJLcApQx2Xtt9VmqlI3JOnwQSElE1n X-Received: by 2002:a05:6a00:1482:b0:63b:859f:f094 with SMTP id v2-20020a056a00148200b0063b859ff094mr4997952pfu.20.1682057697775; Thu, 20 Apr 2023 23:14:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682057697; cv=none; d=google.com; s=arc-20160816; b=pcMksrdwxhteudc920rYiXfMxT1gbUbXYm7vxQPw1VA7zUj9ga/+sZLmf9T0feDHoQ V+vdt7e3Ueh0jE7aUW4NY/IFAlspIMOUbbcKbVsP6kRt8QYMOU+7egCQjkGu0nayLe/x ebBJad3votpMg5djGatdpVXS3fy04/ApT9B4VQ3iDRZiXkOcAekBCccC3M27a+a8L+CE qsop8Y8MNFA5t9pCtckRNkFqzhn8AZ2b1dkeXiQPcb2VS5PS07s5QbLEoP/n4RjkLCJ3 Kkucm0Oq2W1NwLh1JPjtARW3WtMJdAXGnI9DjseZ43A9V+OUrAIwr1ckN7TcIttS3dJI DD/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=FKotN8oLTbJBb8LbRqu8BMmJNv6WXn80Z+YRR+9XiIM=; b=xneLpYxU7JiAcgQNSUBF6XKy0vuLTccqboAohoZhxmqXzVDrHBQEloPIlUkA5/aBL6 wFomEPe8e++JB8LqYzxfkH06j6n3nFQHkEhYPkpVTG+9xRgrRY4ZaM6aew1YpNCrLiPU B4/qhj+dLbp7ibKxwFmjpuCemTkCO1VF6BvmfRY4nQEgLKtJIdEpi1WvYdFuZE3Tp0jU zeURCKn/fl0MTp37QKEdtBO84o1qU3ylAI8U/uqkxpr0BfO0nG7eAjWWMxMM/ihJp2qx Iy6PVFpaEtV45oUcuk6g0wS1up9B1ulK/WqP3cKH4WIXRbgEWBDpM20Ztlie8UUMjubx 2ijA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Whg4puwq; dkim=neutral (no key) header.i=@suse.de header.b=y6DK9h4K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t69-20020a637848000000b0050c0c9d2930si3342426pgc.48.2023.04.20.23.14.42; Thu, 20 Apr 2023 23:14:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Whg4puwq; dkim=neutral (no key) header.i=@suse.de header.b=y6DK9h4K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233804AbjDUGGN (ORCPT + 99 others); Fri, 21 Apr 2023 02:06:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233668AbjDUGF4 (ORCPT ); Fri, 21 Apr 2023 02:05:56 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1AB67D91; Thu, 20 Apr 2023 23:05:51 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 58C361FDDE; Fri, 21 Apr 2023 06:05:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1682057120; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FKotN8oLTbJBb8LbRqu8BMmJNv6WXn80Z+YRR+9XiIM=; b=Whg4puwqzRzxE4Cb3YRCh4IbjIPX7vYO42KvwlEM4CslJtgws6axwkKnGA+Pq0RjMhuKwP sNOippvJlhOt8p+TVX2b3lihmZGN7gTifTFgFyC6PCg75ALebwG9JuntRH6iLI7XF3eOx8 bVsKD6P03MaZaCyk2I6x8tw32N7y5Fo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1682057120; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FKotN8oLTbJBb8LbRqu8BMmJNv6WXn80Z+YRR+9XiIM=; b=y6DK9h4K0nzkiVn9ZGb/yTBF4J1ZSgn+J5M7rtt2i+qft/1Vq9zs4Br8+lQJeV6k+w1rlG q9HMSseqffcCg5Bg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 4B2DC1390E; Fri, 21 Apr 2023 06:05:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 5LVvEqAnQmR4ZgAAMHmgww (envelope-from ); Fri, 21 Apr 2023 06:05:20 +0000 From: Daniel Wagner To: linux-nvme@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, Chaitanya Kulkarni , Shin'ichiro Kawasaki , Daniel Wagner Subject: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs Date: Fri, 21 Apr 2023 08:05:03 +0200 Message-Id: <20230421060505.10132-8-dwagner@suse.de> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230421060505.10132-1-dwagner@suse.de> References: <20230421060505.10132-1-dwagner@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763765332064238660?= X-GMAIL-MSGID: =?utf-8?q?1763765332064238660?= Introduce two new function to calculate the IO size for fio jobs. _nvme_calc_io_size() returns the jobs size for _run_fio_verify_io() function. Reduce the max size of the job by one megabyte to make the test more robust not to run out of space by accident. Note these fio calls run with just one jobs. _nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io() function. Again, the jobs size is not maxing out the space and most important it takes the number of jobs into account which are created (number of CPUs). Signed-off-by: Daniel Wagner --- tests/nvme/010 | 5 +++-- tests/nvme/011 | 5 +++-- tests/nvme/032 | 6 ++++-- tests/nvme/034 | 4 +++- tests/nvme/040 | 4 +++- tests/nvme/045 | 4 +++- tests/nvme/047 | 6 ++++-- tests/nvme/rc | 20 ++++++++++++++++++++ 8 files changed, 43 insertions(+), 11 deletions(-) diff --git a/tests/nvme/010 b/tests/nvme/010 index 805f80d40620..d209335c2158 100755 --- a/tests/nvme/010 +++ b/tests/nvme/010 @@ -25,6 +25,7 @@ test() { local loop_dev local file_path="${TMPDIR}/img" local subsys_name="blktests-subsystem-1" + local io_size truncate -s "${nvme_img_size}" "${file_path}" @@ -41,8 +42,8 @@ test() { cat "/sys/block/${nvmedev}n1/uuid" cat "/sys/block/${nvmedev}n1/wwid" - _run_fio_verify_io --size=${nvme_img_size} \ - --filename="/dev/${nvmedev}n1" + io_size="$(_nvme_calc_io_size "${nvme_img_size}")" + _run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1" _nvme_disconnect_subsys "${subsys_name}" diff --git a/tests/nvme/011 b/tests/nvme/011 index da8cbac11124..294ba4333aff 100755 --- a/tests/nvme/011 +++ b/tests/nvme/011 @@ -25,6 +25,7 @@ test() { local file_path local file_path="${TMPDIR}/img" local subsys_name="blktests-subsystem-1" + local io_size truncate -s "${nvme_img_size}" "${file_path}" @@ -39,8 +40,8 @@ test() { cat "/sys/block/${nvmedev}n1/uuid" cat "/sys/block/${nvmedev}n1/wwid" - _run_fio_verify_io --size="${nvme_img_size}" \ - --filename="/dev/${nvmedev}n1" + io_size="$(_nvme_calc_io_size "${nvme_img_size}")" + _run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1" _nvme_disconnect_subsys "${subsys_name}" diff --git a/tests/nvme/032 b/tests/nvme/032 index 9f9756b0f959..ad701cea877d 100755 --- a/tests/nvme/032 +++ b/tests/nvme/032 @@ -33,13 +33,15 @@ test_device() { local sysfs local attr local m + local rand_io_size pdev="$(_get_pci_dev_from_blkdev)" sysfs="/sys/bus/pci/devices/${pdev}" # start fio job - _run_fio_rand_io --filename="$TEST_DEV" --size="${nvme_img_size}" \ - --group_reporting --time_based --runtime=1m &> /dev/null & + rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")" + _run_fio_rand_io --filename="$TEST_DEV" --size="${rand_io_size}" \ + --group_reporting --time_based --runtime=1m > /dev/null & sleep 5 diff --git a/tests/nvme/034 b/tests/nvme/034 index e0ede717c373..0df8bef98e5e 100755 --- a/tests/nvme/034 +++ b/tests/nvme/034 @@ -19,6 +19,7 @@ test_device() { local ctrldev local nsdev local port + local io_size echo "Running ${TEST_NAME}" @@ -26,7 +27,8 @@ test_device() { port=$(_nvmet_passthru_target_setup "${subsys}") nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}") - _run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}" + io_size="$(_nvme_calc_io_size "${nvme_img_size}")" + _run_fio_verify_io --size="${io_size}" --filename="${nsdev}" _nvme_disconnect_subsys "${subsys}" _nvmet_passthru_target_cleanup "${port}" "${subsys}" diff --git a/tests/nvme/040 b/tests/nvme/040 index 31b7cafef4be..b033a2a866f2 100755 --- a/tests/nvme/040 +++ b/tests/nvme/040 @@ -21,6 +21,7 @@ test() { local port local loop_dev local nvmedev + local rand_io_size echo "Running ${TEST_NAME}" @@ -37,7 +38,8 @@ test() { # start fio job echo "starting background fio" - _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${nvme_img_size}" \ + rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")" + _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}" \ --group_reporting --ramp_time=5 \ --time_based --runtime=1m &> /dev/null & sleep 5 diff --git a/tests/nvme/045 b/tests/nvme/045 index 99012f6bed8f..f50087cccb6a 100755 --- a/tests/nvme/045 +++ b/tests/nvme/045 @@ -31,6 +31,7 @@ test() { local ctrlkey local new_ctrlkey local ctrldev + local rand_io_size echo "Running ${TEST_NAME}" @@ -120,7 +121,8 @@ test() { nvmedev=$(_find_nvme_dev "${subsys_name}") - _run_fio_rand_io --size=4m --filename="/dev/${nvmedev}n1" + rand_io_size="$(_nvme_calc_rand_io_size 4m)" + _run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${nvmedev}n1" _nvme_disconnect_subsys "${subsys_name}" diff --git a/tests/nvme/047 b/tests/nvme/047 index b5a8d469a983..6a7599bc2e91 100755 --- a/tests/nvme/047 +++ b/tests/nvme/047 @@ -25,6 +25,7 @@ test() { local port local nvmedev local loop_dev + local rand_io_size local file_path="$TMPDIR/img" local subsys_name="blktests-subsystem-1" @@ -42,7 +43,8 @@ test() { nvmedev=$(_find_nvme_dev "${subsys_name}") - _xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL + rand_io_size="$(_nvme_calc_rand_io_size 4M)" + _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}" _nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1 @@ -50,7 +52,7 @@ test() { --nr-write-queues 1 \ --nr-poll-queues 1 || echo FAIL - _xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL + _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}" _nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1 diff --git a/tests/nvme/rc b/tests/nvme/rc index b1f2dacae125..172f510527ed 100644 --- a/tests/nvme/rc +++ b/tests/nvme/rc @@ -150,6 +150,26 @@ _test_dev_nvme_nsid() { cat "${TEST_DEV_SYSFS}/nsid" } +_nvme_calc_io_size() { + local img_size_mb + local io_size_mb + + img_size_mb="$(convert_to_mb "$1")" + io_size_mb="$((img_size_mb - 1))" + + echo "${io_size_mb}m" +} + +_nvme_calc_rand_io_size() { + local img_size_mb + local io_size_mb + + img_size_mb="$(convert_to_mb "$1")" + io_size_mb="$(printf "%d" $((((img_size_mb * 1024 * 1024) / $(nproc) - 1) / 1024)))" + + echo "${io_size_mb}k" +} + _nvme_fcloop_add_rport() { local local_wwnn="$1" local local_wwpn="$2"