On 04/19/2018 10:18 PM, Omar Sandoval wrote: > On Thu, Apr 19, 2018 at 01:44:41PM -0600, Jens Axboe wrote: >> On 4/19/18 1:41 PM, Bart Van Assche wrote: >>> On Thu, 2018-04-19 at 12:13 -0700, Omar Sandoval wrote: >>>> On Thu, Apr 19, 2018 at 11:53:30AM -0700, Omar Sandoval wrote: >>>>> Thanks for the test! Applied. >>>> >>>> Side note, it's unfortunate that this test takes 180 seconds to run only >>>> because we have to wait for the command timeout. We should be able to >>>> export request_queue->rq_timeout writeable in sysfs. Would you be >>>> interested in doing that? >>> >>> Hello Omar, >>> >>> Is this perhaps what you are looking for? >>> # ls -l /sys/class/scsi_device/*/*/timeout >>> -rw-r--r-- 1 root root 4096 Apr 19 08:52 /sys/class/scsi_device/2:0:0:0/device/timeout >>> -rw-r--r-- 1 root root 4096 Apr 19 12:39 /sys/class/scsi_device/8:0:0:1/device/timeout >> >> We should have it generically available though, not just for SCSI. In >> retrospect, it should have been under queue/ from the start, now we'll >> end up with duplicate entries for SCSI. > > For the sake of this test, I just decreased the timeout through SCSI. Great idea. > echo 5 > "/sys/block/${SCSI_DEBUG_DEVICES[0]}/device/timeout" However, the timeout should be sufficiently larger than scsi_debug/delay, in order not to run into the command timeout. It may be unfortunate that scsi_debug/delay uses jiffies as unit and can thus differ in a range of an order of magnitude for different kernel configs. > # delay to reduce response repetition: around 1..10sec depending on HZ > echo 1000 > /sys/bus/pseudo/drivers/scsi_debug/delay On s390, we typically have HZ=100, so 1000 jiffies are 10 seconds. We can increase the sdev cmd timeout or decrease the scsi_debug/delay. 100 instead of 1000 for scsi_debug/delay worked for me; but for some reason the loop checking for busy did not work (any more?) causing an unexpected test case error: > # ./check scsi/004 > scsi/004 (ensure repeated TASK SET FULL results in EIO on timing out command) [failed] > runtime 31.892s ... 31.720s > --- tests/scsi/004.out 2018-04-16 11:47:19.105931872 +0200 > +++ results/nodev/scsi/004.out.bad 2018-04-23 14:07:33.615445253 +0200 > @@ -1,3 +1,3 @@ > Running scsi/004 > -Input/output error > +modprobe: FATAL: Module scsi_debug is in use. > Test complete so I added another sleep hack: # dd closing SCSI disk causes implicit TUR also being delayed once + # sleep over time window where READ was done and TUR not yet queued + sleep 2 while grep -q -F "in_use_bm BUSY:" "/proc/scsi/scsi_debug/${SCSI_DEBUG_HOSTS[0]}"; do What do you think? -- Mit freundlichen Grüßen / Kind regards Steffen Maier Linux on z Systems Development IBM Deutschland Research & Development GmbH Vorsitzende des Aufsichtsrats: Martina Koederitz Geschaeftsfuehrung: Dirk Wittkopp Sitz der Gesellschaft: Boeblingen Registergericht: Amtsgericht Stuttgart, HRB 243294