Re: [PATCH 5/5] virtio-scsi: introduce multiqueue support
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2012-09-04 14:56:05
Also in:
linux-scsi, lkml, virtualization
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2012-09-04 14:56:05
Also in:
linux-scsi, lkml, virtualization
Il 04/09/2012 16:47, Michael S. Tsirkin ha scritto:
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.
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