[PATCH virtio v3 00/19] virtio: consolidate vq info args of find_vqs()

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

 



From: Jiri Pirko <jiri@xxxxxxxxxx>

Currently, virtio_find_vqs() and virtio_find_vqs_ctx() accept array of
names, callbacks and ctx (in case of the second one) as separate args.
That became inconvenient as the ctx addition showed.

For virtio_net control queue, an indication of queue flavour (slow path)
is going to be needed to be passed to PCI transport in order to
assign vectors properly, another array added to virtio_find_vqs_ctx()
arg list would not be nice and convenient.

Instead, introduce a structure to carry vq callback, name and ctx. Pass
array of these structures to virtio_find_vqs() and all the way down to
transport find_vqs() op implementation.

That allows to easily extend what needs to be passed down. Also, it
makes the code a bit more cleaner. We get rid of separate
virtio_find_vqs_ctx() helper.

This patchset does the conversion in steps, using temporary _info() op
and helper. Note they are renamed back.

Patch #1 does one forgotten conversion to virtio_find_single_vq().
Patches #2 and #3 do preparations for find_vqs_info() op introduction.
Patch #4 introduces new op find_vqs_info() to replace find_vqs() it also
  introduces struct virtio_queue_info and virtio_find_vqs_info() helper.
Patches #5 and #6 convert transports to implement find_vqs_info() op
  that accepts array of virtio_queue_info structs.
Patch #7 converts virtio_find_single_vq() to use the new way as well.
Patch #8 removes original find_vqs() op.
Patch #9 renames find_vqs_info() to find_vqs() and completes first part
  of conversion this patches does.
Patches #10-#17 convert virtio_find_vqs() and virtio_find_vqs_ctx()
  users to use new virtio_find_vqs_info() helper.
Patch #18 removes no longer used virtio_find_vqs() and
  virtio_find_vqs_ctx() helpers.
Patch #19 finalizes the conversion by renaming virtio_find_vqs_info()
  to virtio_find_vqs().

---
v2->v3:
- added proper struct description comment to patch #4
- added suggested by tag to patches #4, #10-#17

v1->v2:
- added forgotten VIRTIO_SND_VQ_MAX for array size in virtio_card.c
- s/virtio_queue_info/virtqueue_info/
- fixed comments for struct virtqueue_info
- rebased on top of recent code changes (virtio_fs.c)
- see individual patches changelog for more details

Jiri Pirko (19):
  caif_virtio: use virtio_find_single_vq() for single virtqueue finding
  virtio: make virtio_find_vqs() call virtio_find_vqs_ctx()
  virtio: make virtio_find_single_vq() call virtio_find_vqs()
  virtio: introduce virtio_queue_info struct and find_vqs_info() config
    op
  virtio_pci: convert vp_*find_vqs() ops to find_vqs_info()
  virtio: convert find_vqs() op implementations to find_vqs_info()
  virtio: call virtio_find_vqs_info() from virtio_find_single_vq()
    directly
  virtio: remove the original find_vqs() op
  virtio: rename find_vqs_info() op to find_vqs()
  virtio_blk: convert to use virtio_find_vqs_info()
  virtio_console: convert to use virtio_find_vqs_info()
  virtio_crypto: convert to use virtio_find_vqs_info()
  virtio_net: convert to use virtio_find_vqs_info()
  scsi: virtio_scsi: convert to use virtio_find_vqs_info()
  virtiofs: convert to use virtio_find_vqs_info()
  virtio_balloon: convert to use virtio_find_vqs_info()
  virtio: convert the rest virtio_find_vqs() users to
    virtio_find_vqs_info()
  virtio: remove unused virtio_find_vqs() and virtio_find_vqs_ctx()
    helpers
  virtio: rename virtio_find_vqs_info() to virtio_find_vqs()

 arch/um/drivers/virt-pci.c                    |  8 ++-
 arch/um/drivers/virtio_uml.c                  | 12 ++--
 drivers/block/virtio_blk.c                    | 20 +++---
 drivers/bluetooth/virtio_bt.c                 | 13 ++--
 drivers/char/virtio_console.c                 | 43 +++++--------
 drivers/crypto/virtio/virtio_crypto_core.c    | 31 ++++-----
 drivers/firmware/arm_scmi/virtio.c            | 11 ++--
 drivers/gpio/gpio-virtio.c                    | 10 +--
 drivers/gpu/drm/virtio/virtgpu_kms.c          |  9 ++-
 drivers/iommu/virtio-iommu.c                  | 11 ++--
 drivers/net/caif/caif_virtio.c                |  8 +--
 drivers/net/virtio_net.c                      | 34 ++++------
 drivers/net/wireless/virtual/mac80211_hwsim.c | 12 ++--
 drivers/platform/mellanox/mlxbf-tmfifo.c      | 10 +--
 drivers/remoteproc/remoteproc_virtio.c        | 12 ++--
 drivers/rpmsg/virtio_rpmsg_bus.c              |  8 ++-
 drivers/s390/virtio/virtio_ccw.c              | 13 ++--
 drivers/scsi/virtio_scsi.c                    | 32 ++++------
 drivers/virtio/virtio_balloon.c               | 32 ++++------
 drivers/virtio/virtio_input.c                 |  9 +--
 drivers/virtio/virtio_mmio.c                  | 12 ++--
 drivers/virtio/virtio_pci_common.c            | 48 +++++++-------
 drivers/virtio/virtio_pci_common.h            |  3 +-
 drivers/virtio/virtio_pci_modern.c            |  5 +-
 drivers/virtio/virtio_vdpa.c                  | 13 ++--
 fs/fuse/virtio_fs.c                           | 22 +++----
 include/linux/virtio_config.h                 | 64 ++++++++++---------
 net/vmw_vsock/virtio_transport.c              | 16 ++---
 sound/virtio/virtio_card.c                    | 23 +++----
 29 files changed, 242 insertions(+), 302 deletions(-)

-- 
2.45.2





[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