[PATCH 0/6] Control VQ is the way net devices use to send changes to the device state, like

Eugenio Pérez posted 6 patches 1 year, 10 months ago
Failed in applying to current master (apply log)
include/hw/virtio/vhost-vdpa.h               |   8 +-
include/net/vhost-vdpa.h                     |   1 +
include/standard-headers/asm-x86/bootparam.h |   1 +
include/standard-headers/drm/drm_fourcc.h    |  69 ++++++++
include/standard-headers/linux/ethtool.h     |   1 +
include/standard-headers/linux/input.h       |   1 +
include/standard-headers/linux/pci_regs.h    |   1 +
include/standard-headers/linux/vhost_types.h |  11 +-
include/standard-headers/linux/virtio_ids.h  |  14 +-
linux-headers/asm-arm64/kvm.h                |  27 +++
linux-headers/asm-generic/unistd.h           |   4 +-
linux-headers/asm-riscv/kvm.h                |  20 +++
linux-headers/asm-riscv/unistd.h             |   3 +-
linux-headers/asm-x86/kvm.h                  |  11 +-
linux-headers/asm-x86/mman.h                 |  14 --
linux-headers/linux/kvm.h                    |  54 +++++-
linux-headers/linux/userfaultfd.h            |  10 +-
linux-headers/linux/vfio.h                   |   4 +-
linux-headers/linux/vhost.h                  |  26 ++-
hw/net/vhost_net.c                           |   4 +
hw/virtio/vhost-vdpa.c                       |  64 +++----
net/vhost-vdpa.c                             | 166 ++++++++++++++++++-
hw/virtio/trace-events                       |   4 +-
23 files changed, 434 insertions(+), 84 deletions(-)
[PATCH 0/6] Control VQ is the way net devices use to send changes to the device state, like
Posted by Eugenio Pérez 1 year, 10 months ago
QEMU needs to intercept this queue so it can track these changes and is able to
migrate the device. It can do it from 1576dbb5bbc4 ("vdpa: Add x-svq to
NetdevVhostVDPAOptions"). However, to enable x-svq implies to shadow all VirtIO
device's virtqueues, which will damage performance.

This series adds address space isolation, so the device and the guest
communicate directly with them (passthrough) and CVQ communication is split in
two: The guest communicates with QEMU and QEMU forwards the commands to the
device.

This series is based on [1], although each one of them adds a feature on
isolation and could be merged individually once conflicts are solved.

Comments are welcome. Thanks!

[1] https://lists.nongnu.org/archive/html/qemu-devel/2022-07/msg03101.html

Eugenio Pérez (6):
  linux-headers: Update kernel headers to v5.19-rc1
  vdpa: Use v->shadow_vqs_enabled in vhost_vdpa_svqs_start
  vdpa: Allocate SVQ unconditionally
  vdpa: Add asid parameter to vhost_vdpa_dma_map/unmap
  vdpa: Store x-svq parameter in VhostVDPAState
  vdpa: Always start CVQ in SVQ mode

 include/hw/virtio/vhost-vdpa.h               |   8 +-
 include/net/vhost-vdpa.h                     |   1 +
 include/standard-headers/asm-x86/bootparam.h |   1 +
 include/standard-headers/drm/drm_fourcc.h    |  69 ++++++++
 include/standard-headers/linux/ethtool.h     |   1 +
 include/standard-headers/linux/input.h       |   1 +
 include/standard-headers/linux/pci_regs.h    |   1 +
 include/standard-headers/linux/vhost_types.h |  11 +-
 include/standard-headers/linux/virtio_ids.h  |  14 +-
 linux-headers/asm-arm64/kvm.h                |  27 +++
 linux-headers/asm-generic/unistd.h           |   4 +-
 linux-headers/asm-riscv/kvm.h                |  20 +++
 linux-headers/asm-riscv/unistd.h             |   3 +-
 linux-headers/asm-x86/kvm.h                  |  11 +-
 linux-headers/asm-x86/mman.h                 |  14 --
 linux-headers/linux/kvm.h                    |  54 +++++-
 linux-headers/linux/userfaultfd.h            |  10 +-
 linux-headers/linux/vfio.h                   |   4 +-
 linux-headers/linux/vhost.h                  |  26 ++-
 hw/net/vhost_net.c                           |   4 +
 hw/virtio/vhost-vdpa.c                       |  64 +++----
 net/vhost-vdpa.c                             | 166 ++++++++++++++++++-
 hw/virtio/trace-events                       |   4 +-
 23 files changed, 434 insertions(+), 84 deletions(-)

-- 
2.31.1

Re: [PATCH 0/6] Control VQ is the way net devices use to send changes to the device state, like
Posted by Eugenio Perez Martin 1 year, 10 months ago
On Thu, Jul 21, 2022 at 6:53 PM Eugenio Pérez <eperezma@redhat.com> wrote:
>
>
> QEMU needs to intercept this queue so it can track these changes and is able to
> migrate the device. It can do it from 1576dbb5bbc4 ("vdpa: Add x-svq to
> NetdevVhostVDPAOptions"). However, to enable x-svq implies to shadow all VirtIO
> device's virtqueues, which will damage performance.
>
> This series adds address space isolation, so the device and the guest
> communicate directly with them (passthrough) and CVQ communication is split in
> two: The guest communicates with QEMU and QEMU forwards the commands to the
> device.
>
> This series is based on [1], although each one of them adds a feature on
> isolation and could be merged individually once conflicts are solved.
>
> Comments are welcome. Thanks!
>
> [1] https://lists.nongnu.org/archive/html/qemu-devel/2022-07/msg03101.html
>

The title of this series should be "vDPA net ASID support" or
something like that, I forgot that first line by mistake.

Should I resend it or can it stay like that?

Thanks!