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