[dpdk-dev] [PATCH 0/4] Add external contiguous memory support to Virtio-user
Maxime Coquelin
maxime.coquelin at redhat.com
Fri Dec 13 15:13:18 CET 2019
Somme applications/frameworks using DPDK allocate their own memory
for its buffers. This is the case of Seastar, and also VPP.
It is currently not possible to use Virtio-user PMD with these
applications because Virtio-user requires file descriptor for this
memory to be shared with the vhost-user backend (vDPA in our case [0]).
This series introduces a new API in EAL to register external memory
that is contiguous in both the VA and the IOVA space.
It also enables VDEVs to implement the DMA map/unmap callback, and
implement it in Virtio-user PMD.
Please note that extmem unit tests are missing. I'm working on it
and it will be in v2. Just share this v1 for early reviews.
Maxime Coquelin (4):
eal: add new API to register contiguous external memory
eal: allow getting memory segment FD with external memory
bus/vdev: add DMA mapping supprt
net/virtio: add DMA mapping callback to virtio-user
drivers/bus/vdev/rte_bus_vdev.h | 24 +++++
drivers/bus/vdev/vdev.c | 50 +++++++++++
.../net/virtio/virtio_user/virtio_user_dev.c | 10 +--
.../net/virtio/virtio_user/virtio_user_dev.h | 3 +
drivers/net/virtio/virtio_user_ethdev.c | 58 +++++++++++++
lib/librte_eal/common/eal_common_memory.c | 87 ++++++++++++++++---
lib/librte_eal/common/include/rte_memory.h | 46 ++++++++++
lib/librte_eal/common/malloc_heap.c | 17 +++-
lib/librte_eal/common/malloc_heap.h | 2 +-
lib/librte_eal/common/rte_malloc.c | 2 +-
lib/librte_eal/rte_eal_version.map | 3 +
11 files changed, 278 insertions(+), 24 deletions(-)
--
2.21.0
More information about the dev
mailing list