On Thu, Nov 28, 2019 at 08:05:38AM +0100, Christoph Hellwig wrote: > On Thu, Nov 28, 2019 at 12:42:25AM +0000, Ashish Kalra wrote: > > Why can't we leverage CMA instead of SWIOTLB for DMA when SEV is > > enabled, CMA is well integerated with the DMA subsystem and handles > > encrypted pages when force_dma_unencrypted() returns TRUE. > > > > Though, CMA might face the same issues as SWIOTLB bounce buffers, it's > > size is similarly setup statically as SWIOTLB does or can be set as a > > percentage of the available system memory. > > How is CMA integrated with SEV? CMA just gives a contiguous chunk > of memory, which still needs to be remapped as unencrypted before > returning it to the user. Looking at the implementation, i see that CMA is accessible using dma_alloc_coherent() and the buffer allocated by dma_alloc_coherent() either using the CMA or the page allocator, will be marked/tagged as unencrypted and returned to the user. But for dma_map_xx() interfaces, the memory will need be remapped as unencrypted memory (as you mentioned). Thanks, Ashish