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.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 9EB7BC433FF for ; Tue, 6 Aug 2019 16:48:30 +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 70BEA20B1F for ; Tue, 6 Aug 2019 16:48:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="eZwyX0IY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 70BEA20B1F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=armlinux.org.uk 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 3A404E95; Tue, 6 Aug 2019 16:48:30 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 8D231DD4 for ; Tue, 6 Aug 2019 16:48:28 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [78.32.30.218]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 198FD4C3 for ; Tue, 6 Aug 2019 16:48:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=2xbU9eGH8Hn5AbLibXFA8i2BhIbjPGsDxSHEGclO7DY=; b=eZwyX0IYZ2o1mynwE2Hz8BgOn 1IYSUKBfERotJIfG9zTtzX0bg4i08mQ5mMz6MCpMov84N9NI9dKaErTO39e8hveags+aR+z+d61qP W3w6jej9QozJBNVBhiIvdTj7/8x21XG296MB4TCw5PA3XToUIUHcmZVo2bgcj29giaXjSaRwo5m1i apKc2Nx+v1j2CSPgt0VzhW9CxMtyl+lhnoPIf1/QpSd7MesE+kISmudz2+Jf9n3t9voIsXSyen3WY +ze92NX2gq4pRI9lO51qHr+H7EmvaTCALnfcgZUyl64IRxEtq2PKmgi/japG58C1Z2+kdJ8eNmMbW Nmv4H0fpQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49228) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2dF-0000TH-Ou; Tue, 06 Aug 2019 17:48:17 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2dE-0000fq-Mb; Tue, 06 Aug 2019 17:48:16 +0100 Date: Tue, 6 Aug 2019 17:48:16 +0100 From: Russell King - ARM Linux admin To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164816.GE1330@shell.armlinux.org.uk> 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> <20190803064812.GA29746@lst.de> <20190806160854.htk67msiyadlrl4m@willie-the-truck> <20190806164503.GD1330@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190806164503.GD1330@shell.armlinux.org.uk> User-Agent: Mutt/1.10.1 (2018-07-13) Cc: Shawn Anastasio , Michael Ellerman , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , linuxppc-dev@lists.ozlabs.org, Christoph Hellwig , linux-arm-kernel@lists.infradead.org, Robin Murphy 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 T24gVHVlLCBBdWcgMDYsIDIwMTkgYXQgMDU6NDU6MDNQTSArMDEwMCwgUnVzc2VsbCBLaW5nIC0g QVJNIExpbnV4IGFkbWluIHdyb3RlOgo+IE9uIFR1ZSwgQXVnIDA2LCAyMDE5IGF0IDA1OjA4OjU0 UE0gKzAxMDAsIFdpbGwgRGVhY29uIHdyb3RlOgo+ID4gT24gU2F0LCBBdWcgMDMsIDIwMTkgYXQg MDg6NDg6MTJBTSArMDIwMCwgQ2hyaXN0b3BoIEhlbGx3aWcgd3JvdGU6Cj4gPiA+IE9uIEZyaSwg QXVnIDAyLCAyMDE5IGF0IDExOjM4OjAzQU0gKzAxMDAsIFdpbGwgRGVhY29uIHdyb3RlOgo+ID4g PiA+IAo+ID4gPiA+IFNvIHRoaXMgYm9pbHMgZG93biB0byBhIHRlcm1pbm9sb2d5IG1pc21hdGNo LiBUaGUgQXJtIGFyY2hpdGVjdHVyZSBkb2Vzbid0IGhhdmUKPiA+ID4gPiBhbnl0aGluZyBjYWxs ZWQgIndyaXRlIGNvbWJpbmUiLCBzbyBpbiBMaW51eCB3ZSBpbnN0ZWFkIHByb3ZpZGUgd2hhdCB0 aGUgQXJtCj4gPiA+ID4gYXJjaGl0ZWN0dXJlIGNhbGxzICJOb3JtYWwgbm9uLWNhY2hlYWJsZSIg bWVtb3J5IGZvciBwZ3Byb3Rfd3JpdGVjb21iaW5lKCkuCj4gPiA+ID4gQW1vbmdzdCBvdGhlciB0 aGluZ3MsIHRoaXMgbWVtb3J5IHR5cGUgcGVybWl0cyBzcGVjdWxhdGlvbiwgdW5hbGlnbmVkIGFj Y2Vzc2VzCj4gPiA+ID4gYW5kIG1lcmdpbmcgb2Ygd3JpdGVzLiBJIGZvdW5kIHNvbWV0aGluZyBp biB0aGUgYXJjaGl0ZWN0dXJlIHNwZWMgYWJvdXQKPiA+ID4gPiBub24tY2FjaGFibGUgbWVtb3J5 LCBidXQgaXQncyB3cml0dGVuIGluIEFybWdsaXNoWzFdLgo+ID4gPiA+IAo+ID4gPiA+IHBncHJv dF9ub25jYWNoZWQoKSwgb24gdGhlIG90aGVyIGhhbmQsIHByb3ZpZGVzIHdoYXQgdGhlIGFyY2hp dGVjdHVyZSBjYWxscwo+ID4gPiA+IFN0cm9uZ2x5IE9yZGVyZWQgb3IgRGV2aWNlLW5HblJuRSBt ZW1vcnkuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIG1hcHBpbmcgTU1JTwo+ID4gPiA+IChpLmUuIFBD SSBjb25maWcgc3BhY2UpIGFuZCB0aGVyZWZvcmUgZm9yYmlkcyBzcGVjdWxhdGlvbiwgcHJlc2Vy dmVzIGFjY2Vzcwo+ID4gPiA+IHNpemUsIHJlcXVpcmVzIHN0cmljdCBhbGlnbm1lbnQgYW5kIGFs c28gZm9yY2VzIHdyaXRlIHJlc3BvbnNlcyB0byBjb21lIGZyb20KPiA+ID4gPiB0aGUgZW5kcG9p bnQuCj4gPiA+ID4gCj4gPiA+ID4gSSB0aGluayB0aGUgbmFtaW5nIG1pc21hdGNoIGlzIGhpc3Rv cmljYWwsIGJ1dCBvbiBhcm02NCB3ZSB3YW50ZWQgdG8gdXNlIHRoZQo+ID4gPiA+IHNhbWUgbmFt ZXMgYXMgYXJtMzIgc28gdGhhdCBhbnkgZHJpdmVycyB1c2luZyB0aGVzZSB0aGluZ3MgZGlyZWN0 bHkgd291bGQgZ2V0Cj4gPiA+ID4gdGhlIHNhbWUgYmVoYXZpb3VyLgo+ID4gPiAKPiA+ID4gVGhh dCBhbGwgbWFrZXMgc2Vuc2UsIGJ1dCBpdCB0b3RhbGx5IG5lZWRzIGEgY29tbWVudC4gIEknbGwg dHJ5IHRvIGRyYWZ0Cj4gPiA+IG9uZSBiYXNlZCBvbiB0aGlzLiAgSSd2ZSBhbHNvIGxvb2tlZCBh dCB0aGUgYXJtMzIgY29kZSBhIGJpdCBtb3JlLCBhbmQKPiA+ID4gaXQgc2VlbXMgYXJtIGFsd2F5 cyAoPykgc3VwcG9ydGVkIE5vcm1hbCBub24tY2FjaGVhYmxlIGF0dHJpYnV0ZSwgYnV0Cj4gPiA+ IExpbnV4IG9ubHkgb3B0aW9uYWxseSB1c2VzIGl0IGZvciBhcm0gdjYrIGJlY2F1c2Ugb2YgZmVh cnMgb2YgZHJpdmVycwo+ID4gPiBtaXNzaW5nIGJhcnJpZXJzLgo+ID4gCj4gPiBJIHRoaW5rIGl0 IHdhcyBhbHNvIHRvIGRvIHdpdGggYWxpYXNpbmcsIGJ1dCBJIGRvbid0IHJlY2FsbCBhbGwgb2Yg dGhlCj4gPiBkZXRhaWxzLgo+IAo+IEFSTXY2KyBpcyB3aGVyZSB0aGUgYXJjaGl0ZWN0dXJlIHNp Z25pZmljYW50bHkgY2hhbmdlZCB0byBpbnRyb2R1Y2UKPiB0aGUgaWRlYSBvZiBbTm9ybWFsLCBE ZXZpY2UsIFN0cm9uZ2x5IE9yZGVyZWRdIHdoZXJlIE5vcm1hbCBoYXMgdGhlCj4gY2FjaGUgYXR0 cmlidXRlcy4KPiAKPiBCZWZvcmUgdGhhdCwgd2UgaGFkIGp1c3QgInVuY2FjaGVkL3VuYnVmZmVy ZWQsIHVuY2FjaGVkL2J1ZmZlcmVkLAo+IGNhY2hlZC91bmJ1ZmZlcmVkLCBjYWNoZWQvYnVmZmVy ZWQiIG1vZGVzLgo+IAo+IFRoZSB3cml0ZSBidWZmZXIgKGVuYWJsZWQgYnkgYnVmZmVyZWQgbW9k ZXMpIGhhcyBubyBhcmNoaXRlY3RlZAo+IGd1YXJhbnRlZXMgYWJvdXQgaG93IGxvbmcgd3JpdGVz IHdpbGwgc2l0IGluIGl0LCBhbmQgdGhlcmUgaXMgb25seQo+IHRoZSAiZHJhaW4gd3JpdGUgYnVm ZmVyIiBpbnN0cnVjdGlvbiB0byBwdXNoIHdyaXRlcyBvdXQuCj4gCj4gVXAgdG8gYW5kIGluY2x1 ZGluZyBBUk12NSwgd2UgdG9vayB0aGUgZWFzeSBhcHByb2FjaCBvZiBqdXN0IHVzaW5nCj4gdGhl ICJ1bmNhY2hlZC91bmJ1ZmZlcmVkIiBtb2RlIHNpbmNlIHRoYXQgaXMgKGEpIHRoZSBzYWZlc3Qs IGFuZCAoYikKPiBhdm9pZHMgd3JpdGUgYnVmZmVycyB0aGF0IGFsaWFzIHdoZW4gdGhlcmUgYXJl IG11bHRpcGxlIGRpZmZlcmVudAo+IG1hcHBpbmdzLgo+IAo+IFdlIGNvdWxkIGhhdmUgdXNlZCBh IGRpZmZlcmVudCBhcHByb2FjaCwgbWFraW5nIGFsbCBJTyB3cml0ZXMgY29udGFpbgo+IGEgImRy YWluIHdyaXRlIGJ1ZmZlciIgaW5zdHJ1Y3Rpb24sIGFuZCBtYXAgRE1BIG1lbW9yeSBhcyAiYnVm ZmVyZWQiLAo+IGJ1dCBhcyB0aGVyZSB3ZXJlIG5vIExpbnV4IGJhcnJpZXJzIGRlZmluZWQgdG8g b3JkZXIgbWVtb3J5IGFjY2Vzc2VzCj4gdG8gRE1BIG1lbW9yeSAoc28sIGZvciBleGFtcGxlLCBy aW5nIGJ1ZmZlcnMgY2FuIGJlIHVwZGF0ZWQgaW4gdGhlCj4gY29ycmVjdCBvcmRlcikgYmFjayBp biB0aG9zZSBkYXlzLCB1c2luZyB0aGUgdW5jYWNoZWQvdW5idWZmZXJlZCBtb2RlCj4gd2FzIHRo ZSBzYW5lc3QgYW5kIG1vc3QgcmVsaWFibGUgc29sdXRpb24uCj4gCj4gPiAKPiA+ID4gVGhlIG90 aGVyIHJlYWxseSB3ZWlyZCB0aGluZ3MgaXMgdGhhdCBpbiBhcm0zMgo+ID4gPiBwZ3Byb3RfZG1h Y29oZXJlbnQgaW5jdWRlcyB0aGUgTF9QVEVfWE4gYml0LCB3aGljaCBmcm9tIG15IHVuZGVyc3Rh bmRpbmcKPiA+ID4gaXMgdGhlIG5vLWV4ZWN0dXJlIGJpdCwgYnV0IHBncHJvdF93cml0ZWNvbWJp bmUgZG9lcyBub3QuICBUaGlzIHNlZW1zIHRvCj4gPiA+IG5vdCB2ZXJ5IHVuaW50ZW50aW9uYWwu ICBTbyBtaW51cyB0aGF0IHRoZSB3aG9sZSBETUFfQVRUUl9XUklURV9DT01C0IZORQo+ID4gPiBz ZWVtcyB0byBiZSBhYm91dCBmbGFnZ2luZyBvbGQgYXJtIHNwZWNpZmljIGRyaXZlcnMgYXMgaGF2 aW5nIHRoZSBwcm9wZXIKPiA+ID4gYmFycmllcnMgaW4gcGxhY2VzIGFuZCBvdGhlcndpc2UgaXMg YSBuby1vcC4KPiA+IAo+ID4gSSB0aGluayBpdCBvbmx5IG1hdHRlcnMgZm9yIEFybXY3IENQVXMs IGJ1dCB5ZXMsIHdlIHNob3VsZCBwcm9iYWJseSBiZQo+ID4gc2V0dGluZyBMX1BURV9YTiBmb3Ig Ym90aCBvZiB0aGVzZSBtZW1vcnkgdHlwZXMuCj4gCj4gQ29udmVudGlvbmFsbHksIHBncHJvdF93 cml0ZWNvbWJpbmUoKSBoYXMgb25seSBiZWVuIHVzZWQgdG8gY2hhbmdlCj4gdGhlIG1lbW9yeSB0 eXBlIGFuZCBub3QgdGhlIHBlcm1pc3Npb25zLiAgU2luY2Ugd3JpdGVjb21iaW5lIG1lbW9yeQo+ IGlzIHN0aWxsIGNhcGFibGUgb2YgYmVpbmcgZXhlY3V0ZWQsIEkgZG9uJ3Qgc2VlIGFueSByZWFz b24gdG8gc2V0IFhOCj4gZm9yIGl0Lgo+IAo+IElmIHRoZSB1c2VyIHdpc2hlcyB0byBtbWFwKCkg dXNpbmcgUFJPVF9SRUFEfFBST1RfRVhFQywgdGhlbiBpcyB0aGVyZQo+IHJlYWxseSBhIHJlYXNv biBmb3Igd3JpdGVjb21iaW5lIHRvIHNldCBYTiBvdmVycmlkaW5nIHRoZSB1c2VyPwo+IAo+IFRo YXQgc2FpZCwgcGdwcm90X3dyaXRlY29tYmluZSgpIGlzIG1vc3RseSB1c2VkIGZvciBmcmFtZWJ1 ZmZlcnMsIHdoaWNoCj4gYXJndWFibHkgc2hvdWxkbid0IGJlIGV4ZWN1dGFibGUgYW55d2F5IC0g YnV0IHdobydkIHdhbnQgdG8gbW1hcCgpIHRoZQo+IGZyYW1lYnVmZmVyIHdpdGggUFJPVF9FWEVD Pwo+IAo+ID4gCj4gPiA+IEhlcmUgaXMgbXkgdGVudGF0aXZlIHBsYW46Cj4gPiA+IAo+ID4gPiAg LSByZXNwaW4gdGhpcyBwYXRjaCB3aXRoIGEgc21hbGwgZml4IHRvIGhhbmRsZSB0aGUKPiA+ID4g ICAgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQgKGFzIGluIGlnbm9yZSBpdCB1bmxlc3MgYWN0dWFs bHkgc3VwcG9ydGVkKSwKPiA+ID4gICAgYnV0IGtlZXAgdGhlIG5hbWUgYXMtaXMgdG8gYXZvaWQg Y2h1cm4uICBUaGlzIHNob3VsZCBhbGxvdyA1LjMKPiA+ID4gICAgaW5jbHVzaW9uIGFuZCBiYWNr cG9ydHMKPiA+ID4gIC0gcmVtb3ZlIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUgc3VwcG9ydCBmcm9t IG1pcHMsIHByb2JhYmx5IGFsc28gNS4zCj4gPiA+ICAgIG1hdGVyaWFsLgo+ID4gPiAgLSBtb3Zl IGFsbCBhcmNoaXRlY3R1cmVzIGJ1dCBhcm0gb3ZlciB0byBqdXN0IGRlZmluZQo+ID4gPiAgICBw Z3Byb3RfZG1hY29oZXJlbnQsIGluY2x1ZGluZyBhIGNvbW1lbnQgd2l0aCB0aGUgYWJvdmUgZXhw bGFuYXRpb24KPiA+ID4gICAgZm9yIGFybTY0Lgo+ID4gCj4gPiBUaGF0IHdvdWxkIGJlIGdyZWF0 LCB0aGFua3MuCj4gPiAKPiA+ID4gIC0gbWFrZSBETUFfQVRUUl9XUklURV9DT01CSU5FIGEgbm8t b3AgYW5kIHNjaGVkdWxlIGl0IGZvciByZW1vdmFsLAo+ID4gPiAgICB0aHVzIHJlbW92aW5nIHRo ZSBsYXN0IGluc3RhbmNlcyBvZiBhcmNoX2RtYV9tbWFwX3BncHJvdAo+ID4gCj4gPiBBbGwgc291 bmRzIGdvb2QgdG8gbWUsIGFsdGhvdWdoIEkgc3VwcG9zZSAzMi1iaXQgQXJtIHBsYXRmb3JtcyB3 aXRob3V0Cj4gPiBDT05GSUdfQVJNX0RNQV9NRU1fQlVGRkVSQUJMRSBtYXkgcnVuIGludG8gaXNz dWVzIGlmIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUKPiA+IGRpc2FwcGVhcnMuIE9ubHkgb25lIHdh eSB0byBmaW5kIG91dC4uLgo+IAo+IExvb2tpbmcgYXQgdGhlIHJlc3VsdHMgb2YgZ3JlcCwgSSB0 aGluayBvbmx5IE9NQVAyKyBhbmQgRXh5bm9zIG1heSBiZQo+IGFmZmVjdGVkLgo+IAo+IEhvd2V2 ZXIsIHJlbW92aW5nIHdyaXRlY29tYmluZSBzdXBwb3J0IGZyb20gdGhlIERNQSBBUEkgaXMgZ29p bmcgdG8KPiBoYXZlIGEgaHVnZSBpbXBhY3QgZm9yIGZyYW1lYnVmZmVycyBvbiBlYXJsaWVyIEFS TXMgLSB0aGF0J3Mgd2hlcmUgd2UKPiBkbyBleHBlY3QgZnJhbWVidWZmZXJzIHRvIGJlIG1hcHBl ZCAidW5jYWNoZWQvYnVmZmVyZWQiIGZvciBwZXJmb3JtYW5jZQo+IHJlYXNvbnMgYW5kIG5vdCAi dW5jYWNoZWQvdW5idWZmZXJlZCIuICBJdCdzIHF1aXRlIGxpdGVyYWxseSB0aGUKPiBkaWZmZXJl bmNlIGJldHdlZW4gY29uc29sZSBzY3JvbGxpbmcgYmVpbmcgdXNhYmxlIGFuZCB0b3RhbGx5IHVu dXNhYmxlLgo+IAo+IEdpdmVuIHdoYXQgSSd2ZSBzYWlkIGFib3ZlLCBzd2l0Y2hpbmcgdG8gdXNp bmcgYnVmZmVyZWQgbW9kZSBmb3Igbm9ybWFsCj4gRE1BIG1hcHBpbmdzIGlzIGRhdGEtY29ycnVw dGluZyByaXNreSAtIGFzIGluIHlvdXIgZmlsZXN5c3RlbSBjb3VsZCBnZXQKPiBmcmllZC4gIEkg ZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHBsYXkgZmFzdCBhbmQgbG9vc2Ugd2l0aCBwZW9wbGUncyBk YXRhCj4gYnkgcmFuZG9tbHkgY2hhbmdpbmcgdGhhdCAiYmVjYXVzZSB3ZSdkIGxpa2UgdG8iLCBh bmQgSSBkb24ndCBzZWUgdGhhdAo+IHNjcmV3aW5nIHRoZSBjb25zb2xlIGlzIHJlYWxseSBhbiBv cHRpb24gZWl0aGVyLgoKU29ycnksIEkgZm9yZ290IHRvIGV4cGxhaW4gLSB0aGUgcmVhc29uIGlz IGRtYV9hbGxvY193cml0ZWNvbWJpbmUoKQppbnRlcm5hbGx5IHVzZXMgRE1BX0FUVFJfV1JJVEVf Q09NQklORSwgd2hpY2ggSSdkIGZvcmdvdHRlbiBhYm91dAp3aGVuIGdyZXBwaW5nIC0gc28gdGhl cmUncyBwb3RlbnRpYWxseSB3YXkgbW9yZSB1c2VycyB0aGFuIG15IGdyZXBzCmFib3ZlIGZvdW5k LgoKLS0gClJNSydzIFBhdGNoIHN5c3RlbTogaHR0cHM6Ly93d3cuYXJtbGludXgub3JnLnVrL2Rl dmVsb3Blci9wYXRjaGVzLwpGVFRDIGJyb2FkYmFuZCBmb3IgMC44bWlsZSBsaW5lIGluIHN1YnVy YmlhOiBzeW5jIGF0IDEyLjFNYnBzIGRvd24gNjIya2JwcyB1cApBY2NvcmRpbmcgdG8gc3BlZWR0 ZXN0Lm5ldDogMTEuOU1icHMgZG93biA1MDBrYnBzIHVwCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1haWxpbmcgbGlzdAppb21tdUBsaXN0cy5s aW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFp bG1hbi9saXN0aW5mby9pb21tdQ== 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.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 DD226C433FF for ; Tue, 6 Aug 2019 16:51:09 +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 4021320C01 for ; Tue, 6 Aug 2019 16:51:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="eZwyX0IY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4021320C01 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=armlinux.org.uk 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 4630yJ3GMCzDr1f for ; Wed, 7 Aug 2019 02:51:04 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=armlinux.org.uk (client-ip=2001:4d48:ad52:3201:214:fdff:fe10:1be6; helo=pandora.armlinux.org.uk; envelope-from=linux+linuxppc-dev=lists.ozlabs.org@armlinux.org.uk; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=armlinux.org.uk Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="eZwyX0IY"; dkim-atps=neutral X-Greylist: delayed 173 seconds by postgrey-1.36 at bilbo; Wed, 07 Aug 2019 02:48:26 AEST Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:3201:214:fdff:fe10:1be6]) (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 4630vG3rlPzDr08 for ; Wed, 7 Aug 2019 02:48:26 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=2xbU9eGH8Hn5AbLibXFA8i2BhIbjPGsDxSHEGclO7DY=; b=eZwyX0IYZ2o1mynwE2Hz8BgOn 1IYSUKBfERotJIfG9zTtzX0bg4i08mQ5mMz6MCpMov84N9NI9dKaErTO39e8hveags+aR+z+d61qP W3w6jej9QozJBNVBhiIvdTj7/8x21XG296MB4TCw5PA3XToUIUHcmZVo2bgcj29giaXjSaRwo5m1i apKc2Nx+v1j2CSPgt0VzhW9CxMtyl+lhnoPIf1/QpSd7MesE+kISmudz2+Jf9n3t9voIsXSyen3WY +ze92NX2gq4pRI9lO51qHr+H7EmvaTCALnfcgZUyl64IRxEtq2PKmgi/japG58C1Z2+kdJ8eNmMbW Nmv4H0fpQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49228) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2dF-0000TH-Ou; Tue, 06 Aug 2019 17:48:17 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2dE-0000fq-Mb; Tue, 06 Aug 2019 17:48:16 +0100 Date: Tue, 6 Aug 2019 17:48:16 +0100 From: Russell King - ARM Linux admin To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164816.GE1330@shell.armlinux.org.uk> 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> <20190803064812.GA29746@lst.de> <20190806160854.htk67msiyadlrl4m@willie-the-truck> <20190806164503.GD1330@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190806164503.GD1330@shell.armlinux.org.uk> User-Agent: Mutt/1.10.1 (2018-07-13) 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 , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , linuxppc-dev@lists.ozlabs.org, Christoph Hellwig , linux-arm-kernel@lists.infradead.org, Robin Murphy Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Tue, Aug 06, 2019 at 05:45:03PM +0100, Russell King - ARM Linux admin wrote: > On Tue, Aug 06, 2019 at 05:08:54PM +0100, Will Deacon wrote: > > On Sat, Aug 03, 2019 at 08:48:12AM +0200, Christoph Hellwig wrote: > > > 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. > > > > I think it was also to do with aliasing, but I don't recall all of the > > details. > > ARMv6+ is where the architecture significantly changed to introduce > the idea of [Normal, Device, Strongly Ordered] where Normal has the > cache attributes. > > Before that, we had just "uncached/unbuffered, uncached/buffered, > cached/unbuffered, cached/buffered" modes. > > The write buffer (enabled by buffered modes) has no architected > guarantees about how long writes will sit in it, and there is only > the "drain write buffer" instruction to push writes out. > > Up to and including ARMv5, we took the easy approach of just using > the "uncached/unbuffered" mode since that is (a) the safest, and (b) > avoids write buffers that alias when there are multiple different > mappings. > > We could have used a different approach, making all IO writes contain > a "drain write buffer" instruction, and map DMA memory as "buffered", > but as there were no Linux barriers defined to order memory accesses > to DMA memory (so, for example, ring buffers can be updated in the > correct order) back in those days, using the uncached/unbuffered mode > was the sanest and most reliable solution. > > > > > > 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. > > > > I think it only matters for Armv7 CPUs, but yes, we should probably be > > setting L_PTE_XN for both of these memory types. > > Conventionally, pgprot_writecombine() has only been used to change > the memory type and not the permissions. Since writecombine memory > is still capable of being executed, I don't see any reason to set XN > for it. > > If the user wishes to mmap() using PROT_READ|PROT_EXEC, then is there > really a reason for writecombine to set XN overriding the user? > > That said, pgprot_writecombine() is mostly used for framebuffers, which > arguably shouldn't be executable anyway - but who'd want to mmap() the > framebuffer with PROT_EXEC? > > > > > > 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. > > > > That would be great, thanks. > > > > > - make DMA_ATTR_WRITE_COMBINE a no-op and schedule it for removal, > > > thus removing the last instances of arch_dma_mmap_pgprot > > > > All sounds good to me, although I suppose 32-bit Arm platforms without > > CONFIG_ARM_DMA_MEM_BUFFERABLE may run into issues if DMA_ATTR_WRITE_COMBINE > > disappears. Only one way to find out... > > Looking at the results of grep, I think only OMAP2+ and Exynos may be > affected. > > However, removing writecombine support from the DMA API is going to > have a huge impact for framebuffers on earlier ARMs - that's where we > do expect framebuffers to be mapped "uncached/buffered" for performance > reasons and not "uncached/unbuffered". It's quite literally the > difference between console scrolling being usable and totally unusable. > > Given what I've said above, switching to using buffered mode for normal > DMA mappings is data-corrupting risky - as in your filesystem could get > fried. I don't think we should play fast and loose with people's data > by randomly changing that "because we'd like to", and I don't see that > screwing the console is really an option either. Sorry, I forgot to explain - the reason is dma_alloc_writecombine() internally uses DMA_ATTR_WRITE_COMBINE, which I'd forgotten about when grepping - so there's potentially way more users than my greps above found. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up 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.3 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 207A4C31E40 for ; Tue, 6 Aug 2019 16:48:37 +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 E3CDC20B1F for ; Tue, 6 Aug 2019 16:48:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ttmutW5P"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="eZwyX0IY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E3CDC20B1F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=armlinux.org.uk 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=DILAxKvmY/Oiy61ozYaQh+wg8JBC1o4pTRSJnFy7MUg=; b=ttmutW5PJh3CNq nGAE9l4lzWOTzYfB5Q/j04+D9tjQhDQ1zTkLprLVe3ygJSQJy1GlNRgPZsa9qpo48WJbApMzhNmaz 7OkvvYItWp8C4gXyFRpSFVlvgbrbf35rUNPeOuZeF8m2x7TUJ1e3gv/VjUafLgbQlKX0lWpD7+OiD 5HvNAciehSdh+qNfx4h+IoiPWHRcDBcSZX7J6e8D2OY5pdqQmIcEQYW/FRA8M+EQSfUp2TUiHj/T9 1Yomwgy8o5NIEPfmmPv91YraEJjo3bMyLJS8sttMujhMBjgcilKpFd7aofM9isGLY7nLbDYlfRBLg 2vTPqvqHWVHNPBW9vgng==; 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 1hv2dY-00036b-Dl; Tue, 06 Aug 2019 16:48:36 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hv2dU-00035w-Cq for linux-arm-kernel@lists.infradead.org; Tue, 06 Aug 2019 16:48:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=2xbU9eGH8Hn5AbLibXFA8i2BhIbjPGsDxSHEGclO7DY=; b=eZwyX0IYZ2o1mynwE2Hz8BgOn 1IYSUKBfERotJIfG9zTtzX0bg4i08mQ5mMz6MCpMov84N9NI9dKaErTO39e8hveags+aR+z+d61qP W3w6jej9QozJBNVBhiIvdTj7/8x21XG296MB4TCw5PA3XToUIUHcmZVo2bgcj29giaXjSaRwo5m1i apKc2Nx+v1j2CSPgt0VzhW9CxMtyl+lhnoPIf1/QpSd7MesE+kISmudz2+Jf9n3t9voIsXSyen3WY +ze92NX2gq4pRI9lO51qHr+H7EmvaTCALnfcgZUyl64IRxEtq2PKmgi/japG58C1Z2+kdJ8eNmMbW Nmv4H0fpQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49228) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2dF-0000TH-Ou; Tue, 06 Aug 2019 17:48:17 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2dE-0000fq-Mb; Tue, 06 Aug 2019 17:48:16 +0100 Date: Tue, 6 Aug 2019 17:48:16 +0100 From: Russell King - ARM Linux admin To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164816.GE1330@shell.armlinux.org.uk> 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> <20190803064812.GA29746@lst.de> <20190806160854.htk67msiyadlrl4m@willie-the-truck> <20190806164503.GD1330@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190806164503.GD1330@shell.armlinux.org.uk> User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190806_094832_698387_1714CDA3 X-CRM114-Status: GOOD ( 32.57 ) 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 , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , linuxppc-dev@lists.ozlabs.org, Christoph Hellwig , linux-arm-kernel@lists.infradead.org, Robin Murphy 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 T24gVHVlLCBBdWcgMDYsIDIwMTkgYXQgMDU6NDU6MDNQTSArMDEwMCwgUnVzc2VsbCBLaW5nIC0g QVJNIExpbnV4IGFkbWluIHdyb3RlOgo+IE9uIFR1ZSwgQXVnIDA2LCAyMDE5IGF0IDA1OjA4OjU0 UE0gKzAxMDAsIFdpbGwgRGVhY29uIHdyb3RlOgo+ID4gT24gU2F0LCBBdWcgMDMsIDIwMTkgYXQg MDg6NDg6MTJBTSArMDIwMCwgQ2hyaXN0b3BoIEhlbGx3aWcgd3JvdGU6Cj4gPiA+IE9uIEZyaSwg QXVnIDAyLCAyMDE5IGF0IDExOjM4OjAzQU0gKzAxMDAsIFdpbGwgRGVhY29uIHdyb3RlOgo+ID4g PiA+IAo+ID4gPiA+IFNvIHRoaXMgYm9pbHMgZG93biB0byBhIHRlcm1pbm9sb2d5IG1pc21hdGNo LiBUaGUgQXJtIGFyY2hpdGVjdHVyZSBkb2Vzbid0IGhhdmUKPiA+ID4gPiBhbnl0aGluZyBjYWxs ZWQgIndyaXRlIGNvbWJpbmUiLCBzbyBpbiBMaW51eCB3ZSBpbnN0ZWFkIHByb3ZpZGUgd2hhdCB0 aGUgQXJtCj4gPiA+ID4gYXJjaGl0ZWN0dXJlIGNhbGxzICJOb3JtYWwgbm9uLWNhY2hlYWJsZSIg bWVtb3J5IGZvciBwZ3Byb3Rfd3JpdGVjb21iaW5lKCkuCj4gPiA+ID4gQW1vbmdzdCBvdGhlciB0 aGluZ3MsIHRoaXMgbWVtb3J5IHR5cGUgcGVybWl0cyBzcGVjdWxhdGlvbiwgdW5hbGlnbmVkIGFj Y2Vzc2VzCj4gPiA+ID4gYW5kIG1lcmdpbmcgb2Ygd3JpdGVzLiBJIGZvdW5kIHNvbWV0aGluZyBp biB0aGUgYXJjaGl0ZWN0dXJlIHNwZWMgYWJvdXQKPiA+ID4gPiBub24tY2FjaGFibGUgbWVtb3J5 LCBidXQgaXQncyB3cml0dGVuIGluIEFybWdsaXNoWzFdLgo+ID4gPiA+IAo+ID4gPiA+IHBncHJv dF9ub25jYWNoZWQoKSwgb24gdGhlIG90aGVyIGhhbmQsIHByb3ZpZGVzIHdoYXQgdGhlIGFyY2hp dGVjdHVyZSBjYWxscwo+ID4gPiA+IFN0cm9uZ2x5IE9yZGVyZWQgb3IgRGV2aWNlLW5HblJuRSBt ZW1vcnkuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIG1hcHBpbmcgTU1JTwo+ID4gPiA+IChpLmUuIFBD SSBjb25maWcgc3BhY2UpIGFuZCB0aGVyZWZvcmUgZm9yYmlkcyBzcGVjdWxhdGlvbiwgcHJlc2Vy dmVzIGFjY2Vzcwo+ID4gPiA+IHNpemUsIHJlcXVpcmVzIHN0cmljdCBhbGlnbm1lbnQgYW5kIGFs c28gZm9yY2VzIHdyaXRlIHJlc3BvbnNlcyB0byBjb21lIGZyb20KPiA+ID4gPiB0aGUgZW5kcG9p bnQuCj4gPiA+ID4gCj4gPiA+ID4gSSB0aGluayB0aGUgbmFtaW5nIG1pc21hdGNoIGlzIGhpc3Rv cmljYWwsIGJ1dCBvbiBhcm02NCB3ZSB3YW50ZWQgdG8gdXNlIHRoZQo+ID4gPiA+IHNhbWUgbmFt ZXMgYXMgYXJtMzIgc28gdGhhdCBhbnkgZHJpdmVycyB1c2luZyB0aGVzZSB0aGluZ3MgZGlyZWN0 bHkgd291bGQgZ2V0Cj4gPiA+ID4gdGhlIHNhbWUgYmVoYXZpb3VyLgo+ID4gPiAKPiA+ID4gVGhh dCBhbGwgbWFrZXMgc2Vuc2UsIGJ1dCBpdCB0b3RhbGx5IG5lZWRzIGEgY29tbWVudC4gIEknbGwg dHJ5IHRvIGRyYWZ0Cj4gPiA+IG9uZSBiYXNlZCBvbiB0aGlzLiAgSSd2ZSBhbHNvIGxvb2tlZCBh dCB0aGUgYXJtMzIgY29kZSBhIGJpdCBtb3JlLCBhbmQKPiA+ID4gaXQgc2VlbXMgYXJtIGFsd2F5 cyAoPykgc3VwcG9ydGVkIE5vcm1hbCBub24tY2FjaGVhYmxlIGF0dHJpYnV0ZSwgYnV0Cj4gPiA+ IExpbnV4IG9ubHkgb3B0aW9uYWxseSB1c2VzIGl0IGZvciBhcm0gdjYrIGJlY2F1c2Ugb2YgZmVh cnMgb2YgZHJpdmVycwo+ID4gPiBtaXNzaW5nIGJhcnJpZXJzLgo+ID4gCj4gPiBJIHRoaW5rIGl0 IHdhcyBhbHNvIHRvIGRvIHdpdGggYWxpYXNpbmcsIGJ1dCBJIGRvbid0IHJlY2FsbCBhbGwgb2Yg dGhlCj4gPiBkZXRhaWxzLgo+IAo+IEFSTXY2KyBpcyB3aGVyZSB0aGUgYXJjaGl0ZWN0dXJlIHNp Z25pZmljYW50bHkgY2hhbmdlZCB0byBpbnRyb2R1Y2UKPiB0aGUgaWRlYSBvZiBbTm9ybWFsLCBE ZXZpY2UsIFN0cm9uZ2x5IE9yZGVyZWRdIHdoZXJlIE5vcm1hbCBoYXMgdGhlCj4gY2FjaGUgYXR0 cmlidXRlcy4KPiAKPiBCZWZvcmUgdGhhdCwgd2UgaGFkIGp1c3QgInVuY2FjaGVkL3VuYnVmZmVy ZWQsIHVuY2FjaGVkL2J1ZmZlcmVkLAo+IGNhY2hlZC91bmJ1ZmZlcmVkLCBjYWNoZWQvYnVmZmVy ZWQiIG1vZGVzLgo+IAo+IFRoZSB3cml0ZSBidWZmZXIgKGVuYWJsZWQgYnkgYnVmZmVyZWQgbW9k ZXMpIGhhcyBubyBhcmNoaXRlY3RlZAo+IGd1YXJhbnRlZXMgYWJvdXQgaG93IGxvbmcgd3JpdGVz IHdpbGwgc2l0IGluIGl0LCBhbmQgdGhlcmUgaXMgb25seQo+IHRoZSAiZHJhaW4gd3JpdGUgYnVm ZmVyIiBpbnN0cnVjdGlvbiB0byBwdXNoIHdyaXRlcyBvdXQuCj4gCj4gVXAgdG8gYW5kIGluY2x1 ZGluZyBBUk12NSwgd2UgdG9vayB0aGUgZWFzeSBhcHByb2FjaCBvZiBqdXN0IHVzaW5nCj4gdGhl ICJ1bmNhY2hlZC91bmJ1ZmZlcmVkIiBtb2RlIHNpbmNlIHRoYXQgaXMgKGEpIHRoZSBzYWZlc3Qs IGFuZCAoYikKPiBhdm9pZHMgd3JpdGUgYnVmZmVycyB0aGF0IGFsaWFzIHdoZW4gdGhlcmUgYXJl IG11bHRpcGxlIGRpZmZlcmVudAo+IG1hcHBpbmdzLgo+IAo+IFdlIGNvdWxkIGhhdmUgdXNlZCBh IGRpZmZlcmVudCBhcHByb2FjaCwgbWFraW5nIGFsbCBJTyB3cml0ZXMgY29udGFpbgo+IGEgImRy YWluIHdyaXRlIGJ1ZmZlciIgaW5zdHJ1Y3Rpb24sIGFuZCBtYXAgRE1BIG1lbW9yeSBhcyAiYnVm ZmVyZWQiLAo+IGJ1dCBhcyB0aGVyZSB3ZXJlIG5vIExpbnV4IGJhcnJpZXJzIGRlZmluZWQgdG8g b3JkZXIgbWVtb3J5IGFjY2Vzc2VzCj4gdG8gRE1BIG1lbW9yeSAoc28sIGZvciBleGFtcGxlLCBy aW5nIGJ1ZmZlcnMgY2FuIGJlIHVwZGF0ZWQgaW4gdGhlCj4gY29ycmVjdCBvcmRlcikgYmFjayBp biB0aG9zZSBkYXlzLCB1c2luZyB0aGUgdW5jYWNoZWQvdW5idWZmZXJlZCBtb2RlCj4gd2FzIHRo ZSBzYW5lc3QgYW5kIG1vc3QgcmVsaWFibGUgc29sdXRpb24uCj4gCj4gPiAKPiA+ID4gVGhlIG90 aGVyIHJlYWxseSB3ZWlyZCB0aGluZ3MgaXMgdGhhdCBpbiBhcm0zMgo+ID4gPiBwZ3Byb3RfZG1h Y29oZXJlbnQgaW5jdWRlcyB0aGUgTF9QVEVfWE4gYml0LCB3aGljaCBmcm9tIG15IHVuZGVyc3Rh bmRpbmcKPiA+ID4gaXMgdGhlIG5vLWV4ZWN0dXJlIGJpdCwgYnV0IHBncHJvdF93cml0ZWNvbWJp bmUgZG9lcyBub3QuICBUaGlzIHNlZW1zIHRvCj4gPiA+IG5vdCB2ZXJ5IHVuaW50ZW50aW9uYWwu ICBTbyBtaW51cyB0aGF0IHRoZSB3aG9sZSBETUFfQVRUUl9XUklURV9DT01C0IZORQo+ID4gPiBz ZWVtcyB0byBiZSBhYm91dCBmbGFnZ2luZyBvbGQgYXJtIHNwZWNpZmljIGRyaXZlcnMgYXMgaGF2 aW5nIHRoZSBwcm9wZXIKPiA+ID4gYmFycmllcnMgaW4gcGxhY2VzIGFuZCBvdGhlcndpc2UgaXMg YSBuby1vcC4KPiA+IAo+ID4gSSB0aGluayBpdCBvbmx5IG1hdHRlcnMgZm9yIEFybXY3IENQVXMs IGJ1dCB5ZXMsIHdlIHNob3VsZCBwcm9iYWJseSBiZQo+ID4gc2V0dGluZyBMX1BURV9YTiBmb3Ig Ym90aCBvZiB0aGVzZSBtZW1vcnkgdHlwZXMuCj4gCj4gQ29udmVudGlvbmFsbHksIHBncHJvdF93 cml0ZWNvbWJpbmUoKSBoYXMgb25seSBiZWVuIHVzZWQgdG8gY2hhbmdlCj4gdGhlIG1lbW9yeSB0 eXBlIGFuZCBub3QgdGhlIHBlcm1pc3Npb25zLiAgU2luY2Ugd3JpdGVjb21iaW5lIG1lbW9yeQo+ IGlzIHN0aWxsIGNhcGFibGUgb2YgYmVpbmcgZXhlY3V0ZWQsIEkgZG9uJ3Qgc2VlIGFueSByZWFz b24gdG8gc2V0IFhOCj4gZm9yIGl0Lgo+IAo+IElmIHRoZSB1c2VyIHdpc2hlcyB0byBtbWFwKCkg dXNpbmcgUFJPVF9SRUFEfFBST1RfRVhFQywgdGhlbiBpcyB0aGVyZQo+IHJlYWxseSBhIHJlYXNv biBmb3Igd3JpdGVjb21iaW5lIHRvIHNldCBYTiBvdmVycmlkaW5nIHRoZSB1c2VyPwo+IAo+IFRo YXQgc2FpZCwgcGdwcm90X3dyaXRlY29tYmluZSgpIGlzIG1vc3RseSB1c2VkIGZvciBmcmFtZWJ1 ZmZlcnMsIHdoaWNoCj4gYXJndWFibHkgc2hvdWxkbid0IGJlIGV4ZWN1dGFibGUgYW55d2F5IC0g YnV0IHdobydkIHdhbnQgdG8gbW1hcCgpIHRoZQo+IGZyYW1lYnVmZmVyIHdpdGggUFJPVF9FWEVD Pwo+IAo+ID4gCj4gPiA+IEhlcmUgaXMgbXkgdGVudGF0aXZlIHBsYW46Cj4gPiA+IAo+ID4gPiAg LSByZXNwaW4gdGhpcyBwYXRjaCB3aXRoIGEgc21hbGwgZml4IHRvIGhhbmRsZSB0aGUKPiA+ID4g ICAgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQgKGFzIGluIGlnbm9yZSBpdCB1bmxlc3MgYWN0dWFs bHkgc3VwcG9ydGVkKSwKPiA+ID4gICAgYnV0IGtlZXAgdGhlIG5hbWUgYXMtaXMgdG8gYXZvaWQg Y2h1cm4uICBUaGlzIHNob3VsZCBhbGxvdyA1LjMKPiA+ID4gICAgaW5jbHVzaW9uIGFuZCBiYWNr cG9ydHMKPiA+ID4gIC0gcmVtb3ZlIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUgc3VwcG9ydCBmcm9t IG1pcHMsIHByb2JhYmx5IGFsc28gNS4zCj4gPiA+ICAgIG1hdGVyaWFsLgo+ID4gPiAgLSBtb3Zl IGFsbCBhcmNoaXRlY3R1cmVzIGJ1dCBhcm0gb3ZlciB0byBqdXN0IGRlZmluZQo+ID4gPiAgICBw Z3Byb3RfZG1hY29oZXJlbnQsIGluY2x1ZGluZyBhIGNvbW1lbnQgd2l0aCB0aGUgYWJvdmUgZXhw bGFuYXRpb24KPiA+ID4gICAgZm9yIGFybTY0Lgo+ID4gCj4gPiBUaGF0IHdvdWxkIGJlIGdyZWF0 LCB0aGFua3MuCj4gPiAKPiA+ID4gIC0gbWFrZSBETUFfQVRUUl9XUklURV9DT01CSU5FIGEgbm8t b3AgYW5kIHNjaGVkdWxlIGl0IGZvciByZW1vdmFsLAo+ID4gPiAgICB0aHVzIHJlbW92aW5nIHRo ZSBsYXN0IGluc3RhbmNlcyBvZiBhcmNoX2RtYV9tbWFwX3BncHJvdAo+ID4gCj4gPiBBbGwgc291 bmRzIGdvb2QgdG8gbWUsIGFsdGhvdWdoIEkgc3VwcG9zZSAzMi1iaXQgQXJtIHBsYXRmb3JtcyB3 aXRob3V0Cj4gPiBDT05GSUdfQVJNX0RNQV9NRU1fQlVGRkVSQUJMRSBtYXkgcnVuIGludG8gaXNz dWVzIGlmIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUKPiA+IGRpc2FwcGVhcnMuIE9ubHkgb25lIHdh eSB0byBmaW5kIG91dC4uLgo+IAo+IExvb2tpbmcgYXQgdGhlIHJlc3VsdHMgb2YgZ3JlcCwgSSB0 aGluayBvbmx5IE9NQVAyKyBhbmQgRXh5bm9zIG1heSBiZQo+IGFmZmVjdGVkLgo+IAo+IEhvd2V2 ZXIsIHJlbW92aW5nIHdyaXRlY29tYmluZSBzdXBwb3J0IGZyb20gdGhlIERNQSBBUEkgaXMgZ29p bmcgdG8KPiBoYXZlIGEgaHVnZSBpbXBhY3QgZm9yIGZyYW1lYnVmZmVycyBvbiBlYXJsaWVyIEFS TXMgLSB0aGF0J3Mgd2hlcmUgd2UKPiBkbyBleHBlY3QgZnJhbWVidWZmZXJzIHRvIGJlIG1hcHBl ZCAidW5jYWNoZWQvYnVmZmVyZWQiIGZvciBwZXJmb3JtYW5jZQo+IHJlYXNvbnMgYW5kIG5vdCAi dW5jYWNoZWQvdW5idWZmZXJlZCIuICBJdCdzIHF1aXRlIGxpdGVyYWxseSB0aGUKPiBkaWZmZXJl bmNlIGJldHdlZW4gY29uc29sZSBzY3JvbGxpbmcgYmVpbmcgdXNhYmxlIGFuZCB0b3RhbGx5IHVu dXNhYmxlLgo+IAo+IEdpdmVuIHdoYXQgSSd2ZSBzYWlkIGFib3ZlLCBzd2l0Y2hpbmcgdG8gdXNp bmcgYnVmZmVyZWQgbW9kZSBmb3Igbm9ybWFsCj4gRE1BIG1hcHBpbmdzIGlzIGRhdGEtY29ycnVw dGluZyByaXNreSAtIGFzIGluIHlvdXIgZmlsZXN5c3RlbSBjb3VsZCBnZXQKPiBmcmllZC4gIEkg ZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHBsYXkgZmFzdCBhbmQgbG9vc2Ugd2l0aCBwZW9wbGUncyBk YXRhCj4gYnkgcmFuZG9tbHkgY2hhbmdpbmcgdGhhdCAiYmVjYXVzZSB3ZSdkIGxpa2UgdG8iLCBh bmQgSSBkb24ndCBzZWUgdGhhdAo+IHNjcmV3aW5nIHRoZSBjb25zb2xlIGlzIHJlYWxseSBhbiBv cHRpb24gZWl0aGVyLgoKU29ycnksIEkgZm9yZ290IHRvIGV4cGxhaW4gLSB0aGUgcmVhc29uIGlz IGRtYV9hbGxvY193cml0ZWNvbWJpbmUoKQppbnRlcm5hbGx5IHVzZXMgRE1BX0FUVFJfV1JJVEVf Q09NQklORSwgd2hpY2ggSSdkIGZvcmdvdHRlbiBhYm91dAp3aGVuIGdyZXBwaW5nIC0gc28gdGhl cmUncyBwb3RlbnRpYWxseSB3YXkgbW9yZSB1c2VycyB0aGFuIG15IGdyZXBzCmFib3ZlIGZvdW5k LgoKLS0gClJNSydzIFBhdGNoIHN5c3RlbTogaHR0cHM6Ly93d3cuYXJtbGludXgub3JnLnVrL2Rl dmVsb3Blci9wYXRjaGVzLwpGVFRDIGJyb2FkYmFuZCBmb3IgMC44bWlsZSBsaW5lIGluIHN1YnVy YmlhOiBzeW5jIGF0IDEyLjFNYnBzIGRvd24gNjIya2JwcyB1cApBY2NvcmRpbmcgdG8gc3BlZWR0 ZXN0Lm5ldDogMTEuOU1icHMgZG93biA1MDBrYnBzIHVwCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 7FF80C433FF for ; Tue, 6 Aug 2019 16:48:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4510420C01 for ; Tue, 6 Aug 2019 16:48:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="eZwyX0IY" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387951AbfHFQsZ (ORCPT ); Tue, 6 Aug 2019 12:48:25 -0400 Received: from pandora.armlinux.org.uk ([78.32.30.218]:37098 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732788AbfHFQsY (ORCPT ); Tue, 6 Aug 2019 12:48:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=2xbU9eGH8Hn5AbLibXFA8i2BhIbjPGsDxSHEGclO7DY=; b=eZwyX0IYZ2o1mynwE2Hz8BgOn 1IYSUKBfERotJIfG9zTtzX0bg4i08mQ5mMz6MCpMov84N9NI9dKaErTO39e8hveags+aR+z+d61qP W3w6jej9QozJBNVBhiIvdTj7/8x21XG296MB4TCw5PA3XToUIUHcmZVo2bgcj29giaXjSaRwo5m1i apKc2Nx+v1j2CSPgt0VzhW9CxMtyl+lhnoPIf1/QpSd7MesE+kISmudz2+Jf9n3t9voIsXSyen3WY +ze92NX2gq4pRI9lO51qHr+H7EmvaTCALnfcgZUyl64IRxEtq2PKmgi/japG58C1Z2+kdJ8eNmMbW Nmv4H0fpQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49228) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2dF-0000TH-Ou; Tue, 06 Aug 2019 17:48:17 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2dE-0000fq-Mb; Tue, 06 Aug 2019 17:48:16 +0100 Date: Tue, 6 Aug 2019 17:48:16 +0100 From: Russell King - ARM Linux admin To: Will Deacon Cc: Shawn Anastasio , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Catalin Marinas , Robin Murphy , Christoph Hellwig , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164816.GE1330@shell.armlinux.org.uk> 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> <20190803064812.GA29746@lst.de> <20190806160854.htk67msiyadlrl4m@willie-the-truck> <20190806164503.GD1330@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190806164503.GD1330@shell.armlinux.org.uk> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 06, 2019 at 05:45:03PM +0100, Russell King - ARM Linux admin wrote: > On Tue, Aug 06, 2019 at 05:08:54PM +0100, Will Deacon wrote: > > On Sat, Aug 03, 2019 at 08:48:12AM +0200, Christoph Hellwig wrote: > > > 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. > > > > I think it was also to do with aliasing, but I don't recall all of the > > details. > > ARMv6+ is where the architecture significantly changed to introduce > the idea of [Normal, Device, Strongly Ordered] where Normal has the > cache attributes. > > Before that, we had just "uncached/unbuffered, uncached/buffered, > cached/unbuffered, cached/buffered" modes. > > The write buffer (enabled by buffered modes) has no architected > guarantees about how long writes will sit in it, and there is only > the "drain write buffer" instruction to push writes out. > > Up to and including ARMv5, we took the easy approach of just using > the "uncached/unbuffered" mode since that is (a) the safest, and (b) > avoids write buffers that alias when there are multiple different > mappings. > > We could have used a different approach, making all IO writes contain > a "drain write buffer" instruction, and map DMA memory as "buffered", > but as there were no Linux barriers defined to order memory accesses > to DMA memory (so, for example, ring buffers can be updated in the > correct order) back in those days, using the uncached/unbuffered mode > was the sanest and most reliable solution. > > > > > > 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. > > > > I think it only matters for Armv7 CPUs, but yes, we should probably be > > setting L_PTE_XN for both of these memory types. > > Conventionally, pgprot_writecombine() has only been used to change > the memory type and not the permissions. Since writecombine memory > is still capable of being executed, I don't see any reason to set XN > for it. > > If the user wishes to mmap() using PROT_READ|PROT_EXEC, then is there > really a reason for writecombine to set XN overriding the user? > > That said, pgprot_writecombine() is mostly used for framebuffers, which > arguably shouldn't be executable anyway - but who'd want to mmap() the > framebuffer with PROT_EXEC? > > > > > > 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. > > > > That would be great, thanks. > > > > > - make DMA_ATTR_WRITE_COMBINE a no-op and schedule it for removal, > > > thus removing the last instances of arch_dma_mmap_pgprot > > > > All sounds good to me, although I suppose 32-bit Arm platforms without > > CONFIG_ARM_DMA_MEM_BUFFERABLE may run into issues if DMA_ATTR_WRITE_COMBINE > > disappears. Only one way to find out... > > Looking at the results of grep, I think only OMAP2+ and Exynos may be > affected. > > However, removing writecombine support from the DMA API is going to > have a huge impact for framebuffers on earlier ARMs - that's where we > do expect framebuffers to be mapped "uncached/buffered" for performance > reasons and not "uncached/unbuffered". It's quite literally the > difference between console scrolling being usable and totally unusable. > > Given what I've said above, switching to using buffered mode for normal > DMA mappings is data-corrupting risky - as in your filesystem could get > fried. I don't think we should play fast and loose with people's data > by randomly changing that "because we'd like to", and I don't see that > screwing the console is really an option either. Sorry, I forgot to explain - the reason is dma_alloc_writecombine() internally uses DMA_ATTR_WRITE_COMBINE, which I'd forgotten about when grepping - so there's potentially way more users than my greps above found. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up