Commit 269737b9 authored by Michal Berger's avatar Michal Berger Committed by Konrad Sztyber
Browse files

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: default avatarMichal Berger <michal.berger@intel.com>
Change-Id: I7ff55c8d8c50acd2a117bed2a31ddb9890615e18
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13674


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKamil Godzwon <kamilx.godzwon@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
parent b71eebd8
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -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[@]}"
}