[dpdk-dev] [PATCH] eal: forcing IOVA as PA in ppc

Takeshi T Yoshimura TYOS at jp.ibm.com
Wed Jul 31 12:44:12 CEST 2019


-----David Marchand <david.marchand at redhat.com> wrote: -----

>To: Takeshi Yoshimura <tyos at jp.ibm.com>
>From: David Marchand <david.marchand at redhat.com>
>Date: 07/31/2019 06:29PM
>Cc: dev <dev at 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 <tyos at 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



More information about the dev mailing list