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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 0319FC2BA16 for ; Fri, 3 Apr 2020 03:50:57 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (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 CC8F4214D8 for ; Fri, 3 Apr 2020 03:50:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (4096-bit key) header.d=d-silva.org header.i=@d-silva.org header.b="SmXkdqxM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CC8F4214D8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=d-silva.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvdimm-bounces@lists.01.org Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 491BB100F2274; Thu, 2 Apr 2020 20:51:46 -0700 (PDT) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=66.55.73.32; helo=ushosting.nmnhosting.com; envelope-from=alastair@d-silva.org; receiver= Received: from ushosting.nmnhosting.com (ushosting.nmnhosting.com [66.55.73.32]) by ml01.01.org (Postfix) with ESMTP id 5486A100F2272 for ; Thu, 2 Apr 2020 20:51:43 -0700 (PDT) Received: from mail2.nmnhosting.com (unknown [202.169.106.97]) by ushosting.nmnhosting.com (Postfix) with ESMTPS id 20A782DC3D2F; Fri, 3 Apr 2020 14:50:51 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d-silva.org; s=201810a; t=1585885852; bh=q0MWnVXh2aGk7v7ivIwQdA2GkasasysLWo22AkPKzug=; h=From:To:Cc:References:In-Reply-To:Subject:Date:From; b=SmXkdqxMWlBa5BfHDElmGi2xtWIwhlyZC+XnoaUyPT5aE6boLWD/AQN/Ujgix+fN4 lt4B5wlyflX5LxbuaPBd1/I+r9LZcxTBoOIJNrsPr7cwQ3rF8gAIphr9HUyU+/njBu hoDUPWUmDhnMr2IDYjVrcWf8DJx+zthb6UW/Ew6sB5BFaYRlbN8ZP22iJ5//EwDrEq dD4ehflXTk9vxREms73gx7K8mPfP1KwZYMl53l3NYL4Xwx/xE/mxenCpwKDjuyfzy5 PICZfF6bNcnScT6yJ1xqOYXDXaGhd9kSOB33hti6KhvnMClTAq2WANlpPBZVVSIvcL 8s0um1BD8fZCugtMXGq1JJtYm9lY4Vdx0/S22VpY28H9zFPcBf8ek6CH7t+BVz3vQX 1Kbfx9wB695SdNby60eBt8a4f23Yn9HWKUD+g3geM6UqmJSLXlha16GKuUlNpgR97c xNrt0sa9YC5YmQ+gienhkCLZV959msXZmwlkGv3KDF1SaRC8vCPEV4+E1xsA7FncHc xG5nT1bBI8S5029N239hJ5/GvRTWmSG6LD9okWBr23r7lr94UNfv5fYS6mHbrTb0J6 Q5sMgtZJxUzfbhwpv97hSzGRHHpOZU2lNlpmnojVWlsVdZ4cyc46gSWYOgf6FF5YiT KvA+UO/Nh6edhA/eclMg0h9A= Received: from Hawking (ntp.lan [10.0.1.1]) (authenticated bits=0) by mail2.nmnhosting.com (8.15.2/8.15.2) with ESMTPSA id 0333obha097274 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 3 Apr 2020 14:50:39 +1100 (AEDT) (envelope-from alastair@d-silva.org) From: "Alastair D'Silva" To: "'Dan Williams'" References: <20200327071202.2159885-1-alastair@d-silva.org> <20200327071202.2159885-8-alastair@d-silva.org> In-Reply-To: Subject: RE: [PATCH v4 07/25] ocxl: Add functions to map/unmap LPC memory Date: Fri, 3 Apr 2020 14:50:36 +1100 Message-ID: <303a01d6096b$0ea3e120$2beba360$@d-silva.org> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Content-Language: en-au Thread-Index: AQJ5L4Hn/mp5p0p1jYAFWLJ+xmWSbgDVHtBXAp4PBwGnBNz6cA== X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mail2.nmnhosting.com [10.0.1.20]); Fri, 03 Apr 2020 14:50:47 +1100 (AEDT) Message-ID-Hash: LA7NOBAYIVVORWUZQXIBKJLQUTTVX2A4 X-Message-ID-Hash: LA7NOBAYIVVORWUZQXIBKJLQUTTVX2A4 X-MailFrom: alastair@d-silva.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation CC: "'Aneesh Kumar K . V'" , 'Benjamin Herrenschmidt' , 'Paul Mackerras' , 'Michael Ellerman' , 'Frederic Barrat' , 'Andrew Donnellan' , 'Arnd Bergmann' , 'Greg Kroah-Hartman' , 'Andrew Morton' , 'Mauro Carvalho Chehab' , "'David S. Miller'" , 'Rob Herring' , 'Anton Blanchard' , 'Krzysztof Kozlowski' , 'Mahesh Salgaonkar' , 'Madhavan Srinivasan' , =?utf-8?Q?'C=C3=A9dric_Le_Goater'?= , 'Anju T Sudhakar' , 'Hari Bathini' , 'Thomas Gleixner' , 'Greg Kurz' , 'Nicholas Piggin' , 'Masahiro Yamada' , 'Alexey Kardashevskiy' , 'Linux Kernel Mailing List' , 'linuxppc-dev' , 'linux-nvdimm' , 'Linux MM' X-Mailman-Version: 3.1.1 Precedence: list List-Id: "Linux-nvdimm developer list." Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IERhbiBXaWxsaWFtcyA8ZGFu Lmoud2lsbGlhbXNAaW50ZWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIDEgQXByaWwgMjAyMCA3 OjQ5IFBNDQo+IFRvOiBBbGFzdGFpciBEJ1NpbHZhIDxhbGFzdGFpckBkLXNpbHZhLm9yZz4NCj4g Q2M6IEFuZWVzaCBLdW1hciBLIC4gViA8YW5lZXNoLmt1bWFyQGxpbnV4LmlibS5jb20+OyBPbGl2 ZXIgTydIYWxsb3Jhbg0KPiA8b29oYWxsQGdtYWlsLmNvbT47IEJlbmphbWluIEhlcnJlbnNjaG1p ZHQNCj4gPGJlbmhAa2VybmVsLmNyYXNoaW5nLm9yZz47IFBhdWwgTWFja2VycmFzIDxwYXVsdXNA c2FtYmEub3JnPjsgTWljaGFlbA0KPiBFbGxlcm1hbiA8bXBlQGVsbGVybWFuLmlkLmF1PjsgRnJl ZGVyaWMgQmFycmF0IDxmYmFycmF0QGxpbnV4LmlibS5jb20+Ow0KPiBBbmRyZXcgRG9ubmVsbGFu IDxhamRAbGludXguaWJtLmNvbT47IEFybmQgQmVyZ21hbm4NCj4gPGFybmRAYXJuZGIuZGU+OyBH cmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPjsNCj4gVmlzaGFs IFZlcm1hIDx2aXNoYWwubC52ZXJtYUBpbnRlbC5jb20+OyBEYXZlIEppYW5nDQo+IDxkYXZlLmpp YW5nQGludGVsLmNvbT47IElyYSBXZWlueSA8aXJhLndlaW55QGludGVsLmNvbT47IEFuZHJldyBN b3J0b24NCj4gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+OyBNYXVybyBDYXJ2YWxobyBDaGVo YWINCj4gPG1jaGVoYWIrc2Ftc3VuZ0BrZXJuZWwub3JnPjsgRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PjsNCj4gUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz47IEFudG9u IEJsYW5jaGFyZCA8YW50b25Ab3psYWJzLm9yZz47DQo+IEtyenlzenRvZiBLb3psb3dza2kgPGty emtAa2VybmVsLm9yZz47IE1haGVzaCBTYWxnYW9ua2FyDQo+IDxtYWhlc2hAbGludXgudm5ldC5p Ym0uY29tPjsgTWFkaGF2YW4gU3Jpbml2YXNhbg0KPiA8bWFkZHlAbGludXgudm5ldC5pYm0uY29t PjsgQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0BrYW9kLm9yZz47IEFuanUgVA0KPiBTdWRoYWthciA8 YW5qdUBsaW51eC52bmV0LmlibS5jb20+OyBIYXJpIEJhdGhpbmkNCj4gPGhiYXRoaW5pQGxpbnV4 LmlibS5jb20+OyBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGludXRyb25peC5kZT47IEdyZWcNCj4g S3VyeiA8Z3JvdWdAa2FvZC5vcmc+OyBOaWNob2xhcyBQaWdnaW4gPG5waWdnaW5AZ21haWwuY29t PjsgTWFzYWhpcm8NCj4gWWFtYWRhIDx5YW1hZGEubWFzYWhpcm9Ac29jaW9uZXh0LmNvbT47IEFs ZXhleSBLYXJkYXNoZXZza2l5DQo+IDxhaWtAb3psYWJzLnJ1PjsgTGludXggS2VybmVsIE1haWxp bmcgTGlzdCA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47DQo+IGxpbnV4cHBjLWRldiA8 bGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc+OyBsaW51eC1udmRpbW0gPGxpbnV4LQ0KPiBu dmRpbW1AbGlzdHMuMDEub3JnPjsgTGludXggTU0gPGxpbnV4LW1tQGt2YWNrLm9yZz4NCj4gU3Vi amVjdDogUmU6IFtQQVRDSCB2NCAwNy8yNV0gb2N4bDogQWRkIGZ1bmN0aW9ucyB0byBtYXAvdW5t YXAgTFBDDQo+IG1lbW9yeQ0KPiANCj4gT24gU3VuLCBNYXIgMjksIDIwMjAgYXQgMTA6MjMgUE0g QWxhc3RhaXIgRCdTaWx2YSA8YWxhc3RhaXJAZC1zaWx2YS5vcmc+DQo+IHdyb3RlOg0KPiA+DQo+ ID4gQWRkIGZ1bmN0aW9ucyB0byBtYXAvdW5tYXAgTFBDIG1lbW9yeQ0KPiA+DQo+IA0KPiAibWFw IG1lbW9yeSIgaXMgYW4gb3ZlcmxvYWRlZCB0ZXJtLiBJJ20gZ3Vlc3NpbmcgdGhpcyBwYXRjaCBo YXMgbm90aGluZyB0bw0KPiBkbyB3aXRoIG1hcHBpbmcgbWVtb3J5IGluIHRoZSBNTVUuIElzIGl0 IHVwZGF0aW5nIGhhcmR3YXJlIHJlc291cmNlDQo+IGRlY29kZXJzIHRvIHN0YXJ0IGNsYWltaW5n IGFkZHJlc3Mgc3BhY2UgdGhhdCB3YXMgYWxsb2NhdGVkIHByZXZpb3VzbHk/DQo+IA0KDQpJdCdz IHNpbWlsYXIgdG8gTU1JTyAtIHRoZXNlIGNhbGxzIGVuZCB1cCBzZXR0aW5nIHVwIGEgQkFSIHdo aWNoIHBsYWNlcyB0aGUgTFBDDQptZW1vcnkgaW50byBhIHBoeXNpY2FsIG1lbW9yeSByYW5nZSBh ZGRyZXNzYWJsZSBieSB0aGUga2VybmVsLg0KDQo+ID4gU2lnbmVkLW9mZi1ieTogQWxhc3RhaXIg RCdTaWx2YSA8YWxhc3RhaXJAZC1zaWx2YS5vcmc+DQo+ID4gQWNrZWQtYnk6IEZyZWRlcmljIEJh cnJhdCA8ZmJhcnJhdEBsaW51eC5pYm0uY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL21pc2Mv b2N4bC9jb3JlLmMgICAgICAgICAgfCA1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ID4gIGRyaXZlcnMvbWlzYy9vY3hsL29jeGxfaW50ZXJuYWwuaCB8ICAzICsrDQo+ID4gIGlu Y2x1ZGUvbWlzYy9vY3hsLmggICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysNCj4gPiAg MyBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9taXNjL29jeGwvY29yZS5jIGIvZHJpdmVycy9taXNjL29jeGwvY29yZS5jIGluZGV4 DQo+ID4gMjUzMWM2Y2YxOWEwLi43NWZmMTRlMzg4MmEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy9taXNjL29jeGwvY29yZS5jDQo+ID4gKysrIGIvZHJpdmVycy9taXNjL29jeGwvY29yZS5jDQo+ ID4gQEAgLTIxMCw2ICsyMTAsNTYgQEAgc3RhdGljIHZvaWQgdW5tYXBfbW1pb19hcmVhcyhzdHJ1 Y3Qgb2N4bF9hZnUNCj4gKmFmdSkNCj4gPiAgICAgICAgIHJlbGVhc2VfZm5fYmFyKGFmdS0+Zm4s IGFmdS0+Y29uZmlnLmdsb2JhbF9tbWlvX2Jhcik7ICB9DQo+ID4NCj4gPiAraW50IG9jeGxfYWZ1 X21hcF9scGNfbWVtKHN0cnVjdCBvY3hsX2FmdSAqYWZ1KSB7DQo+ID4gKyAgICAgICBzdHJ1Y3Qg cGNpX2RldiAqZGV2ID0gdG9fcGNpX2RldihhZnUtPmZuLT5kZXYucGFyZW50KTsNCj4gPiArDQo+ ID4gKyAgICAgICBpZiAoKGFmdS0+Y29uZmlnLmxwY19tZW1fc2l6ZSArIGFmdS0NCj4gPmNvbmZp Zy5zcGVjaWFsX3B1cnBvc2VfbWVtX3NpemUpID09IDApDQo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybiAwOw0KPiA+ICsNCj4gPiArICAgICAgIGFmdS0+bHBjX2Jhc2VfYWRkciA9IG9jeGxfbGlu a19scGNfbWFwKGFmdS0+Zm4tPmxpbmssIGRldik7DQo+ID4gKyAgICAgICBpZiAoYWZ1LT5scGNf YmFzZV9hZGRyID09IDApDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ ICsNCj4gPiArICAgICAgIGlmIChhZnUtPmNvbmZpZy5scGNfbWVtX3NpemUgPiAwKSB7DQo+ID4g KyAgICAgICAgICAgICAgIGFmdS0+bHBjX3Jlcy5zdGFydCA9IGFmdS0+bHBjX2Jhc2VfYWRkciAr IGFmdS0NCj4gPmNvbmZpZy5scGNfbWVtX29mZnNldDsNCj4gPiArICAgICAgICAgICAgICAgYWZ1 LT5scGNfcmVzLmVuZCA9IGFmdS0+bHBjX3Jlcy5zdGFydCArIGFmdS0+Y29uZmlnLmxwY19tZW1f c2l6ZQ0KPiAtIDE7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKGFmdS0+ Y29uZmlnLnNwZWNpYWxfcHVycG9zZV9tZW1fc2l6ZSA+IDApIHsNCj4gPiArICAgICAgICAgICAg ICAgYWZ1LT5zcGVjaWFsX3B1cnBvc2VfcmVzLnN0YXJ0ID0gYWZ1LT5scGNfYmFzZV9hZGRyICsN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ1 LT5jb25maWcuc3BlY2lhbF9wdXJwb3NlX21lbV9vZmZzZXQ7DQo+ID4gKyAgICAgICAgICAgICAg IGFmdS0+c3BlY2lhbF9wdXJwb3NlX3Jlcy5lbmQgPSBhZnUtPnNwZWNpYWxfcHVycG9zZV9yZXMu c3RhcnQgKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWZ1LT5jb25maWcuc3BlY2lhbF9wdXJwb3NlX21lbV9zaXplIC0gMTsNCj4gPiArICAgICAg IH0NCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICtFWFBPUlRfU1lN Qk9MX0dQTChvY3hsX2FmdV9tYXBfbHBjX21lbSk7DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcmVzb3Vy Y2UgKm9jeGxfYWZ1X2xwY19tZW0oc3RydWN0IG9jeGxfYWZ1ICphZnUpIHsNCj4gPiArICAgICAg IHJldHVybiAmYWZ1LT5scGNfcmVzOw0KPiA+ICt9DQo+ID4gK0VYUE9SVF9TWU1CT0xfR1BMKG9j eGxfYWZ1X2xwY19tZW0pOw0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgdW5tYXBfbHBjX21lbShz dHJ1Y3Qgb2N4bF9hZnUgKmFmdSkgew0KPiA+ICsgICAgICAgc3RydWN0IHBjaV9kZXYgKmRldiA9 IHRvX3BjaV9kZXYoYWZ1LT5mbi0+ZGV2LnBhcmVudCk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYg KGFmdS0+bHBjX3Jlcy5zdGFydCB8fCBhZnUtPnNwZWNpYWxfcHVycG9zZV9yZXMuc3RhcnQpIHsN Cj4gPiArICAgICAgICAgICAgICAgdm9pZCAqbGluayA9IGFmdS0+Zm4tPmxpbms7DQo+ID4gKw0K PiA+ICsgICAgICAgICAgICAgICAvLyBvbmx5IHJlbGVhc2UgdGhlIGxpbmsgd2hlbiB0aGUgdGhl IGxhc3QgY29uc3VtZXIgY2FsbHMgcmVsZWFzZQ0KPiA+ICsgICAgICAgICAgICAgICBvY3hsX2xp bmtfbHBjX3JlbGVhc2UobGluaywgZGV2KTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGFm dS0+bHBjX3Jlcy5zdGFydCA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgIGFmdS0+bHBjX3Jlcy5l bmQgPSAwOw0KPiA+ICsgICAgICAgICAgICAgICBhZnUtPnNwZWNpYWxfcHVycG9zZV9yZXMuc3Rh cnQgPSAwOw0KPiA+ICsgICAgICAgICAgICAgICBhZnUtPnNwZWNpYWxfcHVycG9zZV9yZXMuZW5k ID0gMDsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGludCBjb25m aWd1cmVfYWZ1KHN0cnVjdCBvY3hsX2FmdSAqYWZ1LCB1OCBhZnVfaWR4LCBzdHJ1Y3QNCj4gPiBw Y2lfZGV2ICpkZXYpICB7DQo+ID4gICAgICAgICBpbnQgcmM7DQo+ID4gQEAgLTI1MSw2ICszMDEs NyBAQCBzdGF0aWMgaW50IGNvbmZpZ3VyZV9hZnUoc3RydWN0IG9jeGxfYWZ1ICphZnUsIHU4DQo+ ID4gYWZ1X2lkeCwgc3RydWN0IHBjaV9kZXYgKmRldikNCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBk ZWNvbmZpZ3VyZV9hZnUoc3RydWN0IG9jeGxfYWZ1ICphZnUpICB7DQo+ID4gKyAgICAgICB1bm1h cF9scGNfbWVtKGFmdSk7DQo+ID4gICAgICAgICB1bm1hcF9tbWlvX2FyZWFzKGFmdSk7DQo+ID4g ICAgICAgICByZWNsYWltX2FmdV9wYXNpZChhZnUpOw0KPiA+ICAgICAgICAgcmVjbGFpbV9hZnVf YWN0YWcoYWZ1KTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL29jeGwvb2N4bF9pbnRl cm5hbC5oDQo+ID4gYi9kcml2ZXJzL21pc2Mvb2N4bC9vY3hsX2ludGVybmFsLmgNCj4gPiBpbmRl eCAyZDc1NzUyMjViZDcuLjdiOTc1YTg5ZGI3YiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL21p c2Mvb2N4bC9vY3hsX2ludGVybmFsLmgNCj4gPiArKysgYi9kcml2ZXJzL21pc2Mvb2N4bC9vY3hs X2ludGVybmFsLmgNCj4gPiBAQCAtNTIsNiArNTIsOSBAQCBzdHJ1Y3Qgb2N4bF9hZnUgew0KPiA+ ICAgICAgICAgdm9pZCBfX2lvbWVtICpnbG9iYWxfbW1pb19wdHI7DQo+ID4gICAgICAgICB1NjQg cHBfbW1pb19zdGFydDsNCj4gPiAgICAgICAgIHZvaWQgKnByaXZhdGU7DQo+ID4gKyAgICAgICB1 NjQgbHBjX2Jhc2VfYWRkcjsgLyogQ292ZXJzIGJvdGggTFBDICYgc3BlY2lhbCBwdXJwb3NlIG1l bW9yeSAqLw0KPiA+ICsgICAgICAgc3RydWN0IHJlc291cmNlIGxwY19yZXM7DQo+ID4gKyAgICAg ICBzdHJ1Y3QgcmVzb3VyY2Ugc3BlY2lhbF9wdXJwb3NlX3JlczsNCj4gPiAgfTsNCj4gPg0KPiA+ ICBlbnVtIG9jeGxfY29udGV4dF9zdGF0dXMgew0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL21p c2Mvb2N4bC5oIGIvaW5jbHVkZS9taXNjL29jeGwuaCBpbmRleA0KPiA+IDM1N2VmMWFhZGJjMC4u ZDhiMGI0ZDQ2YmZiIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvbWlzYy9vY3hsLmgNCj4gPiAr KysgYi9pbmNsdWRlL21pc2Mvb2N4bC5oDQo+ID4gQEAgLTIwMyw2ICsyMDMsMjcgQEAgaW50IG9j eGxfaXJxX3NldF9oYW5kbGVyKHN0cnVjdCBvY3hsX2NvbnRleHQNCj4gPiAqY3R4LCBpbnQgaXJx X2lkLA0KPiA+DQo+ID4gIC8vIEFGVSBNZXRhZGF0YQ0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgKiBv Y3hsX2FmdV9tYXBfbHBjX21lbSgpIC0gTWFwIHRoZSBMUEMgc3lzdGVtICYgc3BlY2lhbCBwdXJw b3NlDQo+ID4gK21lbW9yeSBmb3IgYW4gQUZVDQo+ID4gKyAqIERvIG5vdCBjYWxsIHRoaXMgZHVy aW5nIGRldmljZSBkaXNjb3ZlcnksIGFzIHRoZXJlIG1heSBtZSBtdWx0aXBsZQ0KPiANCj4gcy9t ZS9iZS8NCj4gDQo+IA0KPiA+ICsgKiBkZXZpY2VzIG9uIGEgbGluaywgYW5kIHRoZSBtZW1vcnkg aXMgbWFwcGVkIGZvciB0aGUgd2hvbGUgbGluaywNCj4gPiArbm90DQo+ID4gKyAqIGp1c3Qgb25l IGRldmljZS4gSXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGFsbCBkZXZpY2VzIGhhdmUN Cj4gPiArICogcmVnaXN0ZXJlZCB0aGVpciBtZW1vcnkgb24gdGhlIGxpbmsuDQo+ID4gKyAqDQo+ ID4gKyAqIEBhZnU6IFRoZSBBRlUgdGhhdCBoYXMgdGhlIExQQyBtZW1vcnkgdG8gbWFwDQo+ID4g KyAqDQo+ID4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBvbiBmYWlsdXJlICAq LyBpbnQNCj4gPiArb2N4bF9hZnVfbWFwX2xwY19tZW0oc3RydWN0IG9jeGxfYWZ1ICphZnUpOw0K PiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIG9jeGxfYWZ1X2xwY19tZW0oKSAtIEdldCB0aGUgcGh5 c2ljYWwgYWRkcmVzcyByYW5nZSBvZiBMUEMgbWVtb3J5DQo+ID4gK2ZvciBhbiBBRlUNCj4gPiAr ICogQGFmdTogVGhlIEFGVSBhc3NvY2lhdGVkIHdpdGggdGhlIExQQyBtZW1vcnkNCj4gPiArICoN Cj4gPiArICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHJlc291cmNlIHN0cnVjdCBmb3IgdGhl IHBoeXNpY2FsIGFkZHJlc3MNCj4gPiArcmFuZ2UgICovIHN0cnVjdCByZXNvdXJjZSAqb2N4bF9h ZnVfbHBjX21lbShzdHJ1Y3Qgb2N4bF9hZnUgKmFmdSk7DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAg ICogb2N4bF9hZnVfY29uZmlnKCkgLSBHZXQgYSBwb2ludGVyIHRvIHRoZSBjb25maWcgZm9yIGFu IEFGVQ0KPiA+ICAgKiBAYWZ1OiBhIHBvaW50ZXIgdG8gdGhlIEFGVSB0byBnZXQgdGhlIGNvbmZp ZyBmb3INCj4gPiAtLQ0KPiA+IDIuMjQuMQ0KPiA+DQoNCg0KDQotLSANCkFsYXN0YWlyIEQnU2ls dmEgICAgICAgICAgIG1vYjogMDQyMyA3NjIgODE5DQpza3lwZTogYWxhc3RhaXJfZHNpbHZhICAg ICBtc246IGFsYXN0YWlyQGQtc2lsdmEub3JnDQpibG9nOiBodHRwOi8vYWxhc3RhaXIuZC1zaWx2 YS5vcmcgICAgVHdpdHRlcjogQEV2aWxEZWVjZQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXgtbnZkaW1tIG1haWxpbmcgbGlzdCAtLSBsaW51eC1u dmRpbW1AbGlzdHMuMDEub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gbGludXgt bnZkaW1tLWxlYXZlQGxpc3RzLjAxLm9yZwo= 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=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 24515C43331 for ; Fri, 3 Apr 2020 03:50:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D871C2078C for ; Fri, 3 Apr 2020 03:50:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (4096-bit key) header.d=d-silva.org header.i=@d-silva.org header.b="SmXkdqxM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390395AbgDCDux (ORCPT ); Thu, 2 Apr 2020 23:50:53 -0400 Received: from ushosting.nmnhosting.com ([66.55.73.32]:52170 "EHLO ushosting.nmnhosting.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389477AbgDCDux (ORCPT ); Thu, 2 Apr 2020 23:50:53 -0400 Received: from mail2.nmnhosting.com (unknown [202.169.106.97]) by ushosting.nmnhosting.com (Postfix) with ESMTPS id 20A782DC3D2F; Fri, 3 Apr 2020 14:50:51 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d-silva.org; s=201810a; t=1585885852; bh=q0MWnVXh2aGk7v7ivIwQdA2GkasasysLWo22AkPKzug=; h=From:To:Cc:References:In-Reply-To:Subject:Date:From; b=SmXkdqxMWlBa5BfHDElmGi2xtWIwhlyZC+XnoaUyPT5aE6boLWD/AQN/Ujgix+fN4 lt4B5wlyflX5LxbuaPBd1/I+r9LZcxTBoOIJNrsPr7cwQ3rF8gAIphr9HUyU+/njBu hoDUPWUmDhnMr2IDYjVrcWf8DJx+zthb6UW/Ew6sB5BFaYRlbN8ZP22iJ5//EwDrEq dD4ehflXTk9vxREms73gx7K8mPfP1KwZYMl53l3NYL4Xwx/xE/mxenCpwKDjuyfzy5 PICZfF6bNcnScT6yJ1xqOYXDXaGhd9kSOB33hti6KhvnMClTAq2WANlpPBZVVSIvcL 8s0um1BD8fZCugtMXGq1JJtYm9lY4Vdx0/S22VpY28H9zFPcBf8ek6CH7t+BVz3vQX 1Kbfx9wB695SdNby60eBt8a4f23Yn9HWKUD+g3geM6UqmJSLXlha16GKuUlNpgR97c xNrt0sa9YC5YmQ+gienhkCLZV959msXZmwlkGv3KDF1SaRC8vCPEV4+E1xsA7FncHc xG5nT1bBI8S5029N239hJ5/GvRTWmSG6LD9okWBr23r7lr94UNfv5fYS6mHbrTb0J6 Q5sMgtZJxUzfbhwpv97hSzGRHHpOZU2lNlpmnojVWlsVdZ4cyc46gSWYOgf6FF5YiT KvA+UO/Nh6edhA/eclMg0h9A= Received: from Hawking (ntp.lan [10.0.1.1]) (authenticated bits=0) by mail2.nmnhosting.com (8.15.2/8.15.2) with ESMTPSA id 0333obha097274 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 3 Apr 2020 14:50:39 +1100 (AEDT) (envelope-from alastair@d-silva.org) From: "Alastair D'Silva" To: "'Dan Williams'" Cc: "'Aneesh Kumar K . V'" , "'Oliver O'Halloran'" , "'Benjamin Herrenschmidt'" , "'Paul Mackerras'" , "'Michael Ellerman'" , "'Frederic Barrat'" , "'Andrew Donnellan'" , "'Arnd Bergmann'" , "'Greg Kroah-Hartman'" , "'Vishal Verma'" , "'Dave Jiang'" , "'Ira Weiny'" , "'Andrew Morton'" , "'Mauro Carvalho Chehab'" , "'David S. Miller'" , "'Rob Herring'" , "'Anton Blanchard'" , "'Krzysztof Kozlowski'" , "'Mahesh Salgaonkar'" , "'Madhavan Srinivasan'" , "=?utf-8?Q?'C=C3=A9dric_Le_Goater'?=" , "'Anju T Sudhakar'" , "'Hari Bathini'" , "'Thomas Gleixner'" , "'Greg Kurz'" , "'Nicholas Piggin'" , "'Masahiro Yamada'" , "'Alexey Kardashevskiy'" , "'Linux Kernel Mailing List'" , "'linuxppc-dev'" , "'linux-nvdimm'" , "'Linux MM'" References: <20200327071202.2159885-1-alastair@d-silva.org> <20200327071202.2159885-8-alastair@d-silva.org> In-Reply-To: Subject: RE: [PATCH v4 07/25] ocxl: Add functions to map/unmap LPC memory Date: Fri, 3 Apr 2020 14:50:36 +1100 Message-ID: <303a01d6096b$0ea3e120$2beba360$@d-silva.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Content-Language: en-au Thread-Index: AQJ5L4Hn/mp5p0p1jYAFWLJ+xmWSbgDVHtBXAp4PBwGnBNz6cA== X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mail2.nmnhosting.com [10.0.1.20]); Fri, 03 Apr 2020 14:50:47 +1100 (AEDT) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > -----Original Message----- > From: Dan Williams > Sent: Wednesday, 1 April 2020 7:49 PM > To: Alastair D'Silva > Cc: Aneesh Kumar K . V ; Oliver O'Halloran > ; Benjamin Herrenschmidt > ; Paul Mackerras ; Michael > Ellerman ; Frederic Barrat = ; > Andrew Donnellan ; Arnd Bergmann > ; Greg Kroah-Hartman ; > Vishal Verma ; Dave Jiang > ; Ira Weiny ; Andrew Morton > ; Mauro Carvalho Chehab > ; David S. Miller ; > Rob Herring ; Anton Blanchard ; > Krzysztof Kozlowski ; Mahesh Salgaonkar > ; Madhavan Srinivasan > ; C=C3=A9dric Le Goater ; Anju = T > Sudhakar ; Hari Bathini > ; Thomas Gleixner ; Greg > Kurz ; Nicholas Piggin ; Masahiro > Yamada ; Alexey Kardashevskiy > ; Linux Kernel Mailing List = ; > linuxppc-dev ; linux-nvdimm nvdimm@lists.01.org>; Linux MM > Subject: Re: [PATCH v4 07/25] ocxl: Add functions to map/unmap LPC > memory >=20 > On Sun, Mar 29, 2020 at 10:23 PM Alastair D'Silva = > wrote: > > > > Add functions to map/unmap LPC memory > > >=20 > "map memory" is an overloaded term. I'm guessing this patch has = nothing to > do with mapping memory in the MMU. Is it updating hardware resource > decoders to start claiming address space that was allocated = previously? >=20 It's similar to MMIO - these calls end up setting up a BAR which places = the LPC memory into a physical memory range addressable by the kernel. > > Signed-off-by: Alastair D'Silva > > Acked-by: Frederic Barrat > > --- > > drivers/misc/ocxl/core.c | 51 = +++++++++++++++++++++++++++++++ > > drivers/misc/ocxl/ocxl_internal.h | 3 ++ > > include/misc/ocxl.h | 21 +++++++++++++ > > 3 files changed, 75 insertions(+) > > > > diff --git a/drivers/misc/ocxl/core.c b/drivers/misc/ocxl/core.c = index > > 2531c6cf19a0..75ff14e3882a 100644 > > --- a/drivers/misc/ocxl/core.c > > +++ b/drivers/misc/ocxl/core.c > > @@ -210,6 +210,56 @@ static void unmap_mmio_areas(struct ocxl_afu > *afu) > > release_fn_bar(afu->fn, afu->config.global_mmio_bar); } > > > > +int ocxl_afu_map_lpc_mem(struct ocxl_afu *afu) { > > + struct pci_dev *dev =3D to_pci_dev(afu->fn->dev.parent); > > + > > + if ((afu->config.lpc_mem_size + afu- > >config.special_purpose_mem_size) =3D=3D 0) > > + return 0; > > + > > + afu->lpc_base_addr =3D ocxl_link_lpc_map(afu->fn->link, = dev); > > + if (afu->lpc_base_addr =3D=3D 0) > > + return -EINVAL; > > + > > + if (afu->config.lpc_mem_size > 0) { > > + afu->lpc_res.start =3D afu->lpc_base_addr + afu- > >config.lpc_mem_offset; > > + afu->lpc_res.end =3D afu->lpc_res.start + = afu->config.lpc_mem_size > - 1; > > + } > > + > > + if (afu->config.special_purpose_mem_size > 0) { > > + afu->special_purpose_res.start =3D = afu->lpc_base_addr + > > + = afu->config.special_purpose_mem_offset; > > + afu->special_purpose_res.end =3D = afu->special_purpose_res.start + > > + = afu->config.special_purpose_mem_size - 1; > > + } > > + > > + return 0; > > +} > > +EXPORT_SYMBOL_GPL(ocxl_afu_map_lpc_mem); > > + > > +struct resource *ocxl_afu_lpc_mem(struct ocxl_afu *afu) { > > + return &afu->lpc_res; > > +} > > +EXPORT_SYMBOL_GPL(ocxl_afu_lpc_mem); > > + > > +static void unmap_lpc_mem(struct ocxl_afu *afu) { > > + struct pci_dev *dev =3D to_pci_dev(afu->fn->dev.parent); > > + > > + if (afu->lpc_res.start || afu->special_purpose_res.start) { > > + void *link =3D afu->fn->link; > > + > > + // only release the link when the the last consumer = calls release > > + ocxl_link_lpc_release(link, dev); > > + > > + afu->lpc_res.start =3D 0; > > + afu->lpc_res.end =3D 0; > > + afu->special_purpose_res.start =3D 0; > > + afu->special_purpose_res.end =3D 0; > > + } > > +} > > + > > static int configure_afu(struct ocxl_afu *afu, u8 afu_idx, struct > > pci_dev *dev) { > > int rc; > > @@ -251,6 +301,7 @@ static int configure_afu(struct ocxl_afu *afu, = u8 > > afu_idx, struct pci_dev *dev) > > > > static void deconfigure_afu(struct ocxl_afu *afu) { > > + unmap_lpc_mem(afu); > > unmap_mmio_areas(afu); > > reclaim_afu_pasid(afu); > > reclaim_afu_actag(afu); > > diff --git a/drivers/misc/ocxl/ocxl_internal.h > > b/drivers/misc/ocxl/ocxl_internal.h > > index 2d7575225bd7..7b975a89db7b 100644 > > --- a/drivers/misc/ocxl/ocxl_internal.h > > +++ b/drivers/misc/ocxl/ocxl_internal.h > > @@ -52,6 +52,9 @@ struct ocxl_afu { > > void __iomem *global_mmio_ptr; > > u64 pp_mmio_start; > > void *private; > > + u64 lpc_base_addr; /* Covers both LPC & special purpose = memory */ > > + struct resource lpc_res; > > + struct resource special_purpose_res; > > }; > > > > enum ocxl_context_status { > > diff --git a/include/misc/ocxl.h b/include/misc/ocxl.h index > > 357ef1aadbc0..d8b0b4d46bfb 100644 > > --- a/include/misc/ocxl.h > > +++ b/include/misc/ocxl.h > > @@ -203,6 +203,27 @@ int ocxl_irq_set_handler(struct ocxl_context > > *ctx, int irq_id, > > > > // AFU Metadata > > > > +/** > > + * ocxl_afu_map_lpc_mem() - Map the LPC system & special purpose > > +memory for an AFU > > + * Do not call this during device discovery, as there may me = multiple >=20 > s/me/be/ >=20 >=20 > > + * devices on a link, and the memory is mapped for the whole link, > > +not > > + * just one device. It should only be called after all devices have > > + * registered their memory on the link. > > + * > > + * @afu: The AFU that has the LPC memory to map > > + * > > + * Returns 0 on success, negative on failure */ int > > +ocxl_afu_map_lpc_mem(struct ocxl_afu *afu); > > + > > +/** > > + * ocxl_afu_lpc_mem() - Get the physical address range of LPC = memory > > +for an AFU > > + * @afu: The AFU associated with the LPC memory > > + * > > + * Returns a pointer to the resource struct for the physical = address > > +range */ struct resource *ocxl_afu_lpc_mem(struct ocxl_afu *afu); > > + > > /** > > * ocxl_afu_config() - Get a pointer to the config for an AFU > > * @afu: a pointer to the AFU to get the config for > > -- > > 2.24.1 > > --=20 Alastair D'Silva mob: 0423 762 819 skype: alastair_dsilva msn: alastair@d-silva.org blog: http://alastair.d-silva.org Twitter: @EvilDeece 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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 6655FC43331 for ; Fri, 3 Apr 2020 03:52:45 +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 731052077D for ; Fri, 3 Apr 2020 03:52:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (4096-bit key) header.d=d-silva.org header.i=@d-silva.org header.b="SmXkdqxM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 731052077D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=d-silva.org 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 48tmGw5zLmzDrKj for ; Fri, 3 Apr 2020 14:52:40 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=d-silva.org (client-ip=66.55.73.32; helo=ushosting.nmnhosting.com; envelope-from=alastair@d-silva.org; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=d-silva.org Authentication-Results: lists.ozlabs.org; dkim=pass (4096-bit key; unprotected) header.d=d-silva.org header.i=@d-silva.org header.a=rsa-sha256 header.s=201810a header.b=SmXkdqxM; dkim-atps=neutral Received: from ushosting.nmnhosting.com (ushosting.nmnhosting.com [66.55.73.32]) by lists.ozlabs.org (Postfix) with ESMTP id 48tmDw4mh1zDrF1 for ; Fri, 3 Apr 2020 14:50:54 +1100 (AEDT) Received: from mail2.nmnhosting.com (unknown [202.169.106.97]) by ushosting.nmnhosting.com (Postfix) with ESMTPS id 20A782DC3D2F; Fri, 3 Apr 2020 14:50:51 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d-silva.org; s=201810a; t=1585885852; bh=q0MWnVXh2aGk7v7ivIwQdA2GkasasysLWo22AkPKzug=; h=From:To:Cc:References:In-Reply-To:Subject:Date:From; b=SmXkdqxMWlBa5BfHDElmGi2xtWIwhlyZC+XnoaUyPT5aE6boLWD/AQN/Ujgix+fN4 lt4B5wlyflX5LxbuaPBd1/I+r9LZcxTBoOIJNrsPr7cwQ3rF8gAIphr9HUyU+/njBu hoDUPWUmDhnMr2IDYjVrcWf8DJx+zthb6UW/Ew6sB5BFaYRlbN8ZP22iJ5//EwDrEq dD4ehflXTk9vxREms73gx7K8mPfP1KwZYMl53l3NYL4Xwx/xE/mxenCpwKDjuyfzy5 PICZfF6bNcnScT6yJ1xqOYXDXaGhd9kSOB33hti6KhvnMClTAq2WANlpPBZVVSIvcL 8s0um1BD8fZCugtMXGq1JJtYm9lY4Vdx0/S22VpY28H9zFPcBf8ek6CH7t+BVz3vQX 1Kbfx9wB695SdNby60eBt8a4f23Yn9HWKUD+g3geM6UqmJSLXlha16GKuUlNpgR97c xNrt0sa9YC5YmQ+gienhkCLZV959msXZmwlkGv3KDF1SaRC8vCPEV4+E1xsA7FncHc xG5nT1bBI8S5029N239hJ5/GvRTWmSG6LD9okWBr23r7lr94UNfv5fYS6mHbrTb0J6 Q5sMgtZJxUzfbhwpv97hSzGRHHpOZU2lNlpmnojVWlsVdZ4cyc46gSWYOgf6FF5YiT KvA+UO/Nh6edhA/eclMg0h9A= Received: from Hawking (ntp.lan [10.0.1.1]) (authenticated bits=0) by mail2.nmnhosting.com (8.15.2/8.15.2) with ESMTPSA id 0333obha097274 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 3 Apr 2020 14:50:39 +1100 (AEDT) (envelope-from alastair@d-silva.org) From: "Alastair D'Silva" To: "'Dan Williams'" References: <20200327071202.2159885-1-alastair@d-silva.org> <20200327071202.2159885-8-alastair@d-silva.org> In-Reply-To: Subject: RE: [PATCH v4 07/25] ocxl: Add functions to map/unmap LPC memory Date: Fri, 3 Apr 2020 14:50:36 +1100 Message-ID: <303a01d6096b$0ea3e120$2beba360$@d-silva.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Content-Language: en-au Thread-Index: AQJ5L4Hn/mp5p0p1jYAFWLJ+xmWSbgDVHtBXAp4PBwGnBNz6cA== X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mail2.nmnhosting.com [10.0.1.20]); Fri, 03 Apr 2020 14:50:47 +1100 (AEDT) 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: 'Madhavan Srinivasan' , 'Alexey Kardashevskiy' , 'Masahiro Yamada' , 'Oliver O'Halloran' , 'Mauro Carvalho Chehab' , 'Ira Weiny' , 'Rob Herring' , 'Dave Jiang' , 'linux-nvdimm' , "'Aneesh Kumar K . V'" , 'Krzysztof Kozlowski' , 'Anju T Sudhakar' , 'Mahesh Salgaonkar' , 'Andrew Donnellan' , 'Arnd Bergmann' , 'Greg Kurz' , 'Nicholas Piggin' , =?utf-8?Q?'C=C3=A9dric_Le_Goater'?= , 'Thomas Gleixner' , 'Hari Bathini' , 'Linux MM' , 'Greg Kroah-Hartman' , 'Linux Kernel Mailing List' , 'Vishal Verma' , 'Frederic Barrat' , 'Paul Mackerras' , 'Andrew Morton' , 'linuxppc-dev' , "'David S. Miller'" Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" > -----Original Message----- > From: Dan Williams > Sent: Wednesday, 1 April 2020 7:49 PM > To: Alastair D'Silva > Cc: Aneesh Kumar K . V ; Oliver O'Halloran > ; Benjamin Herrenschmidt > ; Paul Mackerras ; Michael > Ellerman ; Frederic Barrat = ; > Andrew Donnellan ; Arnd Bergmann > ; Greg Kroah-Hartman ; > Vishal Verma ; Dave Jiang > ; Ira Weiny ; Andrew Morton > ; Mauro Carvalho Chehab > ; David S. Miller ; > Rob Herring ; Anton Blanchard ; > Krzysztof Kozlowski ; Mahesh Salgaonkar > ; Madhavan Srinivasan > ; C=C3=A9dric Le Goater ; Anju = T > Sudhakar ; Hari Bathini > ; Thomas Gleixner ; Greg > Kurz ; Nicholas Piggin ; Masahiro > Yamada ; Alexey Kardashevskiy > ; Linux Kernel Mailing List = ; > linuxppc-dev ; linux-nvdimm nvdimm@lists.01.org>; Linux MM > Subject: Re: [PATCH v4 07/25] ocxl: Add functions to map/unmap LPC > memory >=20 > On Sun, Mar 29, 2020 at 10:23 PM Alastair D'Silva = > wrote: > > > > Add functions to map/unmap LPC memory > > >=20 > "map memory" is an overloaded term. I'm guessing this patch has = nothing to > do with mapping memory in the MMU. Is it updating hardware resource > decoders to start claiming address space that was allocated = previously? >=20 It's similar to MMIO - these calls end up setting up a BAR which places = the LPC memory into a physical memory range addressable by the kernel. > > Signed-off-by: Alastair D'Silva > > Acked-by: Frederic Barrat > > --- > > drivers/misc/ocxl/core.c | 51 = +++++++++++++++++++++++++++++++ > > drivers/misc/ocxl/ocxl_internal.h | 3 ++ > > include/misc/ocxl.h | 21 +++++++++++++ > > 3 files changed, 75 insertions(+) > > > > diff --git a/drivers/misc/ocxl/core.c b/drivers/misc/ocxl/core.c = index > > 2531c6cf19a0..75ff14e3882a 100644 > > --- a/drivers/misc/ocxl/core.c > > +++ b/drivers/misc/ocxl/core.c > > @@ -210,6 +210,56 @@ static void unmap_mmio_areas(struct ocxl_afu > *afu) > > release_fn_bar(afu->fn, afu->config.global_mmio_bar); } > > > > +int ocxl_afu_map_lpc_mem(struct ocxl_afu *afu) { > > + struct pci_dev *dev =3D to_pci_dev(afu->fn->dev.parent); > > + > > + if ((afu->config.lpc_mem_size + afu- > >config.special_purpose_mem_size) =3D=3D 0) > > + return 0; > > + > > + afu->lpc_base_addr =3D ocxl_link_lpc_map(afu->fn->link, = dev); > > + if (afu->lpc_base_addr =3D=3D 0) > > + return -EINVAL; > > + > > + if (afu->config.lpc_mem_size > 0) { > > + afu->lpc_res.start =3D afu->lpc_base_addr + afu- > >config.lpc_mem_offset; > > + afu->lpc_res.end =3D afu->lpc_res.start + = afu->config.lpc_mem_size > - 1; > > + } > > + > > + if (afu->config.special_purpose_mem_size > 0) { > > + afu->special_purpose_res.start =3D = afu->lpc_base_addr + > > + = afu->config.special_purpose_mem_offset; > > + afu->special_purpose_res.end =3D = afu->special_purpose_res.start + > > + = afu->config.special_purpose_mem_size - 1; > > + } > > + > > + return 0; > > +} > > +EXPORT_SYMBOL_GPL(ocxl_afu_map_lpc_mem); > > + > > +struct resource *ocxl_afu_lpc_mem(struct ocxl_afu *afu) { > > + return &afu->lpc_res; > > +} > > +EXPORT_SYMBOL_GPL(ocxl_afu_lpc_mem); > > + > > +static void unmap_lpc_mem(struct ocxl_afu *afu) { > > + struct pci_dev *dev =3D to_pci_dev(afu->fn->dev.parent); > > + > > + if (afu->lpc_res.start || afu->special_purpose_res.start) { > > + void *link =3D afu->fn->link; > > + > > + // only release the link when the the last consumer = calls release > > + ocxl_link_lpc_release(link, dev); > > + > > + afu->lpc_res.start =3D 0; > > + afu->lpc_res.end =3D 0; > > + afu->special_purpose_res.start =3D 0; > > + afu->special_purpose_res.end =3D 0; > > + } > > +} > > + > > static int configure_afu(struct ocxl_afu *afu, u8 afu_idx, struct > > pci_dev *dev) { > > int rc; > > @@ -251,6 +301,7 @@ static int configure_afu(struct ocxl_afu *afu, = u8 > > afu_idx, struct pci_dev *dev) > > > > static void deconfigure_afu(struct ocxl_afu *afu) { > > + unmap_lpc_mem(afu); > > unmap_mmio_areas(afu); > > reclaim_afu_pasid(afu); > > reclaim_afu_actag(afu); > > diff --git a/drivers/misc/ocxl/ocxl_internal.h > > b/drivers/misc/ocxl/ocxl_internal.h > > index 2d7575225bd7..7b975a89db7b 100644 > > --- a/drivers/misc/ocxl/ocxl_internal.h > > +++ b/drivers/misc/ocxl/ocxl_internal.h > > @@ -52,6 +52,9 @@ struct ocxl_afu { > > void __iomem *global_mmio_ptr; > > u64 pp_mmio_start; > > void *private; > > + u64 lpc_base_addr; /* Covers both LPC & special purpose = memory */ > > + struct resource lpc_res; > > + struct resource special_purpose_res; > > }; > > > > enum ocxl_context_status { > > diff --git a/include/misc/ocxl.h b/include/misc/ocxl.h index > > 357ef1aadbc0..d8b0b4d46bfb 100644 > > --- a/include/misc/ocxl.h > > +++ b/include/misc/ocxl.h > > @@ -203,6 +203,27 @@ int ocxl_irq_set_handler(struct ocxl_context > > *ctx, int irq_id, > > > > // AFU Metadata > > > > +/** > > + * ocxl_afu_map_lpc_mem() - Map the LPC system & special purpose > > +memory for an AFU > > + * Do not call this during device discovery, as there may me = multiple >=20 > s/me/be/ >=20 >=20 > > + * devices on a link, and the memory is mapped for the whole link, > > +not > > + * just one device. It should only be called after all devices have > > + * registered their memory on the link. > > + * > > + * @afu: The AFU that has the LPC memory to map > > + * > > + * Returns 0 on success, negative on failure */ int > > +ocxl_afu_map_lpc_mem(struct ocxl_afu *afu); > > + > > +/** > > + * ocxl_afu_lpc_mem() - Get the physical address range of LPC = memory > > +for an AFU > > + * @afu: The AFU associated with the LPC memory > > + * > > + * Returns a pointer to the resource struct for the physical = address > > +range */ struct resource *ocxl_afu_lpc_mem(struct ocxl_afu *afu); > > + > > /** > > * ocxl_afu_config() - Get a pointer to the config for an AFU > > * @afu: a pointer to the AFU to get the config for > > -- > > 2.24.1 > > --=20 Alastair D'Silva mob: 0423 762 819 skype: alastair_dsilva msn: alastair@d-silva.org blog: http://alastair.d-silva.org Twitter: @EvilDeece