scripts/fio-wrapper: Simplify check for bdev devices

While testing fedora35 under 5.18 kernel it was noticed that the
sysfs dir structure changed comparing to older versions of the
kernel. To make sure proper devices can be found regardless of
the kernel version simplify the process by just looking up
the model of the ctrl given nvme block device is connected to.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I7ff55c8d8c50acd2a117bed2a31ddb9890615e18
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13674
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
This commit is contained in:
Michal Berger 2022-07-14 14:09:20 +02:00 committed by Konrad Sztyber
parent b71eebd85a
commit 269737b902

View File

@ -51,17 +51,15 @@ get_iscsi() {
get_nvme() {
local blocks nvme nvme_sub
for nvme in /sys/class/nvme/nvme+([0-9]); do
# Make sure we touch only the block devices which belong to bdev subsystem and
# use supported protocols.
[[ $(< "$nvme/transport") == tcp || $(< "$nvme/transport") == rdma ]] || continue
for nvme_sub in /sys/class/nvme-subsystem/nvme-subsys+([0-9]); do
[[ -e $nvme_sub/${nvme##*/} ]] || continue
[[ $(< "$nvme_sub/model") == "SPDK bdev Controller"* ]] || continue
blocks+=("$nvme_sub/${nvme##*/}"n*)
done
for nvme in /sys/block/nvme*; do
# Some kernels expose hidden fabrics devices ("nvmeXcXnX") under sysfs - skip them.
if (($(< "$nvme/hidden") == 1)); then
continue
fi
# Make sure we touch only the block devices which belong to bdev subsystem.
[[ $(< "$nvme/device/model") == "SPDK bdev Controller"* ]] || continue
blocks+=("${nvme##*/}")
done
blocks=("${blocks[@]##*/}")
printf '%s\n' "${blocks[@]}"
}