libsas - sas_queue's policy of re-queuing all the tasks ...

From: Chetan Loke
Date: Wed Dec 23 2009 - 16:58:39 EST


Hello,

I've a question regarding the libsas core.

So, sas_queue() will dispatch the coalesced tasks. It then invokes the
SAS_LLDD's execute_task. Let's assume mv_sas driver.In this case
mvs_task_exec(). Say, it received 'N' tasks the first time it was
called.However, the LLDD was only able to service M tasks(where M<N).
Now it will return rc(non-zero value). sas_queue will then requeue all
the tasks. But only (N-M) tasks should have been queued, correct? So
why are we re-trying all the tasks again?

PS - If folks are on SCST mailing list too then do not confuse this
post with my SCST post. There, the target maintainer can see if the
target driver has to worry about this.


Chetan Loke
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/