Subject: [GIT PULL] virtio,vhost,vdpa: features, fixes, cleanups

From: "Michael S. Tsirkin" <[email-masked]>
Date: Mon, 24 Apr 2023 17:48:42 -0400

Most exciting stuff this time around has to do with performance.

The following changes since commit 6a8f57ae2eb07ab39a6f0ccad60c760743051026:

  Linux 6.3-rc7 (2023-04-16 15:23:53 -0700)

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

  vhost_vdpa: fix unmap process in no-batch mode (2023-04-21 03:02:36 -0400)

----------------------------------------------------------------
virtio,vhost,vdpa: features, fixes, cleanups

reduction in interrupt rate in virtio
perf improvement for VDUSE
scalability for vhost-scsi
non power of 2 ring support for packed rings
better management for mlx5 vdpa
suspend for snet
VIRTIO_F_NOTIFICATION_DATA
shared backend with vdpa-sim-blk
user VA support in vdpa-sim
better struct packing for virtio

fixes, cleanups all over the place

Signed-off-by: Michael S. Tsirkin <[email-masked]>

----------------------------------------------------------------
Albert Huang (1):
      virtio_ring: don't update event idx on get_buf

Alvaro Karsz (5):
      vdpa/snet: support getting and setting VQ state
      vdpa/snet: support the suspend vDPA callback
      virtio-vdpa: add VIRTIO_F_NOTIFICATION_DATA feature support
      vdpa/snet: implement kick_vq_with_data callback
      vdpa/snet: use likely/unlikely macros in hot functions

Christophe JAILLET (1):
      virtio: Reorder fields in 'struct virtqueue'

Cindy Lu (1):
      vhost_vdpa: fix unmap process in no-batch mode

Eli Cohen (3):
      vdpa/mlx5: Avoid losing link state updates
      vdpa/mlx5: Make VIRTIO_NET_F_MRG_RXBUF off by default
      vdpa/mlx5: Extend driver support for new features

Feng Liu (3):
      virtio_ring: Avoid using inline for small functions
      virtio_ring: Use const to annotate read-only pointer params
      virtio_ring: Allow non power of 2 sizes for packed virtqueue

Jacob Keller (1):
      vhost: use struct_size and size_add to compute flex array sizes

Mike Christie (5):
      vhost-scsi: Delay releasing our refcount on the tpg
      vhost-scsi: Drop device mutex use in vhost_scsi_do_plug
      vhost-scsi: Check for a cleared backend before queueing an event
      vhost-scsi: Drop vhost_scsi_mutex use in port callouts
      vhost-scsi: Reduce vhost_scsi_mutex use

Rong Tao (2):
      tools/virtio: virtio_test: Fix indentation
      tools/virtio: virtio_test -h,--help should return directly

Shunsuke Mie (2):
      virtio_ring: add a struct device forward declaration
      tools/virtio: fix build caused by virtio_ring changes

Simon Horman (3):
      vdpa: address kdoc warnings
      vringh: address kdoc warnings
      MAINTAINERS: add vringh.h to Virtio Core and Net Drivers

Stefano Garzarella (12):
      vringh: fix typos in the vringh_init_* documentation
      vdpa: add bind_mm/unbind_mm callbacks
      vhost-vdpa: use bind_mm/unbind_mm device callbacks
      vringh: replace kmap_atomic() with kmap_local_page()
      vringh: define the stride used for translation
      vringh: support VA with iotlb
      vdpa_sim: make devices agnostic for work management
      vdpa_sim: use kthread worker
      vdpa_sim: replace the spinlock with a mutex to protect the state
      vdpa_sim: add support for user VA
      vdpa_sim: move buffer allocation in the devices
      vdpa_sim_blk: support shared backend

Viktor Prutyanov (1):
      virtio: add VIRTIO_F_NOTIFICATION_DATA feature support

Xie Yongji (11):
      lib/group_cpus: Export group_cpus_evenly()
      vdpa: Add set/get_vq_affinity callbacks in vdpa_config_ops
      virtio-vdpa: Support interrupt affinity spreading mechanism
      vduse: Refactor allocation for vduse virtqueues
      vduse: Support set_vq_affinity callback
      vduse: Support get_vq_affinity callback
      vduse: Add sysfs interface for irq callback affinity
      vdpa: Add eventfd for the vdpa callback
      vduse: Signal vq trigger eventfd directly if possible
      vduse: Delay iova domain creation
      vduse: Support specifying bounce buffer size via sysfs

Xuan Zhuo (1):
      MAINTAINERS: make me a reviewer of VIRTIO CORE AND NET DRIVERS

 MAINTAINERS                          |   2 +
 drivers/s390/virtio/virtio_ccw.c     |  22 +-
 drivers/vdpa/mlx5/net/mlx5_vnet.c    | 261 +++++++++++++---------
 drivers/vdpa/solidrun/Makefile       |   1 +
 drivers/vdpa/solidrun/snet_ctrl.c    | 330 ++++++++++++++++++++++++++++
 drivers/vdpa/solidrun/snet_hwmon.c   |   2 +-
 drivers/vdpa/solidrun/snet_main.c    | 146 ++++++------
 drivers/vdpa/solidrun/snet_vdpa.h    |  20 +-
 drivers/vdpa/vdpa_sim/vdpa_sim.c     | 166 +++++++++++---
 drivers/vdpa/vdpa_sim/vdpa_sim.h     |  14 +-
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c |  93 ++++++--
 drivers/vdpa/vdpa_sim/vdpa_sim_net.c |  38 ++--
 drivers/vdpa/vdpa_user/vduse_dev.c   | 414 +++++++++++++++++++++++++++++------
 drivers/vhost/scsi.c                 | 102 +++++----
 drivers/vhost/vdpa.c                 |  44 +++-
 drivers/vhost/vhost.c                |   6 +-
 drivers/vhost/vringh.c               | 191 ++++++++++++----
 drivers/virtio/virtio_mmio.c         |  18 +-
 drivers/virtio/virtio_pci_modern.c   |  22 +-
 drivers/virtio/virtio_ring.c         |  89 +++++---
 drivers/virtio/virtio_vdpa.c         | 120 +++++++++-
 include/linux/vdpa.h                 |  52 ++++-
 include/linux/virtio.h               |  16 +-
 include/linux/virtio_ring.h          |   3 +
 include/linux/vringh.h               |  26 ++-
 include/uapi/linux/virtio_config.h   |   6 +
 lib/group_cpus.c                     |   1 +
 tools/include/linux/types.h          |   5 +
 tools/virtio/linux/compiler.h        |   2 +
 tools/virtio/linux/kernel.h          |   5 +-
 tools/virtio/linux/uaccess.h         |  11 +-
 tools/virtio/virtio_test.c           |  12 +-
 32 files changed, 1760 insertions(+), 480 deletions(-)
 create mode 100644 drivers/vdpa/solidrun/snet_ctrl.c