[PATCH v6 03/20] dma-direct: use DMA_ATTR_CC_SHARED in alloc/free paths
Alexey Kardashevskiy
aik at amd.com
Fri Jul 3 03:15:49 PDT 2026
On 3/7/26 00:47, Jason Gunthorpe wrote:
> On Thu, Jul 02, 2026 at 10:25:16AM +1000, Alexey Kardashevskiy wrote:
>
>>>> 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
More information about the linux-arm-kernel
mailing list