[GIT PULL] virtio: features, fixes, cleanups

From: Michael S. Tsirkin
Date: Mon Jul 03 2023 - 12:34:00 EST


Note: dropped some commits at the last moment, I did verify we get
the same code in the end as what was in linux next for a while now.

The following changes since commit 6995e2de6891c724bfeb2db33d7b87775f913ad1:

Linux 6.4 (2023-06-25 16:29:58 -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 9e396a2f434f829fb3b98a24bb8db5429320589d:

vhost: Make parameter name match of vhost_get_vq_desc() (2023-07-03 12:15:15 -0400)

----------------------------------------------------------------
virtio: features, fixes, cleanups

resume support in vdpa/solidrun
structure size optimizations in virtio_pci
new pds_vdpa driver
immediate initialization mechanism for vdpa/ifcvf
interrupt bypass for vdpa/mlx5
multiple worker support for vhost
viirtio net in Intel F2000X-PL support for vdpa/ifcvf

fixes, cleanups all over the place

Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

----------------------------------------------------------------
Alvaro Karsz (1):
vdpa/snet: implement the resume vDPA callback

Dragos Tatulea (1):
virtio-vdpa: Fix unchecked call to NULL set_vq_affinity

Eli Cohen (1):
vdpa/mlx5: Support interrupt bypassing

Feng Liu (1):
virtio_pci: Optimize virtio_pci_device structure size

Krzysztof Kozlowski (1):
vdpa: solidrun: constify pointers to hwmon_channel_info

Maxime Coquelin (1):
vduse: fix NULL pointer dereference

Mike Christie (17):
vhost: create worker at end of vhost_dev_set_owner
vhost: dynamically allocate vhost_worker
vhost: add vhost_worker pointer to vhost_virtqueue
vhost, vhost_net: add helper to check if vq has work
vhost: take worker or vq instead of dev for queueing
vhost: take worker or vq for flushing
vhost: convert poll work to be vq based
vhost_sock: convert to vhost_vq_work_queue
vhost_scsi: make SCSI cmd completion per vq
vhost_scsi: convert to vhost_vq_work_queue
vhost_scsi: flush IO vqs then send TMF rsp
vhost: remove vhost_work_queue
vhost: add helper to parse userspace vring state/file
vhost: replace single worker pointer with xarray
vhost: allow userspace to create workers
vhost_scsi: add support for worker ioctls
vhost: Allow worker switching while work is queueing

Peng Fan (1):
tools/virtio: fix build break for aarch64

Shannon Nelson (11):
virtio: allow caller to override device id in vp_modern
virtio: allow caller to override device DMA mask in vp_modern
pds_vdpa: Add new vDPA driver for AMD/Pensando DSC
pds_vdpa: move enum from common to adminq header
pds_vdpa: new adminq entries
pds_vdpa: get vdpa management info
pds_vdpa: virtio bar setup for vdpa
pds_vdpa: add vdpa config client commands
pds_vdpa: add support for vdpa and vdpamgmt interfaces
pds_vdpa: subscribe to the pds_core events
pds_vdpa: pds_vdps.rst and Kconfig

Simon Horman (1):
virtio: Add missing documentation for structure fields

Xianting Tian (4):
virtio-crypto: call scheduler when we free unused buffs
virtio-console: call scheduler when we free unused buffs
virtio_bt: call scheduler when we free unused buffs
vhost: Make parameter name match of vhost_get_vq_desc()

Zhu Lingshan (8):
vDPA/ifcvf: virt queue ops take immediate actions
vDPA/ifcvf: get_driver_features from virtio registers
vDPA/ifcvf: retire ifcvf_start_datapath and ifcvf_add_status
vDPA/ifcvf: synchronize irqs in the reset routine
vDPA/ifcvf: a vendor driver should not set _CONFIG_S_FAILED
vDPA/ifcvf: dynamic allocate vq data stores
vDPA/ifcvf: detect and report max allowed vq size
vDPA/ifcvf: implement new accessors for vq_state

.../device_drivers/ethernet/amd/pds_vdpa.rst | 85 +++
.../networking/device_drivers/ethernet/index.rst | 1 +
MAINTAINERS | 4 +
drivers/bluetooth/virtio_bt.c | 1 +
drivers/char/virtio_console.c | 1 +
drivers/crypto/virtio/virtio_crypto_core.c | 1 +
drivers/vdpa/Kconfig | 10 +
drivers/vdpa/Makefile | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 215 +++---
drivers/vdpa/ifcvf/ifcvf_base.h | 48 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 108 +--
drivers/vdpa/mlx5/net/mlx5_vnet.c | 165 ++++-
drivers/vdpa/mlx5/net/mlx5_vnet.h | 15 +
drivers/vdpa/pds/Makefile | 10 +
drivers/vdpa/pds/aux_drv.c | 140 ++++
drivers/vdpa/pds/aux_drv.h | 26 +
drivers/vdpa/pds/cmds.c | 185 +++++
drivers/vdpa/pds/cmds.h | 18 +
drivers/vdpa/pds/debugfs.c | 289 ++++++++
drivers/vdpa/pds/debugfs.h | 17 +
drivers/vdpa/pds/vdpa_dev.c | 769 +++++++++++++++++++++
drivers/vdpa/pds/vdpa_dev.h | 49 ++
drivers/vdpa/solidrun/snet_ctrl.c | 6 +
drivers/vdpa/solidrun/snet_hwmon.c | 2 +-
drivers/vdpa/solidrun/snet_main.c | 15 +
drivers/vdpa/solidrun/snet_vdpa.h | 1 +
drivers/vdpa/vdpa_user/vduse_dev.c | 6 +-
drivers/vhost/net.c | 8 +-
drivers/vhost/scsi.c | 103 +--
drivers/vhost/vhost.c | 425 ++++++++++--
drivers/vhost/vhost.h | 24 +-
drivers/vhost/vsock.c | 4 +-
drivers/virtio/virtio_pci_common.h | 7 +-
drivers/virtio/virtio_pci_modern_dev.c | 33 +-
drivers/virtio/virtio_vdpa.c | 4 +-
include/linux/pds/pds_adminq.h | 247 +++++++
include/linux/pds/pds_common.h | 21 +-
include/linux/virtio.h | 5 +-
include/linux/virtio_pci_modern.h | 6 +
include/uapi/linux/vhost.h | 31 +
include/uapi/linux/vhost_types.h | 16 +
tools/virtio/Makefile | 13 +-
42 files changed, 2777 insertions(+), 358 deletions(-)
create mode 100644 Documentation/networking/device_drivers/ethernet/amd/pds_vdpa.rst
create mode 100644 drivers/vdpa/pds/Makefile
create mode 100644 drivers/vdpa/pds/aux_drv.c
create mode 100644 drivers/vdpa/pds/aux_drv.h
create mode 100644 drivers/vdpa/pds/cmds.c
create mode 100644 drivers/vdpa/pds/cmds.h
create mode 100644 drivers/vdpa/pds/debugfs.c
create mode 100644 drivers/vdpa/pds/debugfs.h
create mode 100644 drivers/vdpa/pds/vdpa_dev.c
create mode 100644 drivers/vdpa/pds/vdpa_dev.h