Arjan van de Ven wrote:
On Tue, 2006-12-19 at 10:35 +0200, Dan Aloni wrote:
Hello,
scsi_execute_async() has replaced scsi_do_req() a few versions ago,
but it also incurred a change of behavior. I noticed that over-queuing
a SCSI device using that function causes I/Os to be starved from
low-level queuing for no justified reason.
I think it makes much more sense to perserve the original behaviour
of scsi_do_req() and add the request to the tail of the queue.
Hi,
some things should really be added to the head of the queue, like
maintenance requests and error handling requests. Are you sure this is
the right change? At least I'd expect 2 apis, one for a head and one for
a "normal" queueing...
Since a user of scsi_execute_async() would most likely want to have
control over this, it would be better to add a parameter and fix the
current users of the function.
However, if we take this route we might have duplicate code
across mid-layer drivers (sg, st, osst), because they may choose to
prioritize I/Os in similar ways.
So instead of adding a parameter, we can make scsi_execute_async()
decide for itself based on the SCSI command, with read/write I/Os
taking the lowest priority.
Suggestions?
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html