On Mon, Feb 17, 2020 at 04:03:54PM +0000, Robin Murphy wrote: > On 14/02/2020 11:06 pm, Isaac J. Manjarres wrote: > > From: Liam Mark <[email protected]> > > > > Using the best-fit algorithm, instead of the first-fit > > algorithm, may reduce fragmentation when allocating > > IOVAs. > > What kind of pathological allocation patterns make that a serious problem? > Is there any scope for simply changing the order of things in the callers? > Do these drivers also run under other DMA API backends (e.g. 32-bit Arm)? > > More generally, if a driver knows enough to want to second-guess a generic > DMA API allocator, that's a reasonable argument that it should perhaps be > properly IOMMU-aware and managing its own address space anyway. Perhaps this > effort might be better spent finishing off the DMA ops bypass stuff to make > that approach more robust and welcoming.
Anecdotally, it appears to be a fairly common problem for 32-bit capable DMA masters to hit fragmentation problems with the current IOVA allocator but yes, some numbers to show how that is improved using best-fit (as opposed to e.g. worst-fit) are definitely required here. It might be that we can simply swizzle the algorithm to focus on reduced fragmentation for smaller (i.e. 32-bit) address spaces, but leave larger domains with the current approach to avoid increasing the allocation overhead. Will _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
