Re: [PATCH] vfio: allow to map other memory regions
From: Wodkowski, PawelX <hidden>
Date: 2017-06-28 09:54:35
-----Original Message----- From: Thomas Monjalon [mailto:thomas@monjalon.net] Sent: Monday, June 19, 2017 11:04 PM To: Wodkowski, PawelX <redacted> Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH] vfio: allow to map other memory regions Hi, Some comments below 24/05/2017 13:17, Pawel Wodkowski:quoted
Currently it is not possible to use memory that is not owned by DPDK to perform DMA. This scenarion might be used in vhost applications (like SPDK) where guest send its own memory table. To fill this gap provide API to allow registering arbitrary address in VFIO container. Signed-off-by: Pawel Wodkowski <redacted> --- lib/librte_eal/linuxapp/eal/Makefile | 3 + lib/librte_eal/linuxapp/eal/eal_vfio.c | 142+++++++++++++++++++++---quoted
lib/librte_eal/linuxapp/eal/eal_vfio.h | 10 ++ lib/librte_eal/linuxapp/eal/include/rte_iommu.h | 78 +++++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 8 ++ 5 files changed, 224 insertions(+), 17 deletions(-) create mode 100644 lib/librte_eal/linuxapp/eal/include/rte_iommu.hVFIO is not referenced in the doxygen of these functions. Could we use this API for something else than VFIO?
This is for any IOMMU hw/module/driver used in host which require special care about memory regions used for DMA. It is not restricted to VFIO even though only VFIO is implemented.
Any API should be declared in common directory, even if it is not implemented for FreeBSD (returning -ENOTSUP).
I think those function should be NOP for FreeBSD (like RTE_VFIO_NOIOMMU do) or be conditionally compiled/included (like it is now). I decide to take second way. Do you think that I should move rte_iommu.h to common directory and use #ifdef there? Pawel