All of lore.kernel.org
 help / color / mirror / Atom feed
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
}

  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.