[dpdk-dev] [PATCH] bus/pci: support iova=va on PowerNV systems

David Christensen drc at linux.vnet.ibm.com
Mon Mar 16 17:09:58 CET 2020


>> Bare metal PowerNV systems include a DPDK supported IOMMU that allows
>> IOVA=VA support. Test for the platform type and report virtual address
>> support if running on a PowerNV system.
...
>>
>> +
>> +       char *line = 0;
> 
> Nit: NULL

Fixed.

>> +       /* Check for a PowerNV platform */
>> +       while (getline(&line, &len, fp) != -1) {
> 
>  From here, you leak line.
> 
Fixed.

> 
> Nit, to avoid multiple level of indent, how about invert the check:
> 
> if (strstr(line, "platform") == NULL)
>      continue;

Fixed.

>> +                       if (strstr(line, "PowerNV") != NULL) {
>> +                               RTE_LOG(DEBUG, EAL, "Running on a PowerNV system\n");
> 
> Not really helpful, it does not indicate that this system iommu supports VA.

This is the advice given by the kernel developer who maintains the IOMMU 
code for PPC.  There's nothing in the /sys filesystem that describes the 
IOMMU like there is in x86_64 platforms.  All POWER systems supported by 
DPDK have an IOMMU (you can't turn it off). This is true for both bare 
metal systems like PowerNV (Power Non-Virtualized) as well as 
virtualized systems like QEMU/KVM and PowerVM LPARs.  In the case of 
virtualized systems the IOMMU has different capabilities and is not 
currently supported in DPDK.  Thus, if I know the platform I'm running 
on then I know the IOMMU is present and enabled.

Dave


More information about the dev mailing list