Thread (77 messages) 77 messages, 6 authors, 2d ago

Re: [PATCH v6 03/20] dma-direct: use DMA_ATTR_CC_SHARED in alloc/free paths

From: Alexey Kardashevskiy <hidden>
Date: 2026-07-03 10:16:04
Also in: linux-arm-kernel, linux-coco, linux-iommu, linux-s390, lkml


On 3/7/26 00:47, Jason Gunthorpe wrote:
On Thu, Jul 02, 2026 at 10:25:16AM +1000, Alexey Kardashevskiy wrote:
quoted
quoted
quoted
not externally available so I'll have to trick the DMA layer into
using SWIOTLB (which is still all shared, right?) as I specifically
want to skip page conversions. Setting low DMA mask won't guarantee
that the DMA layer won't allocate a page outside of SWIOTLB and
convert it. Manually do
Why so particular?
aahhh I missed "pre-". I need a way to get pre-shared pages for my
sev-guest activities.
It sounds to me like you don't, what you are worried about is
optimizing the dma_alloc_coherent flow to avoid fragmentation and all
CC architetures require this optimization.
It is not about fragmentation, it is about unwanted page state changes when few pages are shared for a very short time.

When I needed these pages, I could: get a private page, convert, (possibly trigger RMP and IO PDE smashing if that 4K is backed with 2M), do the VM<->HV communication, convert back to private (and possibly unsmash the page).

Or ask swiotlb for these already shared pages, and skip all of the above.

How would defragmentation help here? It is two or zero conversions.
So I'm strongly against you trying to open code something in your
driver. Use the DMA API as-is. Propose general DMA API improvements to
reduce the fragmentation problem. It is a real problem.

Jason
-- 
Alexey

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