]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit22699ff2c34b8466c2225caa22e68cbe2480a8f8
tree1322d01102b150a8c04d2815fee1935efc951b76
parentf9213e8a05b1b5dcf2b18186e3d11effc88682fe
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]