Robin, On Fri, Dec 18, 2015 at 9:01 AM, Robin Murphy <robin.mur...@arm.com> wrote: > Doug reports that the equivalent page allocator on 32-bit ARM exhibits > particularly pathalogical behaviour under memory pressure when > fragmentation is high, where allocating a 4MB buffer takes tens of > seconds and the number of calls to alloc_pages() is over 9000![1] > > We can drastically improve that situation without losing the other > benefits of high-order allocations when they would succeed, by assuming > memory pressure is relatively constant over the course of an allocation, > and not retrying allocations at orders we know to have failed before. > This way, the best-case behaviour remains unchanged, and in the worst > case we should see at most a dozen or so (MAX_ORDER - 1) failed attempts > before falling back to single pages for the remainder of the buffer. > > [1]:http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/394660.html > > Reported-by: Douglas Anderson <diand...@chromium.org> > Signed-off-by: Robin Murphy <robin.mur...@arm.com> > --- > drivers/iommu/dma-iommu.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-)
Presumably it makes sense to update this based on v2 of my patch to the original code? AKA: <https://patchwork.kernel.org/patch/7888851/> ? _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu