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
