Arne Redlich wrote:
Am Donnerstag, den 08.05.2008, 17:02 +0200 schrieb Bart Van Assche:
On Sun, May 4, 2008 at 5:30 PM, Bart Van Assche
<bart.vanassche@xxxxxxxxx> wrote:
On Fri, May 2, 2008 at 5:55 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
On Fri, May 02, 2008 at 05:53:22PM +0200, Bart Van Assche wrote:
Regarding scsi_execute_async(): I didn't know that this API is on its
way out. What will it be replaced by, and when ?
blk_execute_rq/blk_execute_rq_nowait plus the block level helpers built
ontop to build requests.
Source reading learned me that the function scsi_execute_async() calls
blk_execute_rq_nowait() with 1 as fourth argument, which means that
the request is inserted at the head of the queue. This means that
requests queued with scsi_execute_async() are executed before other
queued requests, and that this function has LIFO (last in first out)
semantics.
All non-SCSI calls to blk_execute_rq() / blk_execute_rq_nowait() add
requests at the end of the queue (except those calls for terminating
I/O).
What is the background of this special behavior of the SCSI subsystem ?
Is the linux-scsi mailing list the appropriate mailing list to post
questions like the above ?
I guess this should
http://marc.info/?l=linux-scsi&m=116668527804801&w=2
answer your question.
Thanks for pointing on it. There were another threads about that, e.g.
http://thread.gmane.org/gmane.linux.scsi/16498/focus=16784. So, there
was an agreement that the current LIFO requests submission behavior is
inappropriate and a good solution will be to add to scsi_execute_async()
one more argument to specify where to insert the request, in the tail or
in the head of the queue. The patch Bart sent basically implements
exactly that, with the only difference that the new argument passed
explicitly via new function scsi_execute_async_fifo(). There only thing
left is to update via another patch other users of scsi_execute_async()
to use new function, where necessary. Correct?
I wouldn't mind if that will be done after the pending patchset removing
scsi_execute_async() will be applied for new scsi_execute_async()
substitute function. But it seems this patchset is pending for pretty
long time (a half a year? Or even more?). So, what does prevent it from
being applied? How long more are we going to wait for it?
Vlad
--
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