Thread (49 messages) 49 messages, 11 authors, 12h ago

Re: [RFC: DMA_PMD 00/22] DMA_PMD: PMD_SIZE-backed IO buffer pools

flat view

From: Luigi Rizzo <hidden>
Date: 2026-10-14 11:05:56
Also in: driver-core, linux-doc, linux-iommu, linux-mm, lkml

On Wed, Oct 14, 2026 at 12:48 PM David Hildenbrand (Arm)
[off-list ref] wrote:
On 10/13/26 12:42, Robin Murphy wrote:
quoted
On 12/10/2026 8:43 pm, David Hildenbrand (Arm) wrote:
quoted
On 10/12/26 16:45, Luigi Rizzo wrote:
quoted
On Mon, Oct 12, 2026 at 3:51 PM David Hildenbrand (Arm)
[off-list ref] wrote:

I had to call it something... an earlier prototype used the name IOMMU_2M,
but I didn't want to suggest that the design was limited to 2M (it is not).

Aside from the name, the _current_ prototype restricts to 2M allocations,
exactly because too large units are expensive and wasteful.

In the code, decoupling the allocation size from the PMD size is trivial.
Yeah, we should do that.

We should probably just find a way to describe that this is a POOL that focuses
on physical contiguity in some configured granularity.
And since it's intended for DMA we could call it dma_pool and oh look it already
exists...
Heh, I did have "DMA_POOL" in mind when writing my reply.
which confirms that naming is one of the hardest problems in CS...
Let's try to figure out a good name before renaming everything.

quoted
Sure the current implementation is capped at PAGE_SIZE for allocation (and thus
mapping too), but I don't see why that couldn't just be made more flexible.
That intuitively sounds like the right direction.
Point taken, I will decouple the allocaiton size from PMD_SIZE this in
the next iteration.

I have also followed up on most of Pranjal's feedback (stricter error checking,
compact IOVA ranges, opt-in per destination on the tx path...) .

I am also looking at reducing some inefficiencies (e.g. pagepool already caches,
and allocations of new pages are relatively rare, so there is not much
of a point
of having a dma_pmd_pool per queue; and on the tx side, something similar to the
percpu page cache to reduce locking costs when a page is allocated on one CPU
and freed on a different one)

cheers
luigi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help