Re: [PATCH] first cut at fixing unable to requeue with no outstanding commands

James Bottomley
2002-10-01T15:14:15Z

patmans@us.ibm.com said:
> What about applications and devices that only send one IO at a time?
> They could still hang.

> We have: tape (st or osst), sg usage, partitioning, scanning, direct
> use of the block device (i.e. dd if=/dev/sda), and probably others.

I don't believe so.

Unplugging is a global thing. The request function for a plugged queue will
always be run, that's a guarantee, so using this approach, the queue will
stall but never hang forever.

I think for a rejection of a command with none outstanding, a stall is what
you want (give the host/device time to recover from whatever the problem is).
The length of the stall will be dependent on I/O pressure in the system, which
is also roughly what you want: we can afford to give a device quite a while to
recover if we're not desparate to get I/O to it. We can also handle BUSY
returns this way too...

James