Messages in this thread | | | Date | Tue, 04 Sep 2012 13:18:31 +0200 | From | Paolo Bonzini <> | Subject | Re: [PATCH 5/5] virtio-scsi: introduce multiqueue support |
| |
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
| |