The biggest thing here is the adminq change - but it looks like the only way to avoid headq blocking causing indefinite stalls. The following changes since commit 6c85d6b653caeba2ef982925703cbb4f2b3b3163: virtio: rename virtio_find_vqs_info() to virtio_find_vqs() (2024-07-17 05:20:58 -0400) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git tags/for_linus for you to fetch changes up to 6d834691da474ed1c648753d3d3a3ef8379fa1c1: virtio_pci_modern: remove admin queue serialization lock (2024-07-17 05:43:21 -0400) ---------------------------------------------------------------- virtio: fixes This fixes 3 issues: - prevent admin commands on one VF blocking another: fixes a huge scalability issue with large # of VFs - correctly return error on command failure on octeon fixes a corruption if any commands fail - fix modpost warning when building virtio_dma_buf harmless, but the fix is trivial Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> ---------------------------------------------------------------- Dan Carpenter (1): vdpa/octeon_ep: Fix error code in octep_process_mbox() Jeff Johnson (1): virtio: add missing MODULE_DESCRIPTION() macro Jiri Pirko (13): virtio_pci: push out single vq find code to vp_find_one_vq_msix() virtio_pci: simplify vp_request_msix_vectors() call a bit virtio_pci: pass vector policy enum to vp_find_vqs_msix() virtio_pci: pass vector policy enum to vp_find_one_vq_msix() virtio_pci: introduce vector allocation fallback for slow path virtqueues virtio_pci_modern: treat vp_dev->admin_vq.info.vq pointer as static virtio: push out code to vp_avq_index() virtio_pci: pass vq info as an argument to vp_setup_vq() 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/vdpa/octeon_ep/octep_vdpa_hw.c | 2 +- drivers/virtio/virtio.c | 28 +---- drivers/virtio/virtio_dma_buf.c | 1 + drivers/virtio/virtio_pci_common.c | 192 ++++++++++++++++++++++++++------- drivers/virtio/virtio_pci_common.h | 16 +-- drivers/virtio/virtio_pci_modern.c | 161 +++++++++++++-------------- include/linux/virtio.h | 3 + include/linux/virtio_config.h | 4 - 8 files changed, 243 insertions(+), 164 deletions(-)