From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Luis R. Rodriguez" Subject: Re: [PATCH 02/19] io-mapping: Specify mapping size for io_mapping_map_wc() Date: Wed, 20 Apr 2016 23:23:47 +0200 Message-ID: <20160420212347.GR1990@wotan.suse.de> References: <1461177750-20187-1-git-send-email-chris@chris-wilson.co.uk> <1461177750-20187-3-git-send-email-chris@chris-wilson.co.uk> <20160420185844.GQ1990@wotan.suse.de> <20160420191432.GK17454@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160420191432.GK17454@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , "Luis R. Rodriguez" , intel-gfx@lists.freedesktop.org, Tvrtko Ursulin , Mika Kuoppala , Joonas Lahtinen , Tvrtko Ursulin , Daniel Vetter , Jani Nikula , David Airlie , Yishai Hadas , Dan Williams , Ingo Molnar , "Peter Zijlstra (Intel)" , David Hildenbrand , dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-rdma@vger.kernel.org T24gV2VkLCBBcHIgMjAsIDIwMTYgYXQgMDg6MTQ6MzJQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE9uIFdlZCwgQXByIDIwLCAyMDE2IGF0IDA4OjU4OjQ0UE0gKzAyMDAsIEx1aXMgUi4g Um9kcmlndWV6IHdyb3RlOgo+ID4gT24gV2VkLCBBcHIgMjAsIDIwMTYgYXQgMDc6NDI6MTNQTSAr MDEwMCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+ID4gPiBUaGUgaW9yZW1hcCgpIGhpZGRlbiBiZWhp bmQgdGhlIGlvX21hcHBpbmdfbWFwX3djKCkgY29udmVuaWVuY2UgaGVscGVyCj4gPiA+IGNhbiBi ZSB1c2VkIGZvciByZW1hcHBpbmcgbXVsdGlwbGUgcGFnZXMuIEV4dGVuZCB0aGUgaGVscGVyIHNv IHRoYXQKPiA+ID4gZnV0dXJlIGNhbGxlcnMgY2FuIHVzZSBpdCBmb3IgbGFyZ2VyIHJhbmdlcy4K PiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+ID4gPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVs LmNvbT4KPiA+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ ID4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4g Q2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPiA+ID4gQ2M6IFlpc2hhaSBIYWRh cyA8eWlzaGFpaEBtZWxsYW5veC5jb20+Cj4gPiA+IENjOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndp bGxpYW1zQGludGVsLmNvbT4KPiA+ID4gQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0BrZXJuZWwub3Jn Pgo+ID4gPiBDYzogIlBldGVyIFppamxzdHJhIChJbnRlbCkiIDxwZXRlcnpAaW5mcmFkZWFkLm9y Zz4KPiA+ID4gQ2M6IERhdmlkIEhpbGRlbmJyYW5kIDxkYWhpQGxpbnV4LnZuZXQuaWJtLmNvbT4K PiA+ID4gQ2M6IEx1aXMgUi4gUm9kcmlndWV6IDxtY2dyb2ZAa2VybmVsLm9yZz4KPiA+ID4gQ2M6 IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gQ2M6IGRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gQ2M6IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4g Q2M6IGxpbnV4LXJkbWFAdmdlci5rZXJuZWwub3JnCj4gPiA+IENjOiBsaW51eC1rZXJuZWxAdmdl ci5rZXJuZWwub3JnCj4gPiAKPiA+IFdlIGhhdmUgMiBjYWxsZXJzIHRvZGF5LCBpbiB0aGUgZnV0 dXJlLCBjYW4geW91IGVudmlzaW9uCj4gPiB0aGlzIEFQSSBnZXR0aW5nIG1vcmUgb3B0aW9ucz8g SWYgc28sIGluIG9yZGVyIHRvIGF2b2lkIHRoZQo+ID4gcGFpbiBvZiBjb2xsYXRlcmFsIGV2b2x1 dGlvbnMgSSBjYW4gc3VnZ2VzdCBhIGRlc2NyaXB0b3IKPiA+IGJlaW5nIHBhc3NlZCB3aXRoIHRo ZSByZXF1aXJlZCBzZXR0aW5ncyAvIG9wdGlvbnMuIFRoaXMgbGV0cwo+ID4geW91IGV2b2x2ZSB0 aGUgQVBJIHdpdGhvdXQgbmVlZGluZyB0byBnbyBpbiBhbmQgbW9kaWZ5Cj4gPiBvbGQgdXNlcnMu IElmIHlvdSBjaG9vc2Ugbm90IHRvIHRoYXQncyBmaW5lIHRvbywganVzdAo+ID4gZmlndXJlZCBJ J2QgY2hpbWUgaW4gd2l0aCB0aGF0IGFzIEkndmUgc2VlbiB0aGUgcGFpbgo+ID4gd2l0aCBvdGhl ciBBUElzLCBhbmQgSSdtIHB1dHRpbmcgYW4gZW5kIHRvIHRoZSBuZWVkbGVzcwo+ID4gc2V0IG9m IGNvbGxhdGVyYWwgZXZvbHV0aW9ucyB0aGlzIHdheS4KPiAKPiBEbyB5b3UgaGF2ZSBhIGdvb2Qg ZXhhbXBsZSBpbiBtaW5kPyBJJ3ZlIG9uZSBtb3JlIHBhdGNoIHRvIHRyeSBhbmQgdGFrZQo+IGFk dmFudGFnZSBvZiB0aGUgaW8tbWFwcGluZyAodGhhdCBtYXkgb3Igbm90IGJlIHN1Y2ggYSBnb29k IGlkZWEgaW4KPiBwcmFjdGljZSkgYnV0IEkgbWF5IGFzIHdlbGwgc2VlIGlmIEkgY2FuIG1ha2Ug aW9fbWFwcGluZyBtb3JlIHVzZWZ1bAo+IHdoZW4gSSBkby4KClN1cmUsIGhlcmUncyBteSBjdXJy ZW50IHZlcnNpb24gb2YgdGhlIHJldmFtcCBvZiB0aGUgZmlybXdhcmUgQVBJCnRvIGEgbW9yZSBm bGV4aWJsZSBBUEksIHdoaWNoIGxldHMgdXMgY29tcGFydGFtZW50YWxpemUgdGhlCnVzZXJtb2Rl IGhlbHBlciwgYW5kIHRocm91Z2ggdGhlIG5ldyBBUEkgYXZvaWRzIHRoZSBpc3N1ZXMgd2l0aCBm dXJ0aGVyCmZ1dHVyZSBjb2xsYXRlcmFsIGV2b2x1dGlvbnMuIEl0IGlzIHN0aWxsIGJlaW5nIGJh a2VkLCBJJ20gZmluZSB0dW5pbmcKdGhlIFNtUEwgdG8gZm9sa3MgYXV0b21hdGljYWxseSBkbyBj b252ZXJzaW9uIGlmIHRoZXkgd2FudDoKCmh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvY2dpdC9saW51 eC9rZXJuZWwvZ2l0L21jZ3JvZi9saW51eC5naXQvbG9nLz9oPTIwMTYwNDE3LXN5c2RhdGEtYXBp LXYxCgpJdCBhbHNvIGhhcyBhIHRlc3QgZHJpdmVyICh3aGljaCBJJ2QgYWxzbyByZWNvbW1lbmQg aWYgeW91IGNhbiBwdWxsIG9mZikuCkl0IHdvdWxkIGJlIGtpbmQgb2YgaGFyZCB0byBkbyBzb21l dGhpbmcgbGlrZSBhIGxpYi9pby1tYXBwaW5nX3Rlc3QuYwpnaXZlbiB0aGVyZSBpcyBubyByZWFs IGRldmljZSB0byBpb3JlbWFwIC0tIF9idXRfIHBlcmhhcHMgcmVndWxhcgpSQU0gY2FuIGJlIHVz ZWQgZm9yIGZha2UgYSBkZXZpY2UgTU1JTy4gSSBhbSBub3Qgc3VyZSBpZiBpdHMgZXZlbgpwb3Nz aWJsZS4uLiBidXQgaWYgc28gaXQgd291bGQgbm90IG9ubHkgYmUgdXNlZnVsIGZvciBzb21ldGhp bmcKbGlrZSB5b3VyIEFQSSBidXQgYWxzbyBmb3IgdGVzdGluZyBpb3JlbWFwKCkgYW5kIGZyaWVu ZHMsIGFuZAphbnkgcG9zc2libGUgYWxpYXNpbmcgYm9tYnMgd2UgbWF5IHdhbnQgdG8gdmV0IGZv ci4gSXQgYWxzbyBoaW50cwpob3cgd2UgbWF5IGluIHRoZSBmdXR1cmUgYmUgYWJsZSB0byBhdXRv bWF0aWNhbGx5IHdyaXRlIHRlc3QgZHJpdmVycwpmb3IgQVBJcyBmb3IgdXMgdGhyb3VnaCBpbmZl cmVuY2UsIGJ1dCB0aGF0IG5lZWRzIGEgbG90IG9mIG1vcmUgbG92ZQp0byBtYWtlIGl0IHRhbmdp YmxlLgoKICBMdWlzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751940AbcDTVXx (ORCPT ); Wed, 20 Apr 2016 17:23:53 -0400 Received: from mx2.suse.de ([195.135.220.15]:37650 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751410AbcDTVXv (ORCPT ); Wed, 20 Apr 2016 17:23:51 -0400 Date: Wed, 20 Apr 2016 23:23:47 +0200 From: "Luis R. Rodriguez" To: Chris Wilson , "Luis R. Rodriguez" , intel-gfx@lists.freedesktop.org, Tvrtko Ursulin , Mika Kuoppala , Joonas Lahtinen , Tvrtko Ursulin , Daniel Vetter , Jani Nikula , David Airlie , Yishai Hadas , Dan Williams , Ingo Molnar , "Peter Zijlstra (Intel)" , David Hildenbrand , dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 02/19] io-mapping: Specify mapping size for io_mapping_map_wc() Message-ID: <20160420212347.GR1990@wotan.suse.de> References: <1461177750-20187-1-git-send-email-chris@chris-wilson.co.uk> <1461177750-20187-3-git-send-email-chris@chris-wilson.co.uk> <20160420185844.GQ1990@wotan.suse.de> <20160420191432.GK17454@nuc-i3427.alporthouse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160420191432.GK17454@nuc-i3427.alporthouse.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 20, 2016 at 08:14:32PM +0100, Chris Wilson wrote: > On Wed, Apr 20, 2016 at 08:58:44PM +0200, Luis R. Rodriguez wrote: > > On Wed, Apr 20, 2016 at 07:42:13PM +0100, Chris Wilson wrote: > > > The ioremap() hidden behind the io_mapping_map_wc() convenience helper > > > can be used for remapping multiple pages. Extend the helper so that > > > future callers can use it for larger ranges. > > > > > > Signed-off-by: Chris Wilson > > > Cc: Tvrtko Ursulin > > > Cc: Daniel Vetter > > > Cc: Jani Nikula > > > Cc: David Airlie > > > Cc: Yishai Hadas > > > Cc: Dan Williams > > > Cc: Ingo Molnar > > > Cc: "Peter Zijlstra (Intel)" > > > Cc: David Hildenbrand > > > Cc: Luis R. Rodriguez > > > Cc: intel-gfx@lists.freedesktop.org > > > Cc: dri-devel@lists.freedesktop.org > > > Cc: netdev@vger.kernel.org > > > Cc: linux-rdma@vger.kernel.org > > > Cc: linux-kernel@vger.kernel.org > > > > We have 2 callers today, in the future, can you envision > > this API getting more options? If so, in order to avoid the > > pain of collateral evolutions I can suggest a descriptor > > being passed with the required settings / options. This lets > > you evolve the API without needing to go in and modify > > old users. If you choose not to that's fine too, just > > figured I'd chime in with that as I've seen the pain > > with other APIs, and I'm putting an end to the needless > > set of collateral evolutions this way. > > Do you have a good example in mind? I've one more patch to try and take > advantage of the io-mapping (that may or not be such a good idea in > practice) but I may as well see if I can make io_mapping more useful > when I do. Sure, here's my current version of the revamp of the firmware API to a more flexible API, which lets us compartamentalize the usermode helper, and through the new API avoids the issues with further future collateral evolutions. It is still being baked, I'm fine tuning the SmPL to folks automatically do conversion if they want: https://git.kernel.org/cgit/linux/kernel/git/mcgrof/linux.git/log/?h=20160417-sysdata-api-v1 It also has a test driver (which I'd also recommend if you can pull off). It would be kind of hard to do something like a lib/io-mapping_test.c given there is no real device to ioremap -- _but_ perhaps regular RAM can be used for fake a device MMIO. I am not sure if its even possible... but if so it would not only be useful for something like your API but also for testing ioremap() and friends, and any possible aliasing bombs we may want to vet for. It also hints how we may in the future be able to automatically write test drivers for APIs for us through inference, but that needs a lot of more love to make it tangible. Luis