On Wed, Aug 25, 2021 at 1:01 AM Thomas Monjalon wrote: > > +1, I support this idea. > > 12/08/2021 14:43, Dmitry Kozlyuk: > > We propose to add a mempool flag MEMPOOL_F_NON_IO to mark pools of objects that > > will not be used with device IO and their memory for DMA. This will allow > > saving IOMMU entries by not mapping the memory used by such pools. +1 > > > > Immediate use case is MLX5 PMD. The hardware has its internal IOMMU where PMD > > registers the memory. On the data path, PMD translates VA into a key consumed > > by the device IOMMU. It is impractical for the PMD to register all allocated > > memory because of increased lookup cost both in HW and SW. Most often mbuf > > memory comes from mempools, so if PMD tracked them, it could almost always have > > mbuf memory registered before an mbuf hits the PMD. The new flag would prevent > > the PMD for registering memory that will never need it. Tracking the mempools > > and dealing with them in MLX5 PMD is the next step after the proposed change. > > > > A possible use case is IOMMU management in EAL. Mempool could translate the new > > flag to a hint to the memory manager, which would use it to skip adding IOMMU > > entries in some cases. > > > > It was considered to add MEMPOOL_F_IO with the opposite meaning. It would be > > automatically set for pktmbuf pools; user would be able to set it for other > > pools. However, current assumption is that all DPDK memory is DMA-able, > > it is controversial to have a flag asserting this fact. +1 > >