[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/6] Control VQ is the way net devices use to send changes to the
From: |
Eugenio Pérez |
Subject: |
[PATCH 0/6] Control VQ is the way net devices use to send changes to the device state, like |
Date: |
Thu, 21 Jul 2022 18:43:25 +0200 |
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
- [PATCH 0/6] Control VQ is the way net devices use to send changes to the device state, like,
Eugenio Pérez <=
- [PATCH 1/6] linux-headers: Update kernel headers to v5.19-rc1, Eugenio Pérez, 2022/07/21
- [PATCH 2/6] vdpa: Use v->shadow_vqs_enabled in vhost_vdpa_svqs_start, Eugenio Pérez, 2022/07/21
- [PATCH 4/6] vdpa: Add asid parameter to vhost_vdpa_dma_map/unmap, Eugenio Pérez, 2022/07/21
- [PATCH 5/6] vdpa: Store x-svq parameter in VhostVDPAState, Eugenio Pérez, 2022/07/21
- [PATCH 3/6] vdpa: Allocate SVQ unconditionally, Eugenio Pérez, 2022/07/21
- [PATCH 6/6] vdpa: Always start CVQ in SVQ mode, Eugenio Pérez, 2022/07/21
- Re: [PATCH 0/6] Control VQ is the way net devices use to send changes to the device state, like, Eugenio Perez Martin, 2022/07/21