Subject: Re: [GIT PULL] virtio: features, fixes, cleanups

From: "Michael S. Tsirkin" <[email-masked]>
Date: Thu, 18 Jul 2024 15:31:48 -0400

On Wed, Jul 17, 2024 at 05:30:34AM -0400, Michael S. Tsirkin wrote:
> This is relatively small.
> I had to drop a buggy commit in the middle so some hashes
> changed from what was in linux-next.
> Deferred admin vq scalability fix to after rc2 as a minor issue was
> found with it recently, but the infrastructure for it
> is there now.

BTW I forgot to mention a merge conflict with char-misc
that is also adding an entry in MAINTAINERS.
It's trivial to resolve.

> The following changes since commit e9d22f7a6655941fc8b2b942ed354ec780936b3e:
> 
>   Merge tag 'linux_kselftest-fixes-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest (2024-07-02 13:53:24 -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 6c85d6b653caeba2ef982925703cbb4f2b3b3163:
> 
>   virtio: rename virtio_find_vqs_info() to virtio_find_vqs() (2024-07-17 05:20:58 -0400)
> 
> ----------------------------------------------------------------
> virtio: features, fixes, cleanups
> 
> Several new features here:
> 
> - Virtio find vqs API has been reworked
>   (required to fix the scalability issue we have with
>    adminq, which I hope to merge later in the cycle)
> 
> - vDPA driver for Marvell OCTEON
> 
> - virtio fs performance improvement
> 
> - mlx5 migration speedups
> 
> Fixes, cleanups all over the place.
> 
> Signed-off-by: Michael S. Tsirkin <[email-masked]>
> 
> ----------------------------------------------------------------
> Denis Arefev (1):
>       net: missing check virtio
> 
> Dragos Tatulea (24):
>       vdpa/mlx5: Clarify meaning thorough function rename
>       vdpa/mlx5: Make setup/teardown_vq_resources() symmetrical
>       vdpa/mlx5: Drop redundant code
>       vdpa/mlx5: Drop redundant check in teardown_virtqueues()
>       vdpa/mlx5: Iterate over active VQs during suspend/resume
>       vdpa/mlx5: Remove duplicate suspend code
>       vdpa/mlx5: Initialize and reset device with one queue pair
>       vdpa/mlx5: Clear and reinitialize software VQ data on reset
>       vdpa/mlx5: Rename init_mvqs
>       vdpa/mlx5: Add support for modifying the virtio_version VQ field
>       vdpa/mlx5: Add support for modifying the VQ features field
>       vdpa/mlx5: Set an initial size on the VQ
>       vdpa/mlx5: Start off rqt_size with max VQPs
>       vdpa/mlx5: Set mkey modified flags on all VQs
>       vdpa/mlx5: Allow creation of blank VQs
>       vdpa/mlx5: Accept Init -> Ready VQ transition in resume_vq()
>       vdpa/mlx5: Add error code for suspend/resume VQ
>       vdpa/mlx5: Consolidate all VQ modify to Ready to use resume_vq()
>       vdpa/mlx5: Forward error in suspend/resume device
>       vdpa/mlx5: Use suspend/resume during VQP change
>       vdpa/mlx5: Pre-create hardware VQs at vdpa .dev_add time
>       vdpa/mlx5: Re-create HW VQs under certain conditions
>       vdpa/mlx5: Don't reset VQs more than necessary
>       vdpa/mlx5: Don't enable non-active VQs in .set_vq_ready()
> 
> Jeff Johnson (3):
>       vringh: add MODULE_DESCRIPTION()
>       virtio: add missing MODULE_DESCRIPTION() macros
>       vDPA: add missing MODULE_DESCRIPTION() macros
> 
> 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()
> 
> Michael S. Tsirkin (2):
>       vhost/vsock: always initialize seqpacket_allow
>       vhost: move smp_rmb() into vhost_get_avail_idx()
> 
> Peter-Jan Gootzen (2):
>       virtio-fs: let -ENOMEM bubble up or burst gently
>       virtio-fs: improved request latencies when Virtio queue is full
> 
> Srujana Challa (1):
>       virtio: vdpa: vDPA driver for Marvell OCTEON DPU devices
> 
> Xuan Zhuo (1):
>       virtio_ring: fix KMSAN error for premapped mode
> 
> Yunseong Kim (1):
>       tools/virtio: creating pipe assertion in vringh_test
> 
> Zhu Lingshan (1):
>       MAINTAINERS: Change lingshan's email to kernel.org
> 
> zhenwei pi (1):
>       virtio_balloon: separate vm events into a function
> 
>  MAINTAINERS                                   |   7 +-
>  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/vdpa/Kconfig                          |  11 +
>  drivers/vdpa/Makefile                         |   1 +
>  drivers/vdpa/ifcvf/ifcvf_main.c               |   1 +
>  drivers/vdpa/mlx5/net/mlx5_vnet.c             | 429 ++++++++-----
>  drivers/vdpa/mlx5/net/mlx5_vnet.h             |   1 +
>  drivers/vdpa/octeon_ep/Makefile               |   4 +
>  drivers/vdpa/octeon_ep/octep_vdpa.h           |  94 +++
>  drivers/vdpa/octeon_ep/octep_vdpa_hw.c        | 517 ++++++++++++++++
>  drivers/vdpa/octeon_ep/octep_vdpa_main.c      | 857 ++++++++++++++++++++++++++
>  drivers/vdpa/vdpa.c                           |   1 +
>  drivers/vhost/vhost.c                         | 105 ++--
>  drivers/vhost/vringh.c                        |   1 +
>  drivers/vhost/vsock.c                         |   4 +-
>  drivers/virtio/virtio.c                       |   1 +
>  drivers/virtio/virtio_balloon.c               |  75 ++-
>  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_ring.c                  |   5 +-
>  drivers/virtio/virtio_vdpa.c                  |  13 +-
>  fs/fuse/virtio_fs.c                           |  62 +-
>  include/linux/mlx5/mlx5_ifc_vdpa.h            |   2 +
>  include/linux/virtio_config.h                 |  64 +-
>  include/linux/virtio_net.h                    |  11 +
>  net/vmw_vsock/virtio_transport.c              |  16 +-
>  sound/virtio/virtio_card.c                    |  23 +-
>  tools/virtio/vringh_test.c                    |   9 +-
>  48 files changed, 2145 insertions(+), 543 deletions(-)
>  create mode 100644 drivers/vdpa/octeon_ep/Makefile
>  create mode 100644 drivers/vdpa/octeon_ep/octep_vdpa.h
>  create mode 100644 drivers/vdpa/octeon_ep/octep_vdpa_hw.c
>  create mode 100644 drivers/vdpa/octeon_ep/octep_vdpa_main.c