Messages in this thread | | | Date | Tue, 3 Oct 2017 22:27:08 +0200 (CEST) | From | Thomas Gleixner <> | Subject | RE: [PATCH 02/11] x86: make dma_cache_sync a no-op |
| |
On Tue, 3 Oct 2017, David Laight wrote:
> From: Christoph Hellwig > > Sent: 03 October 2017 11:43 > > x86 does not implement DMA_ATTR_NON_CONSISTENT allocations, so it doesn't > > make any sense to do any work in dma_cache_sync given that it must be a > > no-op when dma_alloc_attrs returns coherent memory. > > I believe it is just about possible to require an explicit > write flush on x86. > ISTR this can happen with something like write combining.
As the changelog says: x86 only implements dma_alloc_coherent() which as the name says returns coherent memory, i.e. type WB (write back), which is not subject to dma_cache_sync() operations.
If the driver converts that memory to WC (write combine) on its own via PAT/MTRR, then it needs to take care of flushing the write buffer on its own. It's not convered by this interface.
Thanks,
tglx
| |