On Thu, Jul 20, 2023 at 08:25:25AM +0200, Christoph Hellwig wrote: > On Thu, Jul 20, 2023 at 02:21:05AM -0400, Michael S. Tsirkin wrote: > > On Thu, Jul 20, 2023 at 08:07:42AM +0200, Christoph Hellwig wrote: > > > On Wed, Jul 19, 2023 at 06:15:59AM -0400, Michael S. Tsirkin wrote: > > > > A recent patchset highlighted to me that DMA_ATTR_SKIP_CPU_SYNC > > > > might be easily misunderstood. > > > > > > .. just curious: what patchset is that? DMA_ATTR_SKIP_CPU_SYNC is > > > often a bad idea and all users probably could use a really good > > > audit.. > > > > Message-Id: <20230710034237.12391-1-xuanzhuo@xxxxxxxxxxxxxxxxx> > > Do you have an actual link? sure, they are not hard to generate ;) https://lore.kernel.org/all/20230710034237.12391-11-xuanzhuo%40linux.alibaba.com > > > > > > Looks like there's really little else can be done: there's a > > shared page we allow DMA into, so we sync periodically. > > Then when we unmap we really do not need that data > > synced again. > > > > What exactly is wrong with this? > > A "shared" page without ownership can't work with the streaming > DMA API (dma_map_*) at all. You need to use dma_alloc_coherent > so that it is mapped uncached. Hmm confused. Based on both documentation and code I think this works: dma_map dma_sync dma_sync dma_sync dma_sync dma_unmap(DMA_ATTR_SKIP_CPU_SYNC) right? -- MST