From: Jiri Pirko <[email protected]>
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