sparc: Break up monolithic iommu table/lock into finer graularity pools and lock
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Fri, 13 Mar 2015 00:02:35 +0000 (20:02 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Apr 2015 19:44:55 +0000 (12:44 -0700)
commit10b88a4b17d31a7409494b179dcb76e7ab2fcaea
tree1322d01102b150a8c04d2815fee1935efc951b76
parent497a5df7bf6ffd136ae21c49d1a01292930d7ca2
sparc: Break up monolithic iommu table/lock into finer graularity pools and lock

Investigation of multithreaded iperf experiments on an ethernet
interface show the iommu->lock as the hottest lock identified by
lockstat, with something of the order of  21M contentions out of
27M acquisitions, and an average wait time of 26 us for the lock.
This is not efficient. A more scalable design is to follow the ppc
model, where the iommu_table has multiple pools, each stretching
over a segment of the map, and with a separate lock for each pool.
This model allows for better parallelization of the iommu map search.

This patch adds the iommu range alloc/free function infrastructure.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/iommu-common.h [new file with mode: 0644]
lib/Makefile
lib/iommu-common.c [new file with mode: 0644]
This page took 0.025841 seconds and 5 git commands to generate.