On Wednesday 01 November 2017 04:01 PM, Thomas Monjalon wrote: > 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.
IMO, we could introduce a rule for kni in iova autodetection(/for linux case) such away that: if cat /proc/modules has rte_kni entry then use default iova=pa mode. so +1 to your proposition Thomas. > Opinions?