On Tue, Sep 04, 2012 at 03:49:42PM +0200, Paolo Bonzini wrote: > Il 04/09/2012 14:48, Michael S. Tsirkin ha scritto: > >> > This patch adds queue steering to virtio-scsi. When a target is sent > >> > multiple requests, we always drive them to the same queue so that FIFO > >> > processing order is kept. However, if a target was idle, we can choose > >> > a queue arbitrarily. In this case the queue is chosen according to the > >> > current VCPU, so the driver expects the number of request queues to be > >> > equal to the number of VCPUs. This makes it easy and fast to select > >> > the queue, and also lets the driver optimize the IRQ affinity for the > >> > virtqueues (each virtqueue's affinity is set to the CPU that "owns" > >> > the queue). > >> > > >> > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > > I guess an alternative is a per-target vq. > > Is the reason you avoid this that you expect more targets > > than cpus? If yes this is something you might want to > > mention in the log. > > One reason is that, even though in practice I expect roughly the same > number of targets and VCPUs, hotplug means the number of targets is > difficult to predict and is usually fixed to 256. > > The other reason is that per-target vq didn't give any performance > advantage. The bonus comes from cache locality and less process > migrations, more than from the independent virtqueues. > > Paolo Okay, and why is per-target worse for cache locality? -- MST _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization