From: Chaitanya Kulkarni <chaitanyak@nvidia.com>
To: Guixin Liu <kanie@linux.alibaba.com>
Cc: "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
"hch@lst.de" <hch@lst.de>, "sagi@grimberg.me" <sagi@grimberg.me>
Subject: Re: [PATCH] nvmet: make nvmet_wq visible in sysfs
Date: Thu, 31 Oct 2024 06:39:14 +0000 [thread overview]
Message-ID: <613fd580-6faa-4b1f-96e9-ce306da27fdc@nvidia.com> (raw)
In-Reply-To: <8A92B3EF-64FF-4ED0-BF4E-5BB6680B8FA8@nvidia.com>
On 10/30/24 19:45, Chaitanya Kulkarni wrote:
>> I will send the v2 with our usecase to expain why we should restrict the cpumask,
>>
>> I'm concerned whether blktests can handle such complex tests, as it relies on deploying
>>
>> many Docker containers and services. Should it only test the case of setting the cpumask
>>
>> with fio?
>>
>> Best Regards,
>>
>> Guixin Liu
>>
> For now just cpumask and fio is sufficient so that when we upstream this patch we have some sort of testing done via sysfs.
>
>
> -ck
based on my very limited understanding I've written a rough blktest
for your patch see if this helps, it's bit rough and totally
untested :-
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+
# Description: Test `nvmet_wq` cpumask sysfs attribute with NVMe-oF and
fio workload
. tests/nvme/rc
DESCRIPTION="Test nvmet_wq cpumask sysfs attribute and verify with fio
on NVMe-oF device"
requires() {
_nvme_requires
_have_fio
_require_nvme_trtype_is_fabrics
}
test() {
local cpumask_path="/sys/devices/virtual/workqueue/nvmet_wq/cpumask"
# Check if cpumask attribute exists
if [[ ! -f "$cpumask_path" ]]; then
SKIP_REASONS+=("nvmet_wq cpumask sysfs attribute not found.")
return 1
fi
# Save original cpumask value
local original_cpumask
original_cpumask=$(cat "$cpumask_path")
echo "Original cpumask: $original_cpumask"
# Set a new cpumask (e.g., CPU 0)
echo 1 | tee "$cpumask_path" > /dev/null
local new_cpumask
new_cpumask=$(cat "$cpumask_path")
if [[ "$new_cpumask" != "1" ]]; then
echo "Test Failed: cpumask was not set correctly"
return 1
else
echo "Test Passed: cpumask set to $new_cpumask"
fi
# Set up NVMe-over-Fabrics target
echo "Setting up NVMe-oF target"
_setup_nvmet
_nvmet_target_setup
_nvme_connect_subsys
# Locate the NVMe-oF namespace
local ns
ns=$(_find_nvme_ns "${def_subsys_uuid}")
# Run fio with data verification on NVMe-oF device
echo "Starting fio workload with verification on NVMe-oF device"
fio --name=nvmet_wq_test --filename="/dev/$ns" --direct=1
--rw=randwrite \
--bs=4k --size=100M --numjobs=1 --verify=crc32c --verify_fatal=1 \
--time_based --runtime=30s --iodepth=16 --ioengine=libaio
--group_reporting
# Disconnect and clean up NVMe-oF target
echo "Cleaning up NVMe-oF setup"
_nvme_disconnect_subsys
_nvmet_target_cleanup
# Restore original cpumask
echo "$original_cpumask" | tee "$cpumask_path" > /dev/null
restored_cpumask=$(cat "$cpumask_path")
if [[ "$restored_cpumask" != "$original_cpumask" ]]; then
echo "Failed to restore original cpumask."
return 1
else
echo "Original cpumask restored successfully."
fi
}
next prev parent reply other threads:[~2024-10-31 6:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-29 1:49 [PATCH] nvmet: make nvmet_wq visible in sysfs Guixin Liu
2024-10-29 5:04 ` Chaitanya Kulkarni
2024-10-29 6:46 ` Guixin Liu
2024-10-29 19:52 ` Chaitanya Kulkarni
2024-10-30 0:49 ` Chaitanya Kulkarni
2024-10-30 1:44 ` Guixin Liu
2024-10-30 5:53 ` hch
2024-10-30 6:44 ` Guixin Liu
2024-10-30 6:33 ` Chaitanya Kulkarni
2024-10-30 11:20 ` Guixin Liu
2024-10-30 18:38 ` Chaitanya Kulkarni
2024-10-31 2:01 ` Guixin Liu
2024-10-31 2:45 ` Chaitanya Kulkarni
2024-10-31 6:39 ` Chaitanya Kulkarni [this message]
2024-10-31 6:55 ` Guixin Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=613fd580-6faa-4b1f-96e9-ce306da27fdc@nvidia.com \
--to=chaitanyak@nvidia.com \
--cc=hch@lst.de \
--cc=kanie@linux.alibaba.com \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.