Skip to content

Commit

Permalink
nvme: add nvme pci timeout testcase
Browse files Browse the repository at this point in the history
Trigger and test nvme-pci timeout with concurrent fio jobs.

Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
  • Loading branch information
Chaitanya Kulkarni authored and kawasaki committed Jan 31, 2024
1 parent 4f6b3fc commit 5553cc0
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
55 changes: 55 additions & 0 deletions tests/nvme/050
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+
# Copyright (C) 2024 Chaitanya Kulkarni
#
# Test NVMe-PCI timeout with FIO jobs by triggering the nvme_timeout function.
#

. tests/nvme/rc

DESCRIPTION="test nvme-pci timeout with fio jobs"
CAN_BE_ZONED=1

#restrict test to nvme-pci only
nvme_trtype=pci

requires() {
_have_fio
_nvme_requires
_have_kernel_option FAIL_IO_TIMEOUT
_have_kernel_option FAULT_INJECTION_DEBUG_FS
}

test_device() {
local nvme_ns
local pdev

echo "Running ${TEST_NAME}"

pdev=$(_get_pci_dev_from_blkdev)
nvme_ns="$(basename "${TEST_DEV}")"
echo 1 > /sys/block/"${nvme_ns}"/io-timeout-fail

echo 100 > /sys/kernel/debug/fail_io_timeout/probability
echo 1 > /sys/kernel/debug/fail_io_timeout/interval
echo -1 > /sys/kernel/debug/fail_io_timeout/times
echo 0 > /sys/kernel/debug/fail_io_timeout/space
echo 1 > /sys/kernel/debug/fail_io_timeout/verbose

fio --bs=4k --rw=randread --norandommap --numjobs="$(nproc)" \
--name=reads --direct=1 --filename="${TEST_DEV}" --group_reporting \
--time_based --runtime=1m >& "$FULL"

if grep -q "Input/output error" "$FULL"; then
echo "Test complete"
else
echo "Test failed"
fi

# Remove and rescan the NVME device to ensure that it has come back
echo 1 > "/sys/bus/pci/devices/${pdev}/remove"
echo 1 > /sys/bus/pci/rescan
if [[ ! -b ${TEST_DEV} ]]; then
echo "Failed to restore ${TEST_DEV}"
fi
}
2 changes: 2 additions & 0 deletions tests/nvme/050.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Running nvme/050
Test complete

0 comments on commit 5553cc0

Please sign in to comment.