sparc: Make sparc64 use scalable lib/iommu-common.c functions
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Thu, 9 Apr 2015 19:33:31 +0000 (15:33 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sat, 18 Apr 2015 19:32:59 +0000 (12:32 -0700)
commitbb620c3d3925aec0ed4f21010c86df08ec18a8c7
treef3adfa12c95f9aa6dd844fd47fd486332bbd0a2e
parentff7d37a502022149655c18035b99a53391be0383
sparc: Make sparc64 use scalable lib/iommu-common.c functions

In iperf experiments running linux as the Tx side (TCP client) with
10 threads results in a severe performance drop when TSO is disabled,
indicating a weakness in the software that can be avoided by using
the scalable IOMMU arena DMA allocation.

Baseline numbers before this patch:
   with default settings (TSO enabled) :    9-9.5 Gbps
   Disable TSO using ethtool- drops badly:  2-3 Gbps.

After this patch, iperf client with 10 threads, can give a
throughput of at least 8.5 Gbps, even when TSO is disabled.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/iommu_64.h
arch/sparc/kernel/iommu.c
arch/sparc/kernel/iommu_common.h
arch/sparc/kernel/pci_sun4v.c