From: Jiri Pirko <jiri@xxxxxxxxxx> Currently the admin queue command execution is serialized by a lock. This patchsets lifts this limitation allowing to execute admin queue commands in parallel. To do that, admin queue processing needs to be converted from polling to interrupt based completion. Patches #1-#6 are preparations, making things a bit smoother as well. Patch #7 implements interrupt based completion for admin queue. Patch #8 finally removes the admin queue serialization lock. Jiri Pirko (8): virtio_pci: push out single vq find code to vp_find_one_vq_msix() virtio_pci_modern: treat vp_dev->admin_vq.info.vq pointer as static virtio: push out code to vp_avq_index() virtio: create admin queues alongside other virtqueues virtio_pci_modern: create admin queue of queried size virtio_pci_modern: pass cmd as an identification token virtio_pci_modern: use completion instead of busy loop to wait on admin cmd result virtio_pci_modern: remove admin queue serialization lock drivers/virtio/virtio.c | 28 +---- drivers/virtio/virtio_pci_common.c | 109 ++++++++++++++------ drivers/virtio/virtio_pci_common.h | 9 +- drivers/virtio/virtio_pci_modern.c | 160 ++++++++++++----------------- include/linux/virtio.h | 2 + include/linux/virtio_config.h | 2 - 6 files changed, 150 insertions(+), 160 deletions(-) -- 2.45.1