From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A9D3C433FF for ; Sat, 3 Aug 2019 06:50:36 +0000 (UTC) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7616E2073D for ; Sat, 3 Aug 2019 06:50:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7616E2073D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 455D2186B; Sat, 3 Aug 2019 06:50:36 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id AE0221837 for ; Sat, 3 Aug 2019 06:48:18 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from verein.lst.de (verein.lst.de [213.95.11.211]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 370D1712 for ; Sat, 3 Aug 2019 06:48:18 +0000 (UTC) Received: by verein.lst.de (Postfix, from userid 2407) id 3208868BFE; Sat, 3 Aug 2019 08:48:13 +0200 (CEST) Date: Sat, 3 Aug 2019 08:48:12 +0200 From: Christoph Hellwig To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190803064812.GA29746@lst.de> References: <20190801142118.21225-1-hch@lst.de> <20190801142118.21225-2-hch@lst.de> <20190801162305.3m32chycsdjmdejk@willie-the-truck> <20190801163457.GB26588@lst.de> <20190801164411.kmsl4japtfkgvzxe@willie-the-truck> <20190802081441.GA9725@lst.de> <20190802103803.3qrbhqwxlasojsco@willie-the-truck> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190802103803.3qrbhqwxlasojsco@willie-the-truck> User-Agent: Mutt/1.5.17 (2007-11-01) Cc: Shawn Anastasio , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Russell King , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , Robin Murphy , Christoph Hellwig , linux-arm-kernel@lists.infradead.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: iommu-bounces@lists.linux-foundation.org Errors-To: iommu-bounces@lists.linux-foundation.org T24gRnJpLCBBdWcgMDIsIDIwMTkgYXQgMTE6Mzg6MDNBTSArMDEwMCwgV2lsbCBEZWFjb24gd3Jv dGU6Cj4gCj4gU28gdGhpcyBib2lscyBkb3duIHRvIGEgdGVybWlub2xvZ3kgbWlzbWF0Y2guIFRo ZSBBcm0gYXJjaGl0ZWN0dXJlIGRvZXNuJ3QgaGF2ZQo+IGFueXRoaW5nIGNhbGxlZCAid3JpdGUg Y29tYmluZSIsIHNvIGluIExpbnV4IHdlIGluc3RlYWQgcHJvdmlkZSB3aGF0IHRoZSBBcm0KPiBh cmNoaXRlY3R1cmUgY2FsbHMgIk5vcm1hbCBub24tY2FjaGVhYmxlIiBtZW1vcnkgZm9yIHBncHJv dF93cml0ZWNvbWJpbmUoKS4KPiBBbW9uZ3N0IG90aGVyIHRoaW5ncywgdGhpcyBtZW1vcnkgdHlw ZSBwZXJtaXRzIHNwZWN1bGF0aW9uLCB1bmFsaWduZWQgYWNjZXNzZXMKPiBhbmQgbWVyZ2luZyBv ZiB3cml0ZXMuIEkgZm91bmQgc29tZXRoaW5nIGluIHRoZSBhcmNoaXRlY3R1cmUgc3BlYyBhYm91 dAo+IG5vbi1jYWNoYWJsZSBtZW1vcnksIGJ1dCBpdCdzIHdyaXR0ZW4gaW4gQXJtZ2xpc2hbMV0u Cj4gCj4gcGdwcm90X25vbmNhY2hlZCgpLCBvbiB0aGUgb3RoZXIgaGFuZCwgcHJvdmlkZXMgd2hh dCB0aGUgYXJjaGl0ZWN0dXJlIGNhbGxzCj4gU3Ryb25nbHkgT3JkZXJlZCBvciBEZXZpY2Utbkdu Um5FIG1lbW9yeS4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgbWFwcGluZyBNTUlPCj4gKGkuZS4gUENJ IGNvbmZpZyBzcGFjZSkgYW5kIHRoZXJlZm9yZSBmb3JiaWRzIHNwZWN1bGF0aW9uLCBwcmVzZXJ2 ZXMgYWNjZXNzCj4gc2l6ZSwgcmVxdWlyZXMgc3RyaWN0IGFsaWdubWVudCBhbmQgYWxzbyBmb3Jj ZXMgd3JpdGUgcmVzcG9uc2VzIHRvIGNvbWUgZnJvbQo+IHRoZSBlbmRwb2ludC4KPiAKPiBJIHRo aW5rIHRoZSBuYW1pbmcgbWlzbWF0Y2ggaXMgaGlzdG9yaWNhbCwgYnV0IG9uIGFybTY0IHdlIHdh bnRlZCB0byB1c2UgdGhlCj4gc2FtZSBuYW1lcyBhcyBhcm0zMiBzbyB0aGF0IGFueSBkcml2ZXJz IHVzaW5nIHRoZXNlIHRoaW5ncyBkaXJlY3RseSB3b3VsZCBnZXQKPiB0aGUgc2FtZSBiZWhhdmlv dXIuCgpUaGF0IGFsbCBtYWtlcyBzZW5zZSwgYnV0IGl0IHRvdGFsbHkgbmVlZHMgYSBjb21tZW50 LiAgSSdsbCB0cnkgdG8gZHJhZnQKb25lIGJhc2VkIG9uIHRoaXMuICBJJ3ZlIGFsc28gbG9va2Vk IGF0IHRoZSBhcm0zMiBjb2RlIGEgYml0IG1vcmUsIGFuZAppdCBzZWVtcyBhcm0gYWx3YXlzICg/ KSBzdXBwb3J0ZWQgTm9ybWFsIG5vbi1jYWNoZWFibGUgYXR0cmlidXRlLCBidXQKTGludXggb25s eSBvcHRpb25hbGx5IHVzZXMgaXQgZm9yIGFybSB2NisgYmVjYXVzZSBvZiBmZWFycyBvZiBkcml2 ZXJzCm1pc3NpbmcgYmFycmllcnMuICBUaGUgb3RoZXIgcmVhbGx5IHdlaXJkIHRoaW5ncyBpcyB0 aGF0IGluIGFybTMyCnBncHJvdF9kbWFjb2hlcmVudCBpbmN1ZGVzIHRoZSBMX1BURV9YTiBiaXQs IHdoaWNoIGZyb20gbXkgdW5kZXJzdGFuZGluZwppcyB0aGUgbm8tZXhlY3R1cmUgYml0LCBidXQg cGdwcm90X3dyaXRlY29tYmluZSBkb2VzIG5vdC4gIFRoaXMgc2VlbXMgdG8Kbm90IHZlcnkgdW5p bnRlbnRpb25hbC4gIFNvIG1pbnVzIHRoYXQgdGhlIHdob2xlIERNQV9BVFRSX1dSSVRFX0NPTULQ hk5FCnNlZW1zIHRvIGJlIGFib3V0IGZsYWdnaW5nIG9sZCBhcm0gc3BlY2lmaWMgZHJpdmVycyBh cyBoYXZpbmcgdGhlIHByb3BlcgpiYXJyaWVycyBpbiBwbGFjZXMgYW5kIG90aGVyd2lzZSBpcyBh IG5vLW9wLgoKSGVyZSBpcyBteSB0ZW50YXRpdmUgcGxhbjoKCiAtIHJlc3BpbiB0aGlzIHBhdGNo IHdpdGggYSBzbWFsbCBmaXggdG8gaGFuZGxlIHRoZQogICBETUFfQVRUUl9OT05fQ09OU0lTVEVO VCAoYXMgaW4gaWdub3JlIGl0IHVubGVzcyBhY3R1YWxseSBzdXBwb3J0ZWQpLAogICBidXQga2Vl cCB0aGUgbmFtZSBhcy1pcyB0byBhdm9pZCBjaHVybi4gIFRoaXMgc2hvdWxkIGFsbG93IDUuMwog ICBpbmNsdXNpb24gYW5kIGJhY2twb3J0cwogLSByZW1vdmUgRE1BX0FUVFJfV1JJVEVfQ09NQklO RSBzdXBwb3J0IGZyb20gbWlwcywgcHJvYmFibHkgYWxzbyA1LjMKICAgbWF0ZXJpYWwuCiAtIG1v dmUgYWxsIGFyY2hpdGVjdHVyZXMgYnV0IGFybSBvdmVyIHRvIGp1c3QgZGVmaW5lCiAgIHBncHJv dF9kbWFjb2hlcmVudCwgaW5jbHVkaW5nIGEgY29tbWVudCB3aXRoIHRoZSBhYm92ZSBleHBsYW5h dGlvbgogICBmb3IgYXJtNjQuCiAtIG1ha2UgRE1BX0FUVFJfV1JJVEVfQ09NQklORSBhIG5vLW9w IGFuZCBzY2hlZHVsZSBpdCBmb3IgcmVtb3ZhbCwKICAgdGh1cyByZW1vdmluZyB0aGUgbGFzdCBp bnN0YW5jZXMgb2YgYXJjaF9kbWFfbW1hcF9wZ3Byb3QKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0A30C433FF for ; Sat, 3 Aug 2019 06:50:11 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 24F582166E for ; Sat, 3 Aug 2019 06:50:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 24F582166E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 460vmG6f7xzDrCp for ; Sat, 3 Aug 2019 16:50:06 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lst.de (client-ip=213.95.11.211; helo=verein.lst.de; envelope-from=hch@lst.de; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=lst.de Received: from verein.lst.de (verein.lst.de [213.95.11.211]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 460vkG3qT5zDrBm for ; Sat, 3 Aug 2019 16:48:20 +1000 (AEST) Received: by verein.lst.de (Postfix, from userid 2407) id 3208868BFE; Sat, 3 Aug 2019 08:48:13 +0200 (CEST) Date: Sat, 3 Aug 2019 08:48:12 +0200 From: Christoph Hellwig To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190803064812.GA29746@lst.de> References: <20190801142118.21225-1-hch@lst.de> <20190801142118.21225-2-hch@lst.de> <20190801162305.3m32chycsdjmdejk@willie-the-truck> <20190801163457.GB26588@lst.de> <20190801164411.kmsl4japtfkgvzxe@willie-the-truck> <20190802081441.GA9725@lst.de> <20190802103803.3qrbhqwxlasojsco@willie-the-truck> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190802103803.3qrbhqwxlasojsco@willie-the-truck> User-Agent: Mutt/1.5.17 (2007-11-01) X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Shawn Anastasio , linuxppc-dev@lists.ozlabs.org, Russell King , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , Robin Murphy , Christoph Hellwig , linux-arm-kernel@lists.infradead.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Fri, Aug 02, 2019 at 11:38:03AM +0100, Will Deacon wrote: > > So this boils down to a terminology mismatch. The Arm architecture doesn't have > anything called "write combine", so in Linux we instead provide what the Arm > architecture calls "Normal non-cacheable" memory for pgprot_writecombine(). > Amongst other things, this memory type permits speculation, unaligned accesses > and merging of writes. I found something in the architecture spec about > non-cachable memory, but it's written in Armglish[1]. > > pgprot_noncached(), on the other hand, provides what the architecture calls > Strongly Ordered or Device-nGnRnE memory. This is intended for mapping MMIO > (i.e. PCI config space) and therefore forbids speculation, preserves access > size, requires strict alignment and also forces write responses to come from > the endpoint. > > I think the naming mismatch is historical, but on arm64 we wanted to use the > same names as arm32 so that any drivers using these things directly would get > the same behaviour. That all makes sense, but it totally needs a comment. I'll try to draft one based on this. I've also looked at the arm32 code a bit more, and it seems arm always (?) supported Normal non-cacheable attribute, but Linux only optionally uses it for arm v6+ because of fears of drivers missing barriers. The other really weird things is that in arm32 pgprot_dmacoherent incudes the L_PTE_XN bit, which from my understanding is the no-execture bit, but pgprot_writecombine does not. This seems to not very unintentional. So minus that the whole DMA_ATTR_WRITE_COMBІNE seems to be about flagging old arm specific drivers as having the proper barriers in places and otherwise is a no-op. Here is my tentative plan: - respin this patch with a small fix to handle the DMA_ATTR_NON_CONSISTENT (as in ignore it unless actually supported), but keep the name as-is to avoid churn. This should allow 5.3 inclusion and backports - remove DMA_ATTR_WRITE_COMBINE support from mips, probably also 5.3 material. - move all architectures but arm over to just define pgprot_dmacoherent, including a comment with the above explanation for arm64. - make DMA_ATTR_WRITE_COMBINE a no-op and schedule it for removal, thus removing the last instances of arch_dma_mmap_pgprot From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA22AC31E40 for ; Sat, 3 Aug 2019 06:48:33 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BB98B2073D for ; Sat, 3 Aug 2019 06:48:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Tkh4DpUE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BB98B2073D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=e/NEdsubTvNyUcRFKmWK4cjCC21yiQlFa+qZWlv9dIA=; b=Tkh4DpUEDSu5N2 OajwLQx0HNQtBhMdb0ItkwlVawvLtjC9H8NFI271fJGzkOQQ2OBAAVFQPQjXB6l4LoRvh3nEDox63 8AAe/XWzsUTZXyBNFwQAR0VFMtnCSz+/BTPExGkOHGdxMT70vom8mVfkagrQayxMLL+wQzljfDeHQ ntT2kevIufEUgzZarIvAojOL0ZDfPwQbpTOcQWGNPASwPs7LSpq6OSkIJiYw6zY2n1sA+DYgGsfHq zAvq5VFxgEkkOFxR00tKKhe6CNBqbAx7hI6Q2aNtqIK9vjtRYlYsbTZwLvUzpkI/2GaXVMhQgmPn0 qtkcqUQbMFKGoYTFciZA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1htnq5-0006eW-KI; Sat, 03 Aug 2019 06:48:25 +0000 Received: from verein.lst.de ([213.95.11.211]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1htnq1-0006dl-F3 for linux-arm-kernel@lists.infradead.org; Sat, 03 Aug 2019 06:48:23 +0000 Received: by verein.lst.de (Postfix, from userid 2407) id 3208868BFE; Sat, 3 Aug 2019 08:48:13 +0200 (CEST) Date: Sat, 3 Aug 2019 08:48:12 +0200 From: Christoph Hellwig To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190803064812.GA29746@lst.de> References: <20190801142118.21225-1-hch@lst.de> <20190801142118.21225-2-hch@lst.de> <20190801162305.3m32chycsdjmdejk@willie-the-truck> <20190801163457.GB26588@lst.de> <20190801164411.kmsl4japtfkgvzxe@willie-the-truck> <20190802081441.GA9725@lst.de> <20190802103803.3qrbhqwxlasojsco@willie-the-truck> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190802103803.3qrbhqwxlasojsco@willie-the-truck> User-Agent: Mutt/1.5.17 (2007-11-01) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190802_234821_659235_81A93A62 X-CRM114-Status: GOOD ( 14.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Shawn Anastasio , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Russell King , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , Robin Murphy , Christoph Hellwig , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBdWcgMDIsIDIwMTkgYXQgMTE6Mzg6MDNBTSArMDEwMCwgV2lsbCBEZWFjb24gd3Jv dGU6Cj4gCj4gU28gdGhpcyBib2lscyBkb3duIHRvIGEgdGVybWlub2xvZ3kgbWlzbWF0Y2guIFRo ZSBBcm0gYXJjaGl0ZWN0dXJlIGRvZXNuJ3QgaGF2ZQo+IGFueXRoaW5nIGNhbGxlZCAid3JpdGUg Y29tYmluZSIsIHNvIGluIExpbnV4IHdlIGluc3RlYWQgcHJvdmlkZSB3aGF0IHRoZSBBcm0KPiBh cmNoaXRlY3R1cmUgY2FsbHMgIk5vcm1hbCBub24tY2FjaGVhYmxlIiBtZW1vcnkgZm9yIHBncHJv dF93cml0ZWNvbWJpbmUoKS4KPiBBbW9uZ3N0IG90aGVyIHRoaW5ncywgdGhpcyBtZW1vcnkgdHlw ZSBwZXJtaXRzIHNwZWN1bGF0aW9uLCB1bmFsaWduZWQgYWNjZXNzZXMKPiBhbmQgbWVyZ2luZyBv ZiB3cml0ZXMuIEkgZm91bmQgc29tZXRoaW5nIGluIHRoZSBhcmNoaXRlY3R1cmUgc3BlYyBhYm91 dAo+IG5vbi1jYWNoYWJsZSBtZW1vcnksIGJ1dCBpdCdzIHdyaXR0ZW4gaW4gQXJtZ2xpc2hbMV0u Cj4gCj4gcGdwcm90X25vbmNhY2hlZCgpLCBvbiB0aGUgb3RoZXIgaGFuZCwgcHJvdmlkZXMgd2hh dCB0aGUgYXJjaGl0ZWN0dXJlIGNhbGxzCj4gU3Ryb25nbHkgT3JkZXJlZCBvciBEZXZpY2Utbkdu Um5FIG1lbW9yeS4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgbWFwcGluZyBNTUlPCj4gKGkuZS4gUENJ IGNvbmZpZyBzcGFjZSkgYW5kIHRoZXJlZm9yZSBmb3JiaWRzIHNwZWN1bGF0aW9uLCBwcmVzZXJ2 ZXMgYWNjZXNzCj4gc2l6ZSwgcmVxdWlyZXMgc3RyaWN0IGFsaWdubWVudCBhbmQgYWxzbyBmb3Jj ZXMgd3JpdGUgcmVzcG9uc2VzIHRvIGNvbWUgZnJvbQo+IHRoZSBlbmRwb2ludC4KPiAKPiBJIHRo aW5rIHRoZSBuYW1pbmcgbWlzbWF0Y2ggaXMgaGlzdG9yaWNhbCwgYnV0IG9uIGFybTY0IHdlIHdh bnRlZCB0byB1c2UgdGhlCj4gc2FtZSBuYW1lcyBhcyBhcm0zMiBzbyB0aGF0IGFueSBkcml2ZXJz IHVzaW5nIHRoZXNlIHRoaW5ncyBkaXJlY3RseSB3b3VsZCBnZXQKPiB0aGUgc2FtZSBiZWhhdmlv dXIuCgpUaGF0IGFsbCBtYWtlcyBzZW5zZSwgYnV0IGl0IHRvdGFsbHkgbmVlZHMgYSBjb21tZW50 LiAgSSdsbCB0cnkgdG8gZHJhZnQKb25lIGJhc2VkIG9uIHRoaXMuICBJJ3ZlIGFsc28gbG9va2Vk IGF0IHRoZSBhcm0zMiBjb2RlIGEgYml0IG1vcmUsIGFuZAppdCBzZWVtcyBhcm0gYWx3YXlzICg/ KSBzdXBwb3J0ZWQgTm9ybWFsIG5vbi1jYWNoZWFibGUgYXR0cmlidXRlLCBidXQKTGludXggb25s eSBvcHRpb25hbGx5IHVzZXMgaXQgZm9yIGFybSB2NisgYmVjYXVzZSBvZiBmZWFycyBvZiBkcml2 ZXJzCm1pc3NpbmcgYmFycmllcnMuICBUaGUgb3RoZXIgcmVhbGx5IHdlaXJkIHRoaW5ncyBpcyB0 aGF0IGluIGFybTMyCnBncHJvdF9kbWFjb2hlcmVudCBpbmN1ZGVzIHRoZSBMX1BURV9YTiBiaXQs IHdoaWNoIGZyb20gbXkgdW5kZXJzdGFuZGluZwppcyB0aGUgbm8tZXhlY3R1cmUgYml0LCBidXQg cGdwcm90X3dyaXRlY29tYmluZSBkb2VzIG5vdC4gIFRoaXMgc2VlbXMgdG8Kbm90IHZlcnkgdW5p bnRlbnRpb25hbC4gIFNvIG1pbnVzIHRoYXQgdGhlIHdob2xlIERNQV9BVFRSX1dSSVRFX0NPTULQ hk5FCnNlZW1zIHRvIGJlIGFib3V0IGZsYWdnaW5nIG9sZCBhcm0gc3BlY2lmaWMgZHJpdmVycyBh cyBoYXZpbmcgdGhlIHByb3BlcgpiYXJyaWVycyBpbiBwbGFjZXMgYW5kIG90aGVyd2lzZSBpcyBh IG5vLW9wLgoKSGVyZSBpcyBteSB0ZW50YXRpdmUgcGxhbjoKCiAtIHJlc3BpbiB0aGlzIHBhdGNo IHdpdGggYSBzbWFsbCBmaXggdG8gaGFuZGxlIHRoZQogICBETUFfQVRUUl9OT05fQ09OU0lTVEVO VCAoYXMgaW4gaWdub3JlIGl0IHVubGVzcyBhY3R1YWxseSBzdXBwb3J0ZWQpLAogICBidXQga2Vl cCB0aGUgbmFtZSBhcy1pcyB0byBhdm9pZCBjaHVybi4gIFRoaXMgc2hvdWxkIGFsbG93IDUuMwog ICBpbmNsdXNpb24gYW5kIGJhY2twb3J0cwogLSByZW1vdmUgRE1BX0FUVFJfV1JJVEVfQ09NQklO RSBzdXBwb3J0IGZyb20gbWlwcywgcHJvYmFibHkgYWxzbyA1LjMKICAgbWF0ZXJpYWwuCiAtIG1v dmUgYWxsIGFyY2hpdGVjdHVyZXMgYnV0IGFybSBvdmVyIHRvIGp1c3QgZGVmaW5lCiAgIHBncHJv dF9kbWFjb2hlcmVudCwgaW5jbHVkaW5nIGEgY29tbWVudCB3aXRoIHRoZSBhYm92ZSBleHBsYW5h dGlvbgogICBmb3IgYXJtNjQuCiAtIG1ha2UgRE1BX0FUVFJfV1JJVEVfQ09NQklORSBhIG5vLW9w IGFuZCBzY2hlZHVsZSBpdCBmb3IgcmVtb3ZhbCwKICAgdGh1cyByZW1vdmluZyB0aGUgbGFzdCBp bnN0YW5jZXMgb2YgYXJjaF9kbWFfbW1hcF9wZ3Byb3QKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2308C31E40 for ; Sat, 3 Aug 2019 06:48:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8EB682073D for ; Sat, 3 Aug 2019 06:48:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727002AbfHCGsR (ORCPT ); Sat, 3 Aug 2019 02:48:17 -0400 Received: from verein.lst.de ([213.95.11.211]:58712 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726797AbfHCGsR (ORCPT ); Sat, 3 Aug 2019 02:48:17 -0400 Received: by verein.lst.de (Postfix, from userid 2407) id 3208868BFE; Sat, 3 Aug 2019 08:48:13 +0200 (CEST) Date: Sat, 3 Aug 2019 08:48:12 +0200 From: Christoph Hellwig To: Will Deacon Cc: Christoph Hellwig , iommu@lists.linux-foundation.org, Shawn Anastasio , Michael Ellerman , Russell King , Catalin Marinas , Robin Murphy , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190803064812.GA29746@lst.de> References: <20190801142118.21225-1-hch@lst.de> <20190801142118.21225-2-hch@lst.de> <20190801162305.3m32chycsdjmdejk@willie-the-truck> <20190801163457.GB26588@lst.de> <20190801164411.kmsl4japtfkgvzxe@willie-the-truck> <20190802081441.GA9725@lst.de> <20190802103803.3qrbhqwxlasojsco@willie-the-truck> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190802103803.3qrbhqwxlasojsco@willie-the-truck> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 02, 2019 at 11:38:03AM +0100, Will Deacon wrote: > > So this boils down to a terminology mismatch. The Arm architecture doesn't have > anything called "write combine", so in Linux we instead provide what the Arm > architecture calls "Normal non-cacheable" memory for pgprot_writecombine(). > Amongst other things, this memory type permits speculation, unaligned accesses > and merging of writes. I found something in the architecture spec about > non-cachable memory, but it's written in Armglish[1]. > > pgprot_noncached(), on the other hand, provides what the architecture calls > Strongly Ordered or Device-nGnRnE memory. This is intended for mapping MMIO > (i.e. PCI config space) and therefore forbids speculation, preserves access > size, requires strict alignment and also forces write responses to come from > the endpoint. > > I think the naming mismatch is historical, but on arm64 we wanted to use the > same names as arm32 so that any drivers using these things directly would get > the same behaviour. That all makes sense, but it totally needs a comment. I'll try to draft one based on this. I've also looked at the arm32 code a bit more, and it seems arm always (?) supported Normal non-cacheable attribute, but Linux only optionally uses it for arm v6+ because of fears of drivers missing barriers. The other really weird things is that in arm32 pgprot_dmacoherent incudes the L_PTE_XN bit, which from my understanding is the no-execture bit, but pgprot_writecombine does not. This seems to not very unintentional. So minus that the whole DMA_ATTR_WRITE_COMBІNE seems to be about flagging old arm specific drivers as having the proper barriers in places and otherwise is a no-op. Here is my tentative plan: - respin this patch with a small fix to handle the DMA_ATTR_NON_CONSISTENT (as in ignore it unless actually supported), but keep the name as-is to avoid churn. This should allow 5.3 inclusion and backports - remove DMA_ATTR_WRITE_COMBINE support from mips, probably also 5.3 material. - move all architectures but arm over to just define pgprot_dmacoherent, including a comment with the above explanation for arm64. - make DMA_ATTR_WRITE_COMBINE a no-op and schedule it for removal, thus removing the last instances of arch_dma_mmap_pgprot