Re: [PATCH virtio 0/8] virtio_pci_modern: allow parallel admin queue commands execution

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mon, Jun 24, 2024 at 01:07:23PM CEST, mst@xxxxxxxxxx wrote:
>On Mon, Jun 24, 2024 at 11:04:43AM +0200, Jiri Pirko wrote:
>> 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.
>
>Okay ... I assume this is infrastructure for some other need?
>I'll review, but I'd like to see this actually used.

No other need. The currently, admin queue cmds are serialized. Note that
admin queue is currently created for PF. If you have for example
multiple VFs in legacy mode reading and writing pci bar, that virtio
vfio driver translates it into admin queue commands. So for example
probe on multiple VFs gets serialized. This patchset makes it possible
to run in parallel.


>
>
>> 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
>




[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux