On 11/25/2015 09:40 AM, Woodhouse, David wrote:
On Wed, 2015-11-25 at 15:46 +0100, [email protected] wrote:
On Tue, Nov 24, 2015 at 02:05:12PM -0800, Shaohua Li wrote:
The lib/iommu-common.c uses a bitmap and a lock. This implementation
actually uses a percpu_ida which completely avoids locking. It would be
possible to make lib/iommu-common.c use percpu_ida too if somebody wants
to do it, but I think this shouldn't be a blocker for these patches
giving it has huge performance gain.
It doesn't "completely avoids locking", the percpu_ida code uses a lock
internally too. Also, what is the memory and device address space
overhead per cpu?
A percpu lock doesn't bounce cachelines between CPUs very much, so from
that point of view it might as well not exist :)
As long as the address space can remain more than ~50% empty, it is
indeed practically lockless. Are we ever worried about higher
utilization? If so, in my experience percpu_ida fails miserable near or
at exhaustion.
--
Jens Axboe
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu