On Fri, Feb 06, 2015 at 03:54:08PM +0800, Jason Wang wrote: > We current limit the max virtio queues to 64. This is not sufficient > to support some multiqueue deivces (e.g recent Linux support up to 256 > tap queues). So this series try to let virtio to support more queues. > > No much works needs to be done except: > > - Patch 1 renames VIRTIO_PCI_QUEUE_MAX to a more generic name: > VIRTIO_QUEUE_MAX > - Patch 2 simply increase the the limitation to 513 (256 queue pairs) > - Patch 3 fixes a bug in virtio_del_queue() > - Patch 4 tries to remove the hard coded MSI-X bar size (4096) and allow up to > 2048 MSI-X entries. > - Patch 5 add a boolean property to let the virtio-net can calculate > the MSI-X bar size based on the number of MSI-X vectors and keep > migration compability with legacy version whose bar size is 4096. > > With this patch, we can support up to 256 queues.Since x86 can only > allow about 240 interrupt vectors for MSI-X, current Linux driver can > only have about 80 queue pairs has their private MSI-X interrupt > vectors. With sharing IRQ with queue pairs (RFC posted in > https://lkml.org/lkml/2014/12/25/169), Linux driver can have up > to about 186 queue pairs has their private MSI-X interrupt vectors.
Worth mentioning that the change to VIRTIO_QUEUE_MAX is safe from a live migration perspective: Old QEMUs will not accept migration from new QEMUs launched with >64 queues: Invalid number of PCI queues: 0x41 Other than that, live migration works fine. Stefan
pgpm08kr2le3B.pgp
Description: PGP signature