On Thu, Apr 14, 2016 at 9:26 PM, Benjamin Serebrin via iommu
<[email protected]> wrote:

> It was pointed out that DMA_32 or _24 (or anything other non-64 size)
> could be starved if the magazines on all cores are full and the depot
> is empty.  (This gets more probable with increased core count.)  You
> could try one more time: call free_iova_rcaches() and try alloc_iova
> again before giving up

That's not safe, unfortunately.  free_iova_rcaches() is meant to be
called only when the domain is dying and the CPUs won't access the
rcaches.

It's tempting to make the rcaches work only for DMA_64 allocations.
This would also solve the problem of respecting the pfn_limit when
allocating, which Shaohua Li pointed out.  Sadly, intel-iommu.c
converts DMA_64 to DMA_32 by default, apparently to avoid dual address
cycles on the PCI bus.  I wonder about the importance of this, though,
as it doesn't seem that anything equivalent happens when iommu=off.
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to