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

Reply via email to