On Fri, Jul 03, 2026 at 08:15:49PM +1000, Alexey Kardashevskiy wrote: > 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.
That's really basically the same thing. The responsiblity for optimizing the shared/private conversion lies with the DMA API not the callers. > 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). IMHO it would be better to use something like dma_pool to amortize the coherent allocations instead of trying to hack with swiotlb. Jason
