Subject: SMMU performance

From: Russell King - ARM Linux admin <[email-masked]>
Date: Mon, 30 Sep 2019 12:00:47 +0100

Hi,

While using iperf on a platform using the ARM SMMU (v2), I notice the
following behaviour on v5.3 with Will's iommu patch set merged, kernel
lock debugging disabled.

With iommu.passthrough=1, three consecutive runs:
[  3]  0.0-10.0 sec  4.51 GBytes  3.87 Gbits/sec
[  3]  0.0-10.0 sec  4.53 GBytes  3.89 Gbits/sec
[  3]  0.0-10.0 sec  4.49 GBytes  3.86 Gbits/sec

With iommu.passthrough=0:
[  3]  0.0-10.0 sec  1.77 GBytes  1.52 Gbits/sec
[  3]  0.0-10.0 sec  1.82 GBytes  1.56 Gbits/sec
[  3]  0.0-10.0 sec  1.69 GBytes  1.45 Gbits/sec

Running perf record -a -g ... followed by perf report --no-children
shows:

-   15.72%  iperf            [kernel.vmlinux]    [k] _raw_spin_unlock_irqrestor
   - _raw_spin_unlock_irqrestore
      - 8.95% arm_smmu_tlb_sync_context
           arm_smmu_iotlb_sync
         - __iommu_dma_unmap
            + 4.54% iommu_dma_unmap_sg
            + 4.41% iommu_dma_unmap_page
      - 2.92% alloc_iova_fast
         - iommu_dma_alloc_iova.isra.26
            + 1.54% iommu_dma_map_sg
            + 1.38% __iommu_dma_map
      - 2.64% free_iova_fast
           iommu_dma_free_iova
         - __iommu_dma_unmap
            + 1.35% iommu_dma_unmap_sg
            + 1.29% iommu_dma_unmap_page

which seems to be pointing to the SMMU code as a bottleneck.

Will suggests that his iommu changes (in his for-joerg/arm-smmu/updates
branch), allows IOMMU driver modifications that may have a beneficial
effect.  Any thoughts?

Thanks.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel