Messages in this thread | | | Date | Wed, 19 Feb 2020 12:28:52 +0000 | From | Will Deacon <> | Subject | Re: [RFC PATCH] iommu/iova: Add a best-fit algorithm |
| |
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 <lmark@codeaurora.org> > > > > 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
| |