Il 04/09/2012 13:09, Michael S. Tsirkin ha scritto: >> > queuecommand on CPU #0 queuecommand #2 on CPU #1 >> > -------------------------------------------------------------- >> > atomic_inc_return(...) == 1 >> > atomic_inc_return(...) == 2 >> > virtscsi_queuecommand to queue #1 >> > tgt->req_vq = queue #0 >> > virtscsi_queuecommand to queue #0 >> > >> > then two requests are issued to different queues without a quiescent >> > point in the middle. > What happens then? Does this break correctness?
Yes, requests to the same target should be processed in FIFO order, or you have things like a flush issued before the write it was supposed to flush. This is why I can only change the queue when there is no request pending. Paolo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/