Thread (35 messages) 35 messages, 8 authors, 2018-12-05

[PATCH v2 0/3] iommu/io-pgtable-arm-v7s: Use DMA32 zone for page tables

From: willy@infradead.org (Matthew Wilcox)
Date: 2018-11-22 15:16:46
Also in: linux-iommu, linux-mm, lkml

On Thu, Nov 22, 2018 at 12:26:02AM -0800, Christoph Hellwig wrote:
On Wed, Nov 21, 2018 at 06:35:58PM -0800, Matthew Wilcox wrote:
quoted
I think you should look at using the page_frag allocator here.  You can
use whatever GFP_DMA flags you like.
So I actually tries to use page_frag to solve the XFS unaligned kmalloc
allocations problem, and I don't think it is the right hammer for this
nail (or any other nail outside of networking).

The problem with the page_frag allocator is that it never reuses
fragments returned to the page, but only only frees the page once all
fragments are freed.  This means that if you have some long(er) term
allocations you are effectively creating memory leaks.
Yes, your allocations from the page_frag allocator have to have similar
lifetimes.  I thought that would be ideal for XFS though; as I understood
the problem, these were per-IO allocations, and IOs to the same filesystem
tend to take roughly the same amount of time.  Sure, in an error case,
some IOs will take a long time before timing out, but it should be OK
to have pages unavailable during that time in these rare situations.
What am I missing?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help