Thread (34 messages) 34 messages, 7 authors, 2012-09-06

Re: [PATCH 5/5] virtio-scsi: introduce multiqueue support

flat view

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2012-09-04 15:02:08
Also in: kvm, linux-scsi, lkml

On Tue, Sep 04, 2012 at 04:55:56PM +0200, Paolo Bonzini wrote:
Il 04/09/2012 16:47, Michael S. Tsirkin ha scritto:
quoted
quoted
quoted
 static void virtscsi_init_vq(struct virtio_scsi_vq *virtscsi_vq,
-			     struct virtqueue *vq)
+			     struct virtqueue *vq, bool affinity)
 {
 	spin_lock_init(&virtscsi_vq->vq_lock);
 	virtscsi_vq->vq = vq;
+	if (affinity)
+		virtqueue_set_affinity(vq, virtqueue_get_queue_index(vq) -
+				       VIRTIO_SCSI_VQ_BASE);
 }
 
This means in practice if you have less virtqueues than CPUs,
things are not going to work well, will they?
Not particularly.  It could be better or worse than single queue
depending on the workload.
Well interrupts will go to CPU different from the one
that sends commands so ...
quoted
Any idea what to do?
Two possibilities:

1) Add a stride argument to virtqueue_set_affinity, and make it equal to
the number of queues.

2) Make multiqueue the default in QEMU, and make the default number of
queues equal to the number of VCPUs.

I was going for (2).

Paolo
3. use per target queue if less targets than cpus?

-- 
MST
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help