-----David Marchand <david.march...@redhat.com> wrote: ----- >To: Takeshi Yoshimura <t...@jp.ibm.com> >From: David Marchand <david.march...@redhat.com> >Date: 07/31/2019 06:29PM >Cc: dev <dev@dpdk.org> >Subject: [EXTERNAL] Re: [dpdk-dev] [PATCH] eal: forcing IOVA as PA in >ppc > >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. > >What is the "ppc driver" you are referring to? >Do you mean the vfio implementation for ppc? > >> >> 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. > >Sorry, I am confused. >Is VA mode not working at all? or is it a performance issue? > > >-- >David Marchand > >
Ah, I overlooked your first question. The "ppc driver" is in drivers/bus/pci/linux/pci.c. In pci.c, pci_one_device_iommu_support_va() always returns false in ppc. so, the driver does not allow VA mode in ppc. This return value is passed to rte_pci_probe_one_driver() in drivers/bus/pci/pci_common.c. And the error log appeared like: EAL: PCI device 0000:01:00.0 on NUMA socket 0 EAL: probe driver: 144d:a822 spdk_nvme EAL: Expecting 'PA' IOVA mode but current mode is 'VA', not initializing