01/11/2017 02:07, Ferruh Yigit: > Fix kernel crash with KNI because KNI requires physical addresses. > > 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> > --- > +#ifdef RTE_EAL_USE_PHYS_IOVA > + rte_eal_get_configuration()->iova_mode = RTE_IOVA_PA; > +#else > /* autodetect the iova mapping mode (default is iova_pa) */ > rte_eal_get_configuration()->iova_mode = rte_bus_get_iommu_class(); > +#endif
I don't understand why you are adding a compile-time option. I think it should be an EAL option --use-phys-addr. The opposite option may be required to force VA: --use-virt-addr. And if there is no option given, we fallback to autodetect. We can improve the autodetect by checking whether rte_kni.ko is loaded. Opinions?