On Fri, Jun 02, 2017 at 09:54:46AM +0530, santosh wrote: > Ping? > > On Wednesday 24 May 2017 09:41 PM, Santosh Shukla wrote: > > > Some NPU hardware like OCTEONTX follows push model to get > > the packet from the pktio device. Where packet allocation > > and freeing done by the HW. Since HW can operate only on > > IOVA with help of SMMU/IOMMU, When packet receives from the > > Ethernet device, It is the IOVA address(which is PA in existing scheme). > > > > Mapping IOVA as PA is expensive on those HW, where every > > packet needs to be converted to VA from PA/IOVA. > > > > This patch proposes the scheme where the user can set IOVA > > as VA by using an eal command line argument. That helps to > > avoid costly lookup for VA in SW by leveraging the SMMU > > translation feature. > > > > Signed-off-by: Santosh Shukla <santosh.shu...@caviumnetworks.com> > > --- Hi,
I agree this is a problem that needs to be solved, but this doesn't look like a particularly future-proofed solution. Given that we should use the IOMMU on as many platforms as possible for protection, we probably need to find an automatic way for DPDK to use IO addresses correctly. Is this therefore better done as part of the VFIO and UIO-specific code in EAL - as that is the part that knows how the memory mapping is done, and in the VFIO case, what address ranges were programmed in. The mempool driver was something else I considered but it is probably too high a level to implement this. So, in short, I don't particularly like this solution, but I could live with it as a short-term option. Longer term though, I think we need a better way to support using IO addresses rather than physical addresses - I just don't know what that would look like or where it would sit/live. /Bruce