powerpc/iommu: Reduce spinlock coverage in iommu_alloc and iommu_free
authorAnton Blanchard <anton@samba.org>
Sun, 3 Jun 2012 19:43:02 +0000 (19:43 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 3 Jul 2012 04:14:47 +0000 (14:14 +1000)
commit0e4bc95d87394364f408627067238453830bdbf3
treeb5dbbb86a43e9fb0db8a865b770da5fad07c89c3
parentc1703e85a7b20ffcefd5360e2542460737ecc15c
powerpc/iommu: Reduce spinlock coverage in iommu_alloc and iommu_free

We currently hold the IOMMU spinlock around tce_build and tce_flush.
This causes our spinlock hold times to be much higher than required
and can impact multiqueue adapters.

This patch moves tce_build and tce_flush outside of the lock in
iommu_alloc, and tce_flush outside of the lock in iommu_free.

Some performance numbers were obtained with a Chelsio T3 adapter on
two POWER7 boxes, running a 100 session TCP round robin test.

Performance improved 32% with this patch applied.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/iommu.c