From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751695AbdJCU1d (ORCPT ); Tue, 3 Oct 2017 16:27:33 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:54786 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750812AbdJCU1a (ORCPT ); Tue, 3 Oct 2017 16:27:30 -0400 Date: Tue, 3 Oct 2017 22:27:08 +0200 (CEST) From: Thomas Gleixner To: David Laight cc: "'Christoph Hellwig'" , "iommu@lists.linux-foundation.org" , Chris Zankel , Michal Simek , "linux-ia64@vger.kernel.org" , "linux-mips@linux-mips.org" , "linux-sh@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" , "linux-xtensa@linux-xtensa.org" , "x86@kernel.org" , "linux-kernel@vger.kernel.org" , David Howells , Max Filippov , Guan Xuetao , Robin Murphy , Marek Szyprowski Subject: RE: [PATCH 02/11] x86: make dma_cache_sync a no-op In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6DD0088B73@AcuExch.aculab.com> Message-ID: References: <20171003104311.10058-1-hch@lst.de> <20171003104311.10058-3-hch@lst.de> <063D6719AE5E284EB5DD2968C1650D6DD0088B73@AcuExch.aculab.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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