On Thu, Feb 06, 2014 at 06:33:17PM +0200, Shlomo Pongratz wrote: > The completion queue is implemented using lockless list. > > The llist_add is adds the events to the list head which is a push operation. > The processing of the completion elements is done by disconnecting all the > pushed elements and iterating over the disconnected list. The problem is > that the processing is done in reverse order w.r.t order of the insertion > i.e. LIFO processing. By reversing the disconnected list which is done in > linear time the desired FIFO processing is achieved. I think it should just switch to using __smp_call_function_single directly, mirroring commit 3d6efbf62c797a2924785f482e4ce8aa8820ec72 for the blk-mq core. I've actually a patch in the queue that allows generic request completion offloading similar to blk_complete_request() in the old request code, but it'll need a bit more polishing first. -- 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