iommu/dma: Plumb in the per-CPU IOVA caches
authorRobin Murphy <robin.murphy@arm.com>
Fri, 31 Mar 2017 14:46:07 +0000 (15:46 +0100)
committerJoerg Roedel <jroedel@suse.de>
Mon, 3 Apr 2017 10:45:03 +0000 (12:45 +0200)
commitbb65a64c7285e7105c1a6c8a33b37770343a4e96
tree2efc271de7785fa95fa91c6385c6fa56a76ce7be
parenta44e6657585b15eeebf5681bfcc7ce0b002429c2
iommu/dma: Plumb in the per-CPU IOVA caches

With IOVA allocation suitably tidied up, we are finally free to opt in
to the per-CPU caching mechanism. The caching alone can provide a modest
improvement over walking the rbtree for weedier systems (iperf3 shows
~10% more ethernet throughput on an ARM Juno r1 constrained to a single
650MHz Cortex-A53), but the real gain will be in sidestepping the rbtree
lock contention which larger ARM-based systems with lots of parallel I/O
are starting to feel the pain of.

Reviewed-by: Nate Watterson <nwatters@codeaurora.org>
Tested-by: Nate Watterson <nwatters@codeaurora.org>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/dma-iommu.c