Hello Anatoly, On Wed, Jul 31, 2019 at 5:36 AM Takeshi Yoshimura <t...@jp.ibm.com> wrote: > > Commit b76fafb174d2 ("eal: fix IOVA mode selection as VA for PCI > drivers") breaks ppc apps with no IOVA configs (or RTE_IOVA_DC) > because of the inconsistency of user's request and the result of > device capability for IOVA mode. I updated the code to force IOVA as > PA in ppc as before because current ppc driver does not support VA > mode. > > Theoretically, ppc can support VA mode, but I suspect that ppc with > VA mode may have performance issues to create a big DMA window > (VA often uses higher addresses than PA). So, I didn't change the > code to check device capability in ppc. > > Signed-off-by: Takeshi Yoshimura <t...@jp.ibm.com> > --- > lib/librte_eal/linux/eal/eal.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c > index 946222ccd..db2dec922 100644 > --- a/lib/librte_eal/linux/eal/eal.c > +++ b/lib/librte_eal/linux/eal/eal.c > @@ -1121,6 +1121,12 @@ rte_eal_init(int argc, char **argv) > RTE_LOG(DEBUG, EAL, "KNI can not work since > physical addresses are unavailable\n"); > } > } > +#endif > +#ifdef RTE_ARCH_PPC_64 > + if (iova_mode == RTE_IOVA_VA) { > + iova_mode = RTE_IOVA_PA; > + RTE_LOG(WARNING, EAL, "Forcing IOVA as 'PA' because > PPC uses PA mode.\n"); > + } > #endif > rte_eal_get_configuration()->iova_mode = iova_mode; > } else { > -- > 2.17.1 >
Afaiu, this problem is linked to a specific iommu implementation. Does it make sense to introduce a check "iommu_support_va" in eal, a bit like what we have in the pci bus ? -- David Marchand