The PCI sysfs interface may not be a dependable method for toggling the
PCI device state to trigger the timeouts. This patch goes directly to
the config space to make device failure occur.
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Keith Busch <keith.busch@intel.com>
TIMED=1
requires() {
- _have_fio
+ _have_fio && _have_program setpci
}
device_requires() {
_run_fio_rand_io --filename="$TEST_DEV" --size="$size" \
--ignore_error=EIO,ENXIO,ENODEV &
+ # toggle PCI Command Register's Bus Master Enabling
while kill -0 $! 2>/dev/null; do
- echo 0 > "/sys/bus/pci/devices/${pdev}/enable"
+ setpci -s "${pdev}" 4.w=0:4
sleep .2
- echo 1 > "/sys/bus/pci/devices/${pdev}/enable"
+ setpci -s "${pdev}" 4.w=4:4
sleep .2
done