-----Original Message----- > Date: Wed, 1 Nov 2017 01:07:26 +0000 > From: Ferruh Yigit <ferruh.yi...@intel.com> > To: Thomas Monjalon <tho...@monjalon.net>, Bruce Richardson > <bruce.richard...@intel.com>, Sergio Gonzalez Monroy > <sergio.gonzalez.mon...@intel.com> > CC: dev@dpdk.org, Ferruh Yigit <ferruh.yi...@intel.com>, Jianfeng Tan > <jianfeng....@intel.com>, Santosh Shukla > <santosh.shu...@caviumnetworks.com> > Subject: [dpdk-dev] [PATCH] eal: disable IOVA mode detection by default > X-Mailer: git-send-email 2.13.6 > > Fix kernel crash with KNI because KNI requires physical addresses.
The actual fix would be to make KNI IOMMU aware based on the DPDK mode. ie. On slow path, /* Get iommu domain for iova to physical addr conversion */ if (rte_eal_iova_mode() == RTE_IOVA_VA) kni->iommu_domain = iommu_get_domain_for_dev(dev); else kni->iommu_domain = NULL; On fast path, static inline u64 kni_iova_to_phys(struct ... *kni, dma_addr_t dma_addr) { /* Translation is installed only when IOMMU is present */ if (kni->iommu_domain) return iommu_iova_to_phys(kni->iommu_domain, dma_addr); return dma_addr; } > > A config option introduced to disable IOVA mode detection and to set it > to physical address by default. Disabling config option will enable IOVA > mode detection. > > When there is no intension to use KNI, it is safe to enable detection. > > Config option disable IOVA mode detection by default to be sure only who > is aware of result enable it. > > Fixes: 72d013644bd6 ("mem: honor IOVA mode in malloc virt2phy") > > Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> > --- > Cc: Jianfeng Tan <jianfeng....@intel.com> > Cc: Santosh Shukla <santosh.shu...@caviumnetworks.com> > Cc: Thomas Monjalon <tho...@monjalon.net> > --- > config/common_base | 5 +++++ > lib/librte_eal/bsdapp/eal/eal.c | 4 ++++ > lib/librte_eal/linuxapp/eal/eal.c | 4 ++++ > 3 files changed, 13 insertions(+) > > diff --git a/config/common_base b/config/common_base > index 82ee75456..903e7685b 100644 > --- a/config/common_base > +++ b/config/common_base > @@ -107,6 +107,11 @@ CONFIG_RTE_MALLOC_DEBUG=n > CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n > > # > +# Disabling PHYS_IOVA may crash kernel for KNI, use with caution > +# > +CONFIG_RTE_EAL_USE_PHYS_IOVA=y Defeat the purpose of all dynamic probing scheme. Either we can fix the KNI or revert the following patch for this release. http://dpdk.org/commit/f37dfab2