From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932674AbcBHSDw (ORCPT ); Mon, 8 Feb 2016 13:03:52 -0500 Received: from foss.arm.com ([217.140.101.70]:35282 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932436AbcBHR7c (ORCPT ); Mon, 8 Feb 2016 12:59:32 -0500 Subject: Re: [RESEND2 PATCH 0/3] Fix kernel panic in dma-coherent To: Mark Rutland References: <20160208175054.GD15443@leverpostej> Cc: Brian Starkey , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Michal Nazarewicz , Catalin Marinas , Andrew Morton , Dan Williams , linux-arm-kernel@lists.infradead.org From: Robin Murphy Message-ID: <56B8D77D.3050305@arm.com> Date: Mon, 8 Feb 2016 17:59:25 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160208175054.GD15443@leverpostej> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Mark, On 08/02/16 17:50, Mark Rutland wrote: > On Mon, Feb 08, 2016 at 05:30:49PM +0000, Brian Starkey wrote: >> Hi, >> >> I'm resending these again to try and garner some interest. Without >> this series, dma-coherent cannot be used on arm64 platforms. > > I think you need to characterize that a bit better. I see plenty of > instances of 'dma-coherent' in dts files, assuming you mean the DT > dma-coehrent property. > > If not, feel free to stop reading now. Terminology overload: the dma-coherent DT property is about devices having cache-coherent access to system memory within the linear map. The dma-coherent thing here is pretty much the precise opposite of that - namely creating CPU mappings for memory which belongs to the device itself and may be behind an I/O bus (e.g. a framebuffer on a video card). > Currently dma-coherent isn't well-defined, True dat. Robin. > but it's de-facto semantics > are that a device makes accesses which are coherent with data accesses > made by CPUs with Normal, Inner Shareable, Inner Write-Back Cacheable, > Outer Write-Back Cacheable attributes. > >> The decision to add MEMREMAP_WC came out of a previous discussion with >> Dan Williams and Catalin Marinas about the same problem[1]. > > As pgprot_writecombine is Normal Non-Cacheable, this is a completely > different idea of coherency to that described by the DT dma-coherent > property. > > We should not overload that to mean different things. > > Thanks, > Mark. > >> These patches implement a MEMREMAP_WC flag for memremap(), which can >> be used to obtain writecombine mappings. This is then used for setting >> up dma_coherent_mem regions which use the DMA_MEMORY_MAP flag. >> They apply cleanly on 4.5-rc3. >> >> Patch 3 makes sure that the appropriate memset function is used >> when zeroing coherent allocations, which fixes an alignment fault on >> arm64. >> >> Best Regards, >> Brian >> >> [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/390857.html >> >> Brian Starkey (3): >> memremap: add MEMREMAP_WC flag >> drivers: dma-coherent: use MEMREMAP_WC for DMA_MEMORY_MAP >> drivers: dma-coherent: use memset_io for DMA_MEMORY_IO >> >> drivers/base/dma-coherent.c | 25 ++++++++++++++++++++----- >> include/linux/io.h | 1 + >> kernel/memremap.c | 15 +++++++++++++-- >> 3 files changed, 34 insertions(+), 7 deletions(-) >> >> -- >> 1.7.9.5 >> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >> > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > From mboxrd@z Thu Jan 1 00:00:00 1970 From: robin.murphy@arm.com (Robin Murphy) Date: Mon, 8 Feb 2016 17:59:25 +0000 Subject: [RESEND2 PATCH 0/3] Fix kernel panic in dma-coherent In-Reply-To: <20160208175054.GD15443@leverpostej> References: <20160208175054.GD15443@leverpostej> Message-ID: <56B8D77D.3050305@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Mark, On 08/02/16 17:50, Mark Rutland wrote: > On Mon, Feb 08, 2016 at 05:30:49PM +0000, Brian Starkey wrote: >> Hi, >> >> I'm resending these again to try and garner some interest. Without >> this series, dma-coherent cannot be used on arm64 platforms. > > I think you need to characterize that a bit better. I see plenty of > instances of 'dma-coherent' in dts files, assuming you mean the DT > dma-coehrent property. > > If not, feel free to stop reading now. Terminology overload: the dma-coherent DT property is about devices having cache-coherent access to system memory within the linear map. The dma-coherent thing here is pretty much the precise opposite of that - namely creating CPU mappings for memory which belongs to the device itself and may be behind an I/O bus (e.g. a framebuffer on a video card). > Currently dma-coherent isn't well-defined, True dat. Robin. > but it's de-facto semantics > are that a device makes accesses which are coherent with data accesses > made by CPUs with Normal, Inner Shareable, Inner Write-Back Cacheable, > Outer Write-Back Cacheable attributes. > >> The decision to add MEMREMAP_WC came out of a previous discussion with >> Dan Williams and Catalin Marinas about the same problem[1]. > > As pgprot_writecombine is Normal Non-Cacheable, this is a completely > different idea of coherency to that described by the DT dma-coherent > property. > > We should not overload that to mean different things. > > Thanks, > Mark. > >> These patches implement a MEMREMAP_WC flag for memremap(), which can >> be used to obtain writecombine mappings. This is then used for setting >> up dma_coherent_mem regions which use the DMA_MEMORY_MAP flag. >> They apply cleanly on 4.5-rc3. >> >> Patch 3 makes sure that the appropriate memset function is used >> when zeroing coherent allocations, which fixes an alignment fault on >> arm64. >> >> Best Regards, >> Brian >> >> [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/390857.html >> >> Brian Starkey (3): >> memremap: add MEMREMAP_WC flag >> drivers: dma-coherent: use MEMREMAP_WC for DMA_MEMORY_MAP >> drivers: dma-coherent: use memset_io for DMA_MEMORY_IO >> >> drivers/base/dma-coherent.c | 25 ++++++++++++++++++++----- >> include/linux/io.h | 1 + >> kernel/memremap.c | 15 +++++++++++++-- >> 3 files changed, 34 insertions(+), 7 deletions(-) >> >> -- >> 1.7.9.5 >> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel at lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >> > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >