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> 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? > > #define DMA_ATTR_NO_KERNEL_MAPPING (1UL << 4) > > /* > > - * DMA_ATTR_SKIP_CPU_SYNC: Allows platform code to skip synchronization of > > - * the CPU cache for the given buffer assuming that it has been already > > - * transferred to 'device' domain. > > + * DMA_ATTR_SKIP_CPU_SYNC: Allows platform code to skip synchronization of the > > + * CPU and device domains for the given buffer. > > While we're at it, I think "allows" is the wrong word here, we really > must skip the synchronization or else we're in trouble. Hmm could you explain? I thought multiple sync operations are harmless. -- MST