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 20ABAC433FF for ; Tue, 6 Aug 2019 16:45:18 +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 DE47020B1F for ; Tue, 6 Aug 2019 16:45:17 +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="AY0UMJb+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DE47020B1F 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 B4FC8E96; Tue, 6 Aug 2019 16:45:17 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 9969AE95 for ; Tue, 6 Aug 2019 16:45:15 +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 5C5E2829 for ; Tue, 6 Aug 2019 16:45:14 +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=L8Qsi9HRlyoVoGH2S+hSRi65LltiNgW4vXbUSsBYNjo=; b=AY0UMJb+iW++EBhB14ReL07/6 b0pFwP1ANs8Ey7rLTMwawQUMPdUAgfQRQVnZ/OR7JKCYpuel75mq1XkvJI3943Z3MQqQqQhkmdhxO gMiRvM5UopNJOrzm9fVvISbh1BDxrhypglyOjuUgab1W+soP+Y92sFkPmzHVACpr+/u106dEpfBCi WoNn1LreZ4+hkZCRMYbGZ1hOFo9APnQctrKosgfefHdeyXB6/JMXLVG9ifNeovhlGxV0lw0W8ajJ3 1igtLNju1aD0Nr45s4CdgQBE/9z4vnCe4JZPjGxIYq1S39XMDc/p6GxbFVUBCrhp5yKR6Z534S6qB 7mcKWkceQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49226) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2aC-0000SB-Ab; Tue, 06 Aug 2019 17:45:08 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2a7-0000fh-Ka; Tue, 06 Aug 2019 17:45:03 +0100 Date: Tue, 6 Aug 2019 17:45:03 +0100 From: Russell King - ARM Linux admin To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164503.GD1330@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> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190806160854.htk67msiyadlrl4m@willie-the-truck> User-Agent: Mutt/1.10.1 (2018-07-13) 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 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 T24gVHVlLCBBdWcgMDYsIDIwMTkgYXQgMDU6MDg6NTRQTSArMDEwMCwgV2lsbCBEZWFjb24gd3Jv dGU6Cj4gT24gU2F0LCBBdWcgMDMsIDIwMTkgYXQgMDg6NDg6MTJBTSArMDIwMCwgQ2hyaXN0b3Bo IEhlbGx3aWcgd3JvdGU6Cj4gPiBPbiBGcmksIEF1ZyAwMiwgMjAxOSBhdCAxMTozODowM0FNICsw MTAwLCBXaWxsIERlYWNvbiB3cm90ZToKPiA+ID4gCj4gPiA+IFNvIHRoaXMgYm9pbHMgZG93biB0 byBhIHRlcm1pbm9sb2d5IG1pc21hdGNoLiBUaGUgQXJtIGFyY2hpdGVjdHVyZSBkb2Vzbid0IGhh dmUKPiA+ID4gYW55dGhpbmcgY2FsbGVkICJ3cml0ZSBjb21iaW5lIiwgc28gaW4gTGludXggd2Ug aW5zdGVhZCBwcm92aWRlIHdoYXQgdGhlIEFybQo+ID4gPiBhcmNoaXRlY3R1cmUgY2FsbHMgIk5v cm1hbCBub24tY2FjaGVhYmxlIiBtZW1vcnkgZm9yIHBncHJvdF93cml0ZWNvbWJpbmUoKS4KPiA+ ID4gQW1vbmdzdCBvdGhlciB0aGluZ3MsIHRoaXMgbWVtb3J5IHR5cGUgcGVybWl0cyBzcGVjdWxh dGlvbiwgdW5hbGlnbmVkIGFjY2Vzc2VzCj4gPiA+IGFuZCBtZXJnaW5nIG9mIHdyaXRlcy4gSSBm b3VuZCBzb21ldGhpbmcgaW4gdGhlIGFyY2hpdGVjdHVyZSBzcGVjIGFib3V0Cj4gPiA+IG5vbi1j YWNoYWJsZSBtZW1vcnksIGJ1dCBpdCdzIHdyaXR0ZW4gaW4gQXJtZ2xpc2hbMV0uCj4gPiA+IAo+ ID4gPiBwZ3Byb3Rfbm9uY2FjaGVkKCksIG9uIHRoZSBvdGhlciBoYW5kLCBwcm92aWRlcyB3aGF0 IHRoZSBhcmNoaXRlY3R1cmUgY2FsbHMKPiA+ID4gU3Ryb25nbHkgT3JkZXJlZCBvciBEZXZpY2Ut bkduUm5FIG1lbW9yeS4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgbWFwcGluZyBNTUlPCj4gPiA+IChp LmUuIFBDSSBjb25maWcgc3BhY2UpIGFuZCB0aGVyZWZvcmUgZm9yYmlkcyBzcGVjdWxhdGlvbiwg cHJlc2VydmVzIGFjY2Vzcwo+ID4gPiBzaXplLCByZXF1aXJlcyBzdHJpY3QgYWxpZ25tZW50IGFu ZCBhbHNvIGZvcmNlcyB3cml0ZSByZXNwb25zZXMgdG8gY29tZSBmcm9tCj4gPiA+IHRoZSBlbmRw b2ludC4KPiA+ID4gCj4gPiA+IEkgdGhpbmsgdGhlIG5hbWluZyBtaXNtYXRjaCBpcyBoaXN0b3Jp Y2FsLCBidXQgb24gYXJtNjQgd2Ugd2FudGVkIHRvIHVzZSB0aGUKPiA+ID4gc2FtZSBuYW1lcyBh cyBhcm0zMiBzbyB0aGF0IGFueSBkcml2ZXJzIHVzaW5nIHRoZXNlIHRoaW5ncyBkaXJlY3RseSB3 b3VsZCBnZXQKPiA+ID4gdGhlIHNhbWUgYmVoYXZpb3VyLgo+ID4gCj4gPiBUaGF0IGFsbCBtYWtl cyBzZW5zZSwgYnV0IGl0IHRvdGFsbHkgbmVlZHMgYSBjb21tZW50LiAgSSdsbCB0cnkgdG8gZHJh ZnQKPiA+IG9uZSBiYXNlZCBvbiB0aGlzLiAgSSd2ZSBhbHNvIGxvb2tlZCBhdCB0aGUgYXJtMzIg Y29kZSBhIGJpdCBtb3JlLCBhbmQKPiA+IGl0IHNlZW1zIGFybSBhbHdheXMgKD8pIHN1cHBvcnRl ZCBOb3JtYWwgbm9uLWNhY2hlYWJsZSBhdHRyaWJ1dGUsIGJ1dAo+ID4gTGludXggb25seSBvcHRp b25hbGx5IHVzZXMgaXQgZm9yIGFybSB2NisgYmVjYXVzZSBvZiBmZWFycyBvZiBkcml2ZXJzCj4g PiBtaXNzaW5nIGJhcnJpZXJzLgo+IAo+IEkgdGhpbmsgaXQgd2FzIGFsc28gdG8gZG8gd2l0aCBh bGlhc2luZywgYnV0IEkgZG9uJ3QgcmVjYWxsIGFsbCBvZiB0aGUKPiBkZXRhaWxzLgoKQVJNdjYr IGlzIHdoZXJlIHRoZSBhcmNoaXRlY3R1cmUgc2lnbmlmaWNhbnRseSBjaGFuZ2VkIHRvIGludHJv ZHVjZQp0aGUgaWRlYSBvZiBbTm9ybWFsLCBEZXZpY2UsIFN0cm9uZ2x5IE9yZGVyZWRdIHdoZXJl IE5vcm1hbCBoYXMgdGhlCmNhY2hlIGF0dHJpYnV0ZXMuCgpCZWZvcmUgdGhhdCwgd2UgaGFkIGp1 c3QgInVuY2FjaGVkL3VuYnVmZmVyZWQsIHVuY2FjaGVkL2J1ZmZlcmVkLApjYWNoZWQvdW5idWZm ZXJlZCwgY2FjaGVkL2J1ZmZlcmVkIiBtb2Rlcy4KClRoZSB3cml0ZSBidWZmZXIgKGVuYWJsZWQg YnkgYnVmZmVyZWQgbW9kZXMpIGhhcyBubyBhcmNoaXRlY3RlZApndWFyYW50ZWVzIGFib3V0IGhv dyBsb25nIHdyaXRlcyB3aWxsIHNpdCBpbiBpdCwgYW5kIHRoZXJlIGlzIG9ubHkKdGhlICJkcmFp biB3cml0ZSBidWZmZXIiIGluc3RydWN0aW9uIHRvIHB1c2ggd3JpdGVzIG91dC4KClVwIHRvIGFu ZCBpbmNsdWRpbmcgQVJNdjUsIHdlIHRvb2sgdGhlIGVhc3kgYXBwcm9hY2ggb2YganVzdCB1c2lu Zwp0aGUgInVuY2FjaGVkL3VuYnVmZmVyZWQiIG1vZGUgc2luY2UgdGhhdCBpcyAoYSkgdGhlIHNh ZmVzdCwgYW5kIChiKQphdm9pZHMgd3JpdGUgYnVmZmVycyB0aGF0IGFsaWFzIHdoZW4gdGhlcmUg YXJlIG11bHRpcGxlIGRpZmZlcmVudAptYXBwaW5ncy4KCldlIGNvdWxkIGhhdmUgdXNlZCBhIGRp ZmZlcmVudCBhcHByb2FjaCwgbWFraW5nIGFsbCBJTyB3cml0ZXMgY29udGFpbgphICJkcmFpbiB3 cml0ZSBidWZmZXIiIGluc3RydWN0aW9uLCBhbmQgbWFwIERNQSBtZW1vcnkgYXMgImJ1ZmZlcmVk IiwKYnV0IGFzIHRoZXJlIHdlcmUgbm8gTGludXggYmFycmllcnMgZGVmaW5lZCB0byBvcmRlciBt ZW1vcnkgYWNjZXNzZXMKdG8gRE1BIG1lbW9yeSAoc28sIGZvciBleGFtcGxlLCByaW5nIGJ1ZmZl cnMgY2FuIGJlIHVwZGF0ZWQgaW4gdGhlCmNvcnJlY3Qgb3JkZXIpIGJhY2sgaW4gdGhvc2UgZGF5 cywgdXNpbmcgdGhlIHVuY2FjaGVkL3VuYnVmZmVyZWQgbW9kZQp3YXMgdGhlIHNhbmVzdCBhbmQg bW9zdCByZWxpYWJsZSBzb2x1dGlvbi4KCj4gCj4gPiBUaGUgb3RoZXIgcmVhbGx5IHdlaXJkIHRo aW5ncyBpcyB0aGF0IGluIGFybTMyCj4gPiBwZ3Byb3RfZG1hY29oZXJlbnQgaW5jdWRlcyB0aGUg TF9QVEVfWE4gYml0LCB3aGljaCBmcm9tIG15IHVuZGVyc3RhbmRpbmcKPiA+IGlzIHRoZSBuby1l eGVjdHVyZSBiaXQsIGJ1dCBwZ3Byb3Rfd3JpdGVjb21iaW5lIGRvZXMgbm90LiAgVGhpcyBzZWVt cyB0bwo+ID4gbm90IHZlcnkgdW5pbnRlbnRpb25hbC4gIFNvIG1pbnVzIHRoYXQgdGhlIHdob2xl IERNQV9BVFRSX1dSSVRFX0NPTULQhk5FCj4gPiBzZWVtcyB0byBiZSBhYm91dCBmbGFnZ2luZyBv bGQgYXJtIHNwZWNpZmljIGRyaXZlcnMgYXMgaGF2aW5nIHRoZSBwcm9wZXIKPiA+IGJhcnJpZXJz IGluIHBsYWNlcyBhbmQgb3RoZXJ3aXNlIGlzIGEgbm8tb3AuCj4gCj4gSSB0aGluayBpdCBvbmx5 IG1hdHRlcnMgZm9yIEFybXY3IENQVXMsIGJ1dCB5ZXMsIHdlIHNob3VsZCBwcm9iYWJseSBiZQo+ IHNldHRpbmcgTF9QVEVfWE4gZm9yIGJvdGggb2YgdGhlc2UgbWVtb3J5IHR5cGVzLgoKQ29udmVu dGlvbmFsbHksIHBncHJvdF93cml0ZWNvbWJpbmUoKSBoYXMgb25seSBiZWVuIHVzZWQgdG8gY2hh bmdlCnRoZSBtZW1vcnkgdHlwZSBhbmQgbm90IHRoZSBwZXJtaXNzaW9ucy4gIFNpbmNlIHdyaXRl Y29tYmluZSBtZW1vcnkKaXMgc3RpbGwgY2FwYWJsZSBvZiBiZWluZyBleGVjdXRlZCwgSSBkb24n dCBzZWUgYW55IHJlYXNvbiB0byBzZXQgWE4KZm9yIGl0LgoKSWYgdGhlIHVzZXIgd2lzaGVzIHRv IG1tYXAoKSB1c2luZyBQUk9UX1JFQUR8UFJPVF9FWEVDLCB0aGVuIGlzIHRoZXJlCnJlYWxseSBh IHJlYXNvbiBmb3Igd3JpdGVjb21iaW5lIHRvIHNldCBYTiBvdmVycmlkaW5nIHRoZSB1c2VyPwoK VGhhdCBzYWlkLCBwZ3Byb3Rfd3JpdGVjb21iaW5lKCkgaXMgbW9zdGx5IHVzZWQgZm9yIGZyYW1l YnVmZmVycywgd2hpY2gKYXJndWFibHkgc2hvdWxkbid0IGJlIGV4ZWN1dGFibGUgYW55d2F5IC0g YnV0IHdobydkIHdhbnQgdG8gbW1hcCgpIHRoZQpmcmFtZWJ1ZmZlciB3aXRoIFBST1RfRVhFQz8K Cj4gCj4gPiBIZXJlIGlzIG15IHRlbnRhdGl2ZSBwbGFuOgo+ID4gCj4gPiAgLSByZXNwaW4gdGhp cyBwYXRjaCB3aXRoIGEgc21hbGwgZml4IHRvIGhhbmRsZSB0aGUKPiA+ICAgIERNQV9BVFRSX05P Tl9DT05TSVNURU5UIChhcyBpbiBpZ25vcmUgaXQgdW5sZXNzIGFjdHVhbGx5IHN1cHBvcnRlZCks Cj4gPiAgICBidXQga2VlcCB0aGUgbmFtZSBhcy1pcyB0byBhdm9pZCBjaHVybi4gIFRoaXMgc2hv dWxkIGFsbG93IDUuMwo+ID4gICAgaW5jbHVzaW9uIGFuZCBiYWNrcG9ydHMKPiA+ICAtIHJlbW92 ZSBETUFfQVRUUl9XUklURV9DT01CSU5FIHN1cHBvcnQgZnJvbSBtaXBzLCBwcm9iYWJseSBhbHNv IDUuMwo+ID4gICAgbWF0ZXJpYWwuCj4gPiAgLSBtb3ZlIGFsbCBhcmNoaXRlY3R1cmVzIGJ1dCBh cm0gb3ZlciB0byBqdXN0IGRlZmluZQo+ID4gICAgcGdwcm90X2RtYWNvaGVyZW50LCBpbmNsdWRp bmcgYSBjb21tZW50IHdpdGggdGhlIGFib3ZlIGV4cGxhbmF0aW9uCj4gPiAgICBmb3IgYXJtNjQu Cj4gCj4gVGhhdCB3b3VsZCBiZSBncmVhdCwgdGhhbmtzLgo+IAo+ID4gIC0gbWFrZSBETUFfQVRU Ul9XUklURV9DT01CSU5FIGEgbm8tb3AgYW5kIHNjaGVkdWxlIGl0IGZvciByZW1vdmFsLAo+ID4g ICAgdGh1cyByZW1vdmluZyB0aGUgbGFzdCBpbnN0YW5jZXMgb2YgYXJjaF9kbWFfbW1hcF9wZ3By b3QKPiAKPiBBbGwgc291bmRzIGdvb2QgdG8gbWUsIGFsdGhvdWdoIEkgc3VwcG9zZSAzMi1iaXQg QXJtIHBsYXRmb3JtcyB3aXRob3V0Cj4gQ09ORklHX0FSTV9ETUFfTUVNX0JVRkZFUkFCTEUgbWF5 IHJ1biBpbnRvIGlzc3VlcyBpZiBETUFfQVRUUl9XUklURV9DT01CSU5FCj4gZGlzYXBwZWFycy4g T25seSBvbmUgd2F5IHRvIGZpbmQgb3V0Li4uCgpMb29raW5nIGF0IHRoZSByZXN1bHRzIG9mIGdy ZXAsIEkgdGhpbmsgb25seSBPTUFQMisgYW5kIEV4eW5vcyBtYXkgYmUKYWZmZWN0ZWQuCgpIb3dl dmVyLCByZW1vdmluZyB3cml0ZWNvbWJpbmUgc3VwcG9ydCBmcm9tIHRoZSBETUEgQVBJIGlzIGdv aW5nIHRvCmhhdmUgYSBodWdlIGltcGFjdCBmb3IgZnJhbWVidWZmZXJzIG9uIGVhcmxpZXIgQVJN cyAtIHRoYXQncyB3aGVyZSB3ZQpkbyBleHBlY3QgZnJhbWVidWZmZXJzIHRvIGJlIG1hcHBlZCAi dW5jYWNoZWQvYnVmZmVyZWQiIGZvciBwZXJmb3JtYW5jZQpyZWFzb25zIGFuZCBub3QgInVuY2Fj aGVkL3VuYnVmZmVyZWQiLiAgSXQncyBxdWl0ZSBsaXRlcmFsbHkgdGhlCmRpZmZlcmVuY2UgYmV0 d2VlbiBjb25zb2xlIHNjcm9sbGluZyBiZWluZyB1c2FibGUgYW5kIHRvdGFsbHkgdW51c2FibGUu CgpHaXZlbiB3aGF0IEkndmUgc2FpZCBhYm92ZSwgc3dpdGNoaW5nIHRvIHVzaW5nIGJ1ZmZlcmVk IG1vZGUgZm9yIG5vcm1hbApETUEgbWFwcGluZ3MgaXMgZGF0YS1jb3JydXB0aW5nIHJpc2t5IC0g YXMgaW4geW91ciBmaWxlc3lzdGVtIGNvdWxkIGdldApmcmllZC4gIEkgZG9uJ3QgdGhpbmsgd2Ug c2hvdWxkIHBsYXkgZmFzdCBhbmQgbG9vc2Ugd2l0aCBwZW9wbGUncyBkYXRhCmJ5IHJhbmRvbWx5 IGNoYW5naW5nIHRoYXQgImJlY2F1c2Ugd2UnZCBsaWtlIHRvIiwgYW5kIEkgZG9uJ3Qgc2VlIHRo YXQKc2NyZXdpbmcgdGhlIGNvbnNvbGUgaXMgcmVhbGx5IGFuIG9wdGlvbiBlaXRoZXIuCgotLSAK Uk1LJ3MgUGF0Y2ggc3lzdGVtOiBodHRwczovL3d3dy5hcm1saW51eC5vcmcudWsvZGV2ZWxvcGVy L3BhdGNoZXMvCkZUVEMgYnJvYWRiYW5kIGZvciAwLjhtaWxlIGxpbmUgaW4gc3VidXJiaWE6IHN5 bmMgYXQgMTIuMU1icHMgZG93biA2MjJrYnBzIHVwCkFjY29yZGluZyB0byBzcGVlZHRlc3QubmV0 OiAxMS45TWJwcyBkb3duIDUwMGticHMgdXAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZv dW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lvbW11 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 765FAC433FF for ; Tue, 6 Aug 2019 16:53:12 +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 C4D502075B for ; Tue, 6 Aug 2019 16:53:11 +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="AY0UMJb+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C4D502075B 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 46310j3nXfzDr6f for ; Wed, 7 Aug 2019 02:53:09 +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="AY0UMJb+"; dkim-atps=neutral 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 4630yR3QqZzDr0l for ; Wed, 7 Aug 2019 02:51:10 +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=L8Qsi9HRlyoVoGH2S+hSRi65LltiNgW4vXbUSsBYNjo=; b=AY0UMJb+iW++EBhB14ReL07/6 b0pFwP1ANs8Ey7rLTMwawQUMPdUAgfQRQVnZ/OR7JKCYpuel75mq1XkvJI3943Z3MQqQqQhkmdhxO gMiRvM5UopNJOrzm9fVvISbh1BDxrhypglyOjuUgab1W+soP+Y92sFkPmzHVACpr+/u106dEpfBCi WoNn1LreZ4+hkZCRMYbGZ1hOFo9APnQctrKosgfefHdeyXB6/JMXLVG9ifNeovhlGxV0lw0W8ajJ3 1igtLNju1aD0Nr45s4CdgQBE/9z4vnCe4JZPjGxIYq1S39XMDc/p6GxbFVUBCrhp5yKR6Z534S6qB 7mcKWkceQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49226) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2aC-0000SB-Ab; Tue, 06 Aug 2019 17:45:08 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2a7-0000fh-Ka; Tue, 06 Aug 2019 17:45:03 +0100 Date: Tue, 6 Aug 2019 17:45:03 +0100 From: Russell King - ARM Linux admin To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164503.GD1330@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> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190806160854.htk67msiyadlrl4m@willie-the-truck> 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 , 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 Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" 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. -- 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 08E07C433FF for ; Tue, 6 Aug 2019 16:45:39 +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 CE267216B7 for ; Tue, 6 Aug 2019 16:45:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="gFq7GEe8"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="AY0UMJb+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE267216B7 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=CHqoj6Q/XQJpf8PMraF/6GeJY9Uk57n7+UZSEGfyX0Q=; b=gFq7GEe8ShwfKJ oIuMFey/qQ879RPmHTD39egDCQyBP0O45sdlECqQOKPVaokno2EQeSQmFGNQpYiSgFEM6LlT1Qu0W vZVOfI0V8at9n68a9FCn1ukLfwjUH9YAmf0cAVyQ2xiWs483Bqziuo5RGDvjoEMmTS4a0p2LaPCf/ Wt27cL+OdZ7aAd7SCuFiRcvhhb9UyKu8uJfZwcoYVcpMJHGZmvc1osPpgr3NJvRo/MjrRMrscZrG/ iVnDyGGNf4l5NADA5u/kmjZac8RdeI+i4QthExDpbnJ9wGare7Lape9vv5S/YPQjufCUlQLpenLkD CpoFYfsNxmlJ0KNFhEGQ==; 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 1hv2aZ-0002WU-TB; Tue, 06 Aug 2019 16:45:31 +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 1hv2aV-0002Vn-Gw for linux-arm-kernel@lists.infradead.org; Tue, 06 Aug 2019 16:45:29 +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=L8Qsi9HRlyoVoGH2S+hSRi65LltiNgW4vXbUSsBYNjo=; b=AY0UMJb+iW++EBhB14ReL07/6 b0pFwP1ANs8Ey7rLTMwawQUMPdUAgfQRQVnZ/OR7JKCYpuel75mq1XkvJI3943Z3MQqQqQhkmdhxO gMiRvM5UopNJOrzm9fVvISbh1BDxrhypglyOjuUgab1W+soP+Y92sFkPmzHVACpr+/u106dEpfBCi WoNn1LreZ4+hkZCRMYbGZ1hOFo9APnQctrKosgfefHdeyXB6/JMXLVG9ifNeovhlGxV0lw0W8ajJ3 1igtLNju1aD0Nr45s4CdgQBE/9z4vnCe4JZPjGxIYq1S39XMDc/p6GxbFVUBCrhp5yKR6Z534S6qB 7mcKWkceQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49226) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2aC-0000SB-Ab; Tue, 06 Aug 2019 17:45:08 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2a7-0000fh-Ka; Tue, 06 Aug 2019 17:45:03 +0100 Date: Tue, 6 Aug 2019 17:45:03 +0100 From: Russell King - ARM Linux admin To: Will Deacon Subject: Re: [PATCH] dma-mapping: fix page attributes for dma_mmap_* Message-ID: <20190806164503.GD1330@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> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190806160854.htk67msiyadlrl4m@willie-the-truck> 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_094527_982780_6C0AE8E7 X-CRM114-Status: GOOD ( 29.80 ) 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, 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 T24gVHVlLCBBdWcgMDYsIDIwMTkgYXQgMDU6MDg6NTRQTSArMDEwMCwgV2lsbCBEZWFjb24gd3Jv dGU6Cj4gT24gU2F0LCBBdWcgMDMsIDIwMTkgYXQgMDg6NDg6MTJBTSArMDIwMCwgQ2hyaXN0b3Bo IEhlbGx3aWcgd3JvdGU6Cj4gPiBPbiBGcmksIEF1ZyAwMiwgMjAxOSBhdCAxMTozODowM0FNICsw MTAwLCBXaWxsIERlYWNvbiB3cm90ZToKPiA+ID4gCj4gPiA+IFNvIHRoaXMgYm9pbHMgZG93biB0 byBhIHRlcm1pbm9sb2d5IG1pc21hdGNoLiBUaGUgQXJtIGFyY2hpdGVjdHVyZSBkb2Vzbid0IGhh dmUKPiA+ID4gYW55dGhpbmcgY2FsbGVkICJ3cml0ZSBjb21iaW5lIiwgc28gaW4gTGludXggd2Ug aW5zdGVhZCBwcm92aWRlIHdoYXQgdGhlIEFybQo+ID4gPiBhcmNoaXRlY3R1cmUgY2FsbHMgIk5v cm1hbCBub24tY2FjaGVhYmxlIiBtZW1vcnkgZm9yIHBncHJvdF93cml0ZWNvbWJpbmUoKS4KPiA+ ID4gQW1vbmdzdCBvdGhlciB0aGluZ3MsIHRoaXMgbWVtb3J5IHR5cGUgcGVybWl0cyBzcGVjdWxh dGlvbiwgdW5hbGlnbmVkIGFjY2Vzc2VzCj4gPiA+IGFuZCBtZXJnaW5nIG9mIHdyaXRlcy4gSSBm b3VuZCBzb21ldGhpbmcgaW4gdGhlIGFyY2hpdGVjdHVyZSBzcGVjIGFib3V0Cj4gPiA+IG5vbi1j YWNoYWJsZSBtZW1vcnksIGJ1dCBpdCdzIHdyaXR0ZW4gaW4gQXJtZ2xpc2hbMV0uCj4gPiA+IAo+ ID4gPiBwZ3Byb3Rfbm9uY2FjaGVkKCksIG9uIHRoZSBvdGhlciBoYW5kLCBwcm92aWRlcyB3aGF0 IHRoZSBhcmNoaXRlY3R1cmUgY2FsbHMKPiA+ID4gU3Ryb25nbHkgT3JkZXJlZCBvciBEZXZpY2Ut bkduUm5FIG1lbW9yeS4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgbWFwcGluZyBNTUlPCj4gPiA+IChp LmUuIFBDSSBjb25maWcgc3BhY2UpIGFuZCB0aGVyZWZvcmUgZm9yYmlkcyBzcGVjdWxhdGlvbiwg cHJlc2VydmVzIGFjY2Vzcwo+ID4gPiBzaXplLCByZXF1aXJlcyBzdHJpY3QgYWxpZ25tZW50IGFu ZCBhbHNvIGZvcmNlcyB3cml0ZSByZXNwb25zZXMgdG8gY29tZSBmcm9tCj4gPiA+IHRoZSBlbmRw b2ludC4KPiA+ID4gCj4gPiA+IEkgdGhpbmsgdGhlIG5hbWluZyBtaXNtYXRjaCBpcyBoaXN0b3Jp Y2FsLCBidXQgb24gYXJtNjQgd2Ugd2FudGVkIHRvIHVzZSB0aGUKPiA+ID4gc2FtZSBuYW1lcyBh cyBhcm0zMiBzbyB0aGF0IGFueSBkcml2ZXJzIHVzaW5nIHRoZXNlIHRoaW5ncyBkaXJlY3RseSB3 b3VsZCBnZXQKPiA+ID4gdGhlIHNhbWUgYmVoYXZpb3VyLgo+ID4gCj4gPiBUaGF0IGFsbCBtYWtl cyBzZW5zZSwgYnV0IGl0IHRvdGFsbHkgbmVlZHMgYSBjb21tZW50LiAgSSdsbCB0cnkgdG8gZHJh ZnQKPiA+IG9uZSBiYXNlZCBvbiB0aGlzLiAgSSd2ZSBhbHNvIGxvb2tlZCBhdCB0aGUgYXJtMzIg Y29kZSBhIGJpdCBtb3JlLCBhbmQKPiA+IGl0IHNlZW1zIGFybSBhbHdheXMgKD8pIHN1cHBvcnRl ZCBOb3JtYWwgbm9uLWNhY2hlYWJsZSBhdHRyaWJ1dGUsIGJ1dAo+ID4gTGludXggb25seSBvcHRp b25hbGx5IHVzZXMgaXQgZm9yIGFybSB2NisgYmVjYXVzZSBvZiBmZWFycyBvZiBkcml2ZXJzCj4g PiBtaXNzaW5nIGJhcnJpZXJzLgo+IAo+IEkgdGhpbmsgaXQgd2FzIGFsc28gdG8gZG8gd2l0aCBh bGlhc2luZywgYnV0IEkgZG9uJ3QgcmVjYWxsIGFsbCBvZiB0aGUKPiBkZXRhaWxzLgoKQVJNdjYr IGlzIHdoZXJlIHRoZSBhcmNoaXRlY3R1cmUgc2lnbmlmaWNhbnRseSBjaGFuZ2VkIHRvIGludHJv ZHVjZQp0aGUgaWRlYSBvZiBbTm9ybWFsLCBEZXZpY2UsIFN0cm9uZ2x5IE9yZGVyZWRdIHdoZXJl IE5vcm1hbCBoYXMgdGhlCmNhY2hlIGF0dHJpYnV0ZXMuCgpCZWZvcmUgdGhhdCwgd2UgaGFkIGp1 c3QgInVuY2FjaGVkL3VuYnVmZmVyZWQsIHVuY2FjaGVkL2J1ZmZlcmVkLApjYWNoZWQvdW5idWZm ZXJlZCwgY2FjaGVkL2J1ZmZlcmVkIiBtb2Rlcy4KClRoZSB3cml0ZSBidWZmZXIgKGVuYWJsZWQg YnkgYnVmZmVyZWQgbW9kZXMpIGhhcyBubyBhcmNoaXRlY3RlZApndWFyYW50ZWVzIGFib3V0IGhv dyBsb25nIHdyaXRlcyB3aWxsIHNpdCBpbiBpdCwgYW5kIHRoZXJlIGlzIG9ubHkKdGhlICJkcmFp biB3cml0ZSBidWZmZXIiIGluc3RydWN0aW9uIHRvIHB1c2ggd3JpdGVzIG91dC4KClVwIHRvIGFu ZCBpbmNsdWRpbmcgQVJNdjUsIHdlIHRvb2sgdGhlIGVhc3kgYXBwcm9hY2ggb2YganVzdCB1c2lu Zwp0aGUgInVuY2FjaGVkL3VuYnVmZmVyZWQiIG1vZGUgc2luY2UgdGhhdCBpcyAoYSkgdGhlIHNh ZmVzdCwgYW5kIChiKQphdm9pZHMgd3JpdGUgYnVmZmVycyB0aGF0IGFsaWFzIHdoZW4gdGhlcmUg YXJlIG11bHRpcGxlIGRpZmZlcmVudAptYXBwaW5ncy4KCldlIGNvdWxkIGhhdmUgdXNlZCBhIGRp ZmZlcmVudCBhcHByb2FjaCwgbWFraW5nIGFsbCBJTyB3cml0ZXMgY29udGFpbgphICJkcmFpbiB3 cml0ZSBidWZmZXIiIGluc3RydWN0aW9uLCBhbmQgbWFwIERNQSBtZW1vcnkgYXMgImJ1ZmZlcmVk IiwKYnV0IGFzIHRoZXJlIHdlcmUgbm8gTGludXggYmFycmllcnMgZGVmaW5lZCB0byBvcmRlciBt ZW1vcnkgYWNjZXNzZXMKdG8gRE1BIG1lbW9yeSAoc28sIGZvciBleGFtcGxlLCByaW5nIGJ1ZmZl cnMgY2FuIGJlIHVwZGF0ZWQgaW4gdGhlCmNvcnJlY3Qgb3JkZXIpIGJhY2sgaW4gdGhvc2UgZGF5 cywgdXNpbmcgdGhlIHVuY2FjaGVkL3VuYnVmZmVyZWQgbW9kZQp3YXMgdGhlIHNhbmVzdCBhbmQg bW9zdCByZWxpYWJsZSBzb2x1dGlvbi4KCj4gCj4gPiBUaGUgb3RoZXIgcmVhbGx5IHdlaXJkIHRo aW5ncyBpcyB0aGF0IGluIGFybTMyCj4gPiBwZ3Byb3RfZG1hY29oZXJlbnQgaW5jdWRlcyB0aGUg TF9QVEVfWE4gYml0LCB3aGljaCBmcm9tIG15IHVuZGVyc3RhbmRpbmcKPiA+IGlzIHRoZSBuby1l eGVjdHVyZSBiaXQsIGJ1dCBwZ3Byb3Rfd3JpdGVjb21iaW5lIGRvZXMgbm90LiAgVGhpcyBzZWVt cyB0bwo+ID4gbm90IHZlcnkgdW5pbnRlbnRpb25hbC4gIFNvIG1pbnVzIHRoYXQgdGhlIHdob2xl IERNQV9BVFRSX1dSSVRFX0NPTULQhk5FCj4gPiBzZWVtcyB0byBiZSBhYm91dCBmbGFnZ2luZyBv bGQgYXJtIHNwZWNpZmljIGRyaXZlcnMgYXMgaGF2aW5nIHRoZSBwcm9wZXIKPiA+IGJhcnJpZXJz IGluIHBsYWNlcyBhbmQgb3RoZXJ3aXNlIGlzIGEgbm8tb3AuCj4gCj4gSSB0aGluayBpdCBvbmx5 IG1hdHRlcnMgZm9yIEFybXY3IENQVXMsIGJ1dCB5ZXMsIHdlIHNob3VsZCBwcm9iYWJseSBiZQo+ IHNldHRpbmcgTF9QVEVfWE4gZm9yIGJvdGggb2YgdGhlc2UgbWVtb3J5IHR5cGVzLgoKQ29udmVu dGlvbmFsbHksIHBncHJvdF93cml0ZWNvbWJpbmUoKSBoYXMgb25seSBiZWVuIHVzZWQgdG8gY2hh bmdlCnRoZSBtZW1vcnkgdHlwZSBhbmQgbm90IHRoZSBwZXJtaXNzaW9ucy4gIFNpbmNlIHdyaXRl Y29tYmluZSBtZW1vcnkKaXMgc3RpbGwgY2FwYWJsZSBvZiBiZWluZyBleGVjdXRlZCwgSSBkb24n dCBzZWUgYW55IHJlYXNvbiB0byBzZXQgWE4KZm9yIGl0LgoKSWYgdGhlIHVzZXIgd2lzaGVzIHRv IG1tYXAoKSB1c2luZyBQUk9UX1JFQUR8UFJPVF9FWEVDLCB0aGVuIGlzIHRoZXJlCnJlYWxseSBh IHJlYXNvbiBmb3Igd3JpdGVjb21iaW5lIHRvIHNldCBYTiBvdmVycmlkaW5nIHRoZSB1c2VyPwoK VGhhdCBzYWlkLCBwZ3Byb3Rfd3JpdGVjb21iaW5lKCkgaXMgbW9zdGx5IHVzZWQgZm9yIGZyYW1l YnVmZmVycywgd2hpY2gKYXJndWFibHkgc2hvdWxkbid0IGJlIGV4ZWN1dGFibGUgYW55d2F5IC0g YnV0IHdobydkIHdhbnQgdG8gbW1hcCgpIHRoZQpmcmFtZWJ1ZmZlciB3aXRoIFBST1RfRVhFQz8K Cj4gCj4gPiBIZXJlIGlzIG15IHRlbnRhdGl2ZSBwbGFuOgo+ID4gCj4gPiAgLSByZXNwaW4gdGhp cyBwYXRjaCB3aXRoIGEgc21hbGwgZml4IHRvIGhhbmRsZSB0aGUKPiA+ICAgIERNQV9BVFRSX05P Tl9DT05TSVNURU5UIChhcyBpbiBpZ25vcmUgaXQgdW5sZXNzIGFjdHVhbGx5IHN1cHBvcnRlZCks Cj4gPiAgICBidXQga2VlcCB0aGUgbmFtZSBhcy1pcyB0byBhdm9pZCBjaHVybi4gIFRoaXMgc2hv dWxkIGFsbG93IDUuMwo+ID4gICAgaW5jbHVzaW9uIGFuZCBiYWNrcG9ydHMKPiA+ICAtIHJlbW92 ZSBETUFfQVRUUl9XUklURV9DT01CSU5FIHN1cHBvcnQgZnJvbSBtaXBzLCBwcm9iYWJseSBhbHNv IDUuMwo+ID4gICAgbWF0ZXJpYWwuCj4gPiAgLSBtb3ZlIGFsbCBhcmNoaXRlY3R1cmVzIGJ1dCBh cm0gb3ZlciB0byBqdXN0IGRlZmluZQo+ID4gICAgcGdwcm90X2RtYWNvaGVyZW50LCBpbmNsdWRp bmcgYSBjb21tZW50IHdpdGggdGhlIGFib3ZlIGV4cGxhbmF0aW9uCj4gPiAgICBmb3IgYXJtNjQu Cj4gCj4gVGhhdCB3b3VsZCBiZSBncmVhdCwgdGhhbmtzLgo+IAo+ID4gIC0gbWFrZSBETUFfQVRU Ul9XUklURV9DT01CSU5FIGEgbm8tb3AgYW5kIHNjaGVkdWxlIGl0IGZvciByZW1vdmFsLAo+ID4g ICAgdGh1cyByZW1vdmluZyB0aGUgbGFzdCBpbnN0YW5jZXMgb2YgYXJjaF9kbWFfbW1hcF9wZ3By b3QKPiAKPiBBbGwgc291bmRzIGdvb2QgdG8gbWUsIGFsdGhvdWdoIEkgc3VwcG9zZSAzMi1iaXQg QXJtIHBsYXRmb3JtcyB3aXRob3V0Cj4gQ09ORklHX0FSTV9ETUFfTUVNX0JVRkZFUkFCTEUgbWF5 IHJ1biBpbnRvIGlzc3VlcyBpZiBETUFfQVRUUl9XUklURV9DT01CSU5FCj4gZGlzYXBwZWFycy4g T25seSBvbmUgd2F5IHRvIGZpbmQgb3V0Li4uCgpMb29raW5nIGF0IHRoZSByZXN1bHRzIG9mIGdy ZXAsIEkgdGhpbmsgb25seSBPTUFQMisgYW5kIEV4eW5vcyBtYXkgYmUKYWZmZWN0ZWQuCgpIb3dl dmVyLCByZW1vdmluZyB3cml0ZWNvbWJpbmUgc3VwcG9ydCBmcm9tIHRoZSBETUEgQVBJIGlzIGdv aW5nIHRvCmhhdmUgYSBodWdlIGltcGFjdCBmb3IgZnJhbWVidWZmZXJzIG9uIGVhcmxpZXIgQVJN cyAtIHRoYXQncyB3aGVyZSB3ZQpkbyBleHBlY3QgZnJhbWVidWZmZXJzIHRvIGJlIG1hcHBlZCAi dW5jYWNoZWQvYnVmZmVyZWQiIGZvciBwZXJmb3JtYW5jZQpyZWFzb25zIGFuZCBub3QgInVuY2Fj aGVkL3VuYnVmZmVyZWQiLiAgSXQncyBxdWl0ZSBsaXRlcmFsbHkgdGhlCmRpZmZlcmVuY2UgYmV0 d2VlbiBjb25zb2xlIHNjcm9sbGluZyBiZWluZyB1c2FibGUgYW5kIHRvdGFsbHkgdW51c2FibGUu CgpHaXZlbiB3aGF0IEkndmUgc2FpZCBhYm92ZSwgc3dpdGNoaW5nIHRvIHVzaW5nIGJ1ZmZlcmVk IG1vZGUgZm9yIG5vcm1hbApETUEgbWFwcGluZ3MgaXMgZGF0YS1jb3JydXB0aW5nIHJpc2t5IC0g YXMgaW4geW91ciBmaWxlc3lzdGVtIGNvdWxkIGdldApmcmllZC4gIEkgZG9uJ3QgdGhpbmsgd2Ug c2hvdWxkIHBsYXkgZmFzdCBhbmQgbG9vc2Ugd2l0aCBwZW9wbGUncyBkYXRhCmJ5IHJhbmRvbWx5 IGNoYW5naW5nIHRoYXQgImJlY2F1c2Ugd2UnZCBsaWtlIHRvIiwgYW5kIEkgZG9uJ3Qgc2VlIHRo YXQKc2NyZXdpbmcgdGhlIGNvbnNvbGUgaXMgcmVhbGx5IGFuIG9wdGlvbiBlaXRoZXIuCgotLSAK Uk1LJ3MgUGF0Y2ggc3lzdGVtOiBodHRwczovL3d3dy5hcm1saW51eC5vcmcudWsvZGV2ZWxvcGVy L3BhdGNoZXMvCkZUVEMgYnJvYWRiYW5kIGZvciAwLjhtaWxlIGxpbmUgaW4gc3VidXJiaWE6IHN5 bmMgYXQgMTIuMU1icHMgZG93biA2MjJrYnBzIHVwCkFjY29yZGluZyB0byBzcGVlZHRlc3QubmV0 OiAxMS45TWJwcyBkb3duIDUwMGticHMgdXAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK 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 B93EFC31E40 for ; Tue, 6 Aug 2019 16:45:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8336B20B1F for ; Tue, 6 Aug 2019 16:45:38 +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="AY0UMJb+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733081AbfHFQph (ORCPT ); Tue, 6 Aug 2019 12:45:37 -0400 Received: from pandora.armlinux.org.uk ([78.32.30.218]:37022 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732117AbfHFQph (ORCPT ); Tue, 6 Aug 2019 12:45:37 -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=L8Qsi9HRlyoVoGH2S+hSRi65LltiNgW4vXbUSsBYNjo=; b=AY0UMJb+iW++EBhB14ReL07/6 b0pFwP1ANs8Ey7rLTMwawQUMPdUAgfQRQVnZ/OR7JKCYpuel75mq1XkvJI3943Z3MQqQqQhkmdhxO gMiRvM5UopNJOrzm9fVvISbh1BDxrhypglyOjuUgab1W+soP+Y92sFkPmzHVACpr+/u106dEpfBCi WoNn1LreZ4+hkZCRMYbGZ1hOFo9APnQctrKosgfefHdeyXB6/JMXLVG9ifNeovhlGxV0lw0W8ajJ3 1igtLNju1aD0Nr45s4CdgQBE/9z4vnCe4JZPjGxIYq1S39XMDc/p6GxbFVUBCrhp5yKR6Z534S6qB 7mcKWkceQ==; Received: from shell.armlinux.org.uk ([2002:4e20:1eda:1:5054:ff:fe00:4ec]:49226) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hv2aC-0000SB-Ab; Tue, 06 Aug 2019 17:45:08 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1hv2a7-0000fh-Ka; Tue, 06 Aug 2019 17:45:03 +0100 Date: Tue, 6 Aug 2019 17:45:03 +0100 From: Russell King - ARM Linux admin To: Will Deacon Cc: Christoph Hellwig , iommu@lists.linux-foundation.org, Shawn Anastasio , Michael Ellerman , 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: <20190806164503.GD1330@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> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190806160854.htk67msiyadlrl4m@willie-the-truck> 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: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. -- 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