On Sat, 25 Aug 2018, Terin Stock wrote: > Upon upgrading a Raspberry Pi 3B-based project from vanilla 4.14, > attempts to mount a floppy disk in a generic USB floppy drive would hang > until the floppy drive was removed from the system. > > Tracing shows that during mounting the drive produces a large amount of > NAKed transactions, but would eventually continue. A previous commit > added a retry delay on NAKed transactions, using jiffies, that results > in indefinite NAKs in this scenario. > > Modify the wait delay utilize the high resolution timer API to allow for > more accurately scheduled callbacks. This description doesn't explain enough. Here are some of the questions it raised in my mind... Whether you use jiffies or hrtimers to implement the delays doesn't make any real difference; in the end, all that matters is how long the delays are. Does this patch change the length of the delays? If so, how do the new delay lengths compare to the old ones? Why does this change in the delay lengths improve overall performance? Why won't you still get indefinite NAKs? For that matter, why does the interval between packets have any effect at all? Strictly speaking, the device should NAK until it is ready and then it should precede. The number and timing of the NAKs should not change this. Alan Stern