From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 02/22] drm/i915: introduce simple gemfs Date: Wed, 27 Sep 2017 10:50:59 +0300 Message-ID: <1506498659.5505.17.camel@linux.intel.com> References: <20170925184737.8807-1-matthew.auld@intel.com> <20170925184737.8807-3-matthew.auld@intel.com> <20170926075221.GB32088@kroah.com> <1506432107.5228.26.camel@linux.intel.com> <20170926213440.GD3418@kroah.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170926213440.GD3418@kroah.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org, linux-mm@kvack.org, intel-gfx@lists.freedesktop.org, Hugh Dickins , Riley Andrews , dri-devel@lists.freedesktop.org, Dave Hansen , Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , Matthew Auld , "Kirill A . Shutemov" , Daniel Vetter , Andrew Morton List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAyMDE3LTA5LTI2IGF0IDIzOjM0ICswMjAwLCBHcmVnIEtyb2FoLUhhcnRtYW4gd3Jv dGU6Cj4gT24gVHVlLCBTZXAgMjYsIDIwMTcgYXQgMDQ6MjE6NDdQTSArMDMwMCwgSm9vbmFzIExh aHRpbmVuIHdyb3RlOgo+ID4gT24gVHVlLCAyMDE3LTA5LTI2IGF0IDA5OjUyICswMjAwLCBHcmVn IEtyb2FoLUhhcnRtYW4gd3JvdGU6Cj4gPiA+IE9uIE1vbiwgU2VwIDI1LCAyMDE3IGF0IDA3OjQ3 OjE3UE0gKzAxMDAsIE1hdHRoZXcgQXVsZCB3cm90ZToKPiA+ID4gPiBOb3QgYSBmdWxseSBibG93 biBnZW1mcywganVzdCBvdXIgdmVyeSBvd24gdG1wZnMga2VybmVsIG1vdW50LiBEb2luZyBzbwo+ ID4gPiA+IG1vdmVzIHVzIGF3YXkgZnJvbSB0aGUgc2htZW1mcyBzaG1fbW50LCBhbmQgZ2l2ZXMg dXMgdGhlIG11Y2ggbmVlZGVkCj4gPiA+ID4gZmxleGliaWxpdHkgdG8gZG8gdGhpbmdzIGxpa2Ug c2V0IG91ciBvd24gbW91bnQgb3B0aW9ucywgbmFtZWx5IGh1Z2U9Cj4gPiA+ID4gd2hpY2ggc2hv dWxkIGFsbG93IHVzIHRvIGVuYWJsZSB0aGUgdXNlIG9mIHRyYW5zcGFyZW50LWh1Z2UtcGFnZXMg Zm9yCj4gPiA+ID4gb3VyIHNobWVtIGJhY2tlZCBvYmplY3RzLgo+ID4gPiA+IAo+ID4gPiA+IHYy OiB2YXJpb3VzIGltcHJvdmVtZW50cyBzdWdnZXN0ZWQgYnkgSm9vbmFzCj4gPiA+ID4gCj4gPiA+ ID4gdjM6IG1vdmUgZ2VtZnMgaW5zdGFuY2UgdG8gaTkxNS5tbSBhbmQgc2ltcGxpZnkgbm93IHRo YXQgd2UgaGF2ZQo+ID4gPiA+IGZpbGVfc2V0dXBfd2l0aF9tbnQKPiA+ID4gPiAKPiA+ID4gPiB2 NDogZmFsbGJhY2sgdG8gdG1wZnMgc2htX21udCB1cG9uIGZhaWx1cmUgdG8gc2V0dXAgZ2VtZnMK PiA+ID4gPiAKPiA+ID4gPiB2NTogbWFrZSB0bXBmcyBmYWxsYmFjayBraW5kZXIKPiA+ID4gCj4g PiA+IFdoeSBkbyB0aGlzIG9ubHkgZm9yIG9uZSBzcGVjaWZpYyBkcml2ZXI/ICBTaG91bGRuJ3Qg dGhlIGRybSBjb3JlIGhhbmRsZQo+ID4gPiB0aGlzIGZvciB5b3UsIGZvciBhbGwgb3RoZXIgZHJp dmVycyBhcyB3ZWxsPyAgT3RoZXJ3aXNlIHRyeWluZyB0byBmaWd1cmUKPiA+ID4gb3V0IGhvdyB0 byAiY29udGFpbiIgdGhpcyB0eXBlIG9mIHRoaW5nIGlzIGdvaW5nIHRvIGJlIGEgcGFpbiAobW91 bnQKPiA+ID4gb3B0aW9ucywgc2VsaW51eCBvcHRpb25zLCBldGMuKQo+ID4gCj4gPiBXZSBhY3R1 YWxseSBzdGFydGVkIHF1aXRlIGdyYW5kZSBieSBtYWtpbmcgc3RyaXBwZWQgZG93biB2ZXJzaW9u IG9mCj4gPiBzaG1lbWZzIGZvciBkcm0gY29yZSwgYnV0IGtlcHQgcnVubmluZyBpbnRvIG5hY2tz IGFib3V0IGhvdyB3ZSB3ZXJlCj4gPiBpbXBsZW1lbnRpbmcgaXQgKGFmdGVyIGdldHRpbmcgYSBy ZWNvbW1lbmRhdGlvbiB0byB0cnkgaW1wbGVtZW50aW5nIGl0Cj4gPiBzb21lIHdheSkuIEFmdGVy IGEgZmV3IGl0ZXJhdGlvbnMgYW5kIG1hc3NpdmUgZW5naW5lZXJpbmcgdGltZSwgd2UgaGF2ZQo+ ID4gYmVlbiBwcm9ncmVzc2l2ZWx5IHJlZHVjaW5nIHRoZSBhbW91bnQgb2YgY2hhbmdlcyBvdXRz aWRlIGk5MTUgaW4gdGhlCj4gPiBob3BlcyB0byBnZXQgdGhpcyBtZXJnZWQuCj4gPiAKPiA+IEFu ZCBhbGwgdGhlIHdoaWxlIGNsb2NrIGlzIHRpY2tpbmcsIHNvIHdlIHRob3VnaHQgdGhlIGJlc3Qg d2F5IHRvIGdldAo+ID4gc29tZXRoaW5nIHRvIHN1cHBvcnQgb3VyIGZ1dHVyZSB3b3JrIGlzIHRv IGltcGxlbWVudCB0aGlzIGZpcnN0IGxvY2FsbHkKPiA+IHdpdGggbWluaW1hbCBleHRlcm5hbCBj aGFuZ2VzIG91dHNpZGUgaTkxNSBhbmQgdGhlbiBvbmNlIHdlIGhhdmUKPiA+IHNvbWV0aGluZyB3 b3JraW5nLCBpdCdsbCBiZSBlYXNpZXIgdG8gZ2VuZXJhbGl6ZSBpdCBmb3IgdGhlIGRybSBjb3Jl Lgo+ID4gT3RoZXJ3aXNlIHdlJ2xsIG5ldmVyIGdldCB0byB3b3JrIHdpdGggdGhlIGh1Z2UgcGFn ZSBzdXBwb3J0LCBmb3Igd2hpY2gKPiA+IGdlbWZzIGlzIHRoZSBzdGVwcGluZyBzdG9uZSBoZXJl Lgo+ID4gCj4gPiBTbyB3ZSdyZSBub3QgcGxhbm5pbmcgb24gc2l0dGluZyBvbiB0b3Agb2YgaXQs IHdlJ2xsIGp1c3QgaW5jdWJhdGUgaXQKPiA+IHVuZGVyIGk5MTUvIHNvIHRoYXQgaXQnbGwgdGhl biBiZSBsZXNzIHBhaW4gZm9yIG90aGVycyB0byBhZG9wdCB3aGVuCj4gPiB0aGUgYmlnZ2VzdCBo dXJkbGVzIHdpdGggY29yZSBNTSBpbnRlcmFjdGlvbnMgYXJlIHNvcnRlZCBvdXQuCj4gCj4gQnV0 IGJ5IGRvaW5nIHRoaXMsIHlvdSBhcmUgbm93IGNyZWF0aW5nIGEgbmV3IHVzZXIva2VybmVsIGFw aSB0aGF0IHlvdQo+IGhhdmUgdG8gc3VwcG9ydCBmb3IgZm9yZXZlciwgcmlnaHQ/ICBXaWxsIGl0 IG5vdCBjaGFuZ2UgaWYgeW91IG1ha2UgaXQKPiAiZ2VuZXJpYyIgdG8gdGhlIGRybSBjb3JlIGV2 ZW50dWFsbHk/CgpOb3BlLCB0aGlzIHNlcmllcyBpcyBhY3R1YWxseSBqdXN0IGZvciB0aGUgZHJp dmVyIHRvIGdldCBzb21lIFRIUHMsCnJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB1c2VyIGFza2VkIGZv ciB0aGVtIG9yIG5vdC4gSXQncyBhbiBvcHBvcnR1bmlzdGljCmZlYXR1cmUgaW4gdGhpcyBmb3Jt LCBubyBuZXcgQVBJIGludHJvZHVjZWQuIFdlIHdpbGwgYWxzbyB0YWtlCmFkdmFudGFnZSBpZiB3 ZSBoYXBwZW4gdG8gZ2V0IDQtb3JkZXIgcGFnZXMgKDY0S0IpLgoKV2hhdCBjb21lcyB0byB0aGUg QVBJIGFueXdheSwgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gZWFjaCBHUFUgZHJpdmVyCmFyZSBi aWcgZW5vdWdoIHRoYXQgd2UgZWFjaCBoYXZlIG91ciBvd24gR0VNIGJ1ZmZlciBjcmVhdGUgSU9D VExzIGZvcgpleGFtcGxlIChJOTE1X0dFTV9DUkVBVEUgZm9yIGk5MTUpLiBBbmQgdGhlbiB0aG9z ZSBhcmUgaW50ZXJuYWxseQpjYWxsaW5nIERSTSBjb3JlIGZ1bmN0aW9ucyB3aGljaCBkbyBidWxr IG9mIHRoZSB3b3JrIHdpdGggdGhlIGJhY2tpbmcKc3RvcmFnZS4gU28gaWYgd2UgcHJvdmlkZSBh biBpbnRlcmZhY2UgZm9yIHRoZSB1c2VyIHRvIGVuZm9yY2UgZ2V0dGluZwpodWdlIHBhZ2VzLCB3 ZSdsbCBzaW1wbHkgaGF2ZSBvdXIgb3duIGJpdCBpbiB0aGUgSU9DVEwgd2hpY2ggd2lsbCB0aGVu CmJlIHRyYW5zbGF0ZWQgdG8gc29tZSBEUk0gY29yZSBmbGFnIG9yIGZ1bmN0aW9uIGNhbGwuCgo+ IFdvcnNlIGNhc2UsIG5hbWUgaXQgYSBnZW5lcmljIG5hbWUgdGhhdCBldmVyeW9uZSB3aWxsIGVu ZCB1cCB1c2luZyBpbgo+IHRoZSBmdXR1cmUsIGFuZCB0aGVuIHlvdSBjYW4ganVzdCBjbGFpbSB0 aGF0IGFsbCBvdGhlciBkcml2ZXJzIG5lZWQgdG8KPiBpbXBsZW1lbnQgaXQgOikKCiJnZW0iIGlz IHRoZSBEUk0gY29yZSBtZW1vcnkgbWFuYWdlciAod2VsbCwgdGhlIG90aGVyIG9mIHRoZW0pLCBz bwoiZ2VtZnMiIGlzIG5vdCBhbiBhY2NpZGVudGFsIG5hbWUgOikgV2UncmUgZGVmaW5pdGVseSBk cml2aW5nIGl0IHRoZXJlLgoKUmVnYXJkcywgSm9vbmFzCi0tIApKb29uYXMgTGFodGluZW4KT3Bl biBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKSW50ZWwgQ29ycG9yYXRpb24KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f199.google.com (mail-pf0-f199.google.com [209.85.192.199]) by kanga.kvack.org (Postfix) with ESMTP id 39DD56B025F for ; Wed, 27 Sep 2017 03:52:39 -0400 (EDT) Received: by mail-pf0-f199.google.com with SMTP id a7so21622770pfj.3 for ; Wed, 27 Sep 2017 00:52:39 -0700 (PDT) Received: from mga03.intel.com (mga03.intel.com. [134.134.136.65]) by mx.google.com with ESMTPS id x33si7067457plb.203.2017.09.27.00.52.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Sep 2017 00:52:38 -0700 (PDT) Message-ID: <1506498659.5505.17.camel@linux.intel.com> Subject: Re: [PATCH 02/22] drm/i915: introduce simple gemfs From: Joonas Lahtinen Date: Wed, 27 Sep 2017 10:50:59 +0300 In-Reply-To: <20170926213440.GD3418@kroah.com> References: <20170925184737.8807-1-matthew.auld@intel.com> <20170925184737.8807-3-matthew.auld@intel.com> <20170926075221.GB32088@kroah.com> <1506432107.5228.26.camel@linux.intel.com> <20170926213440.GD3418@kroah.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Greg Kroah-Hartman Cc: Matthew Auld , devel@driverdev.osuosl.org, Dave Hansen , intel-gfx@lists.freedesktop.org, Hugh Dickins , Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , dri-devel@lists.freedesktop.org, Chris Wilson , linux-mm@kvack.org, Riley Andrews , Daniel Vetter , "Kirill A . Shutemov" , Andrew Morton On Tue, 2017-09-26 at 23:34 +0200, Greg Kroah-Hartman wrote: > On Tue, Sep 26, 2017 at 04:21:47PM +0300, Joonas Lahtinen wrote: > > On Tue, 2017-09-26 at 09:52 +0200, Greg Kroah-Hartman wrote: > > > On Mon, Sep 25, 2017 at 07:47:17PM +0100, Matthew Auld wrote: > > > > Not a fully blown gemfs, just our very own tmpfs kernel mount. Doing so > > > > moves us away from the shmemfs shm_mnt, and gives us the much needed > > > > flexibility to do things like set our own mount options, namely huge= > > > > which should allow us to enable the use of transparent-huge-pages for > > > > our shmem backed objects. > > > > > > > > v2: various improvements suggested by Joonas > > > > > > > > v3: move gemfs instance to i915.mm and simplify now that we have > > > > file_setup_with_mnt > > > > > > > > v4: fallback to tmpfs shm_mnt upon failure to setup gemfs > > > > > > > > v5: make tmpfs fallback kinder > > > > > > Why do this only for one specific driver? Shouldn't the drm core handle > > > this for you, for all other drivers as well? Otherwise trying to figure > > > out how to "contain" this type of thing is going to be a pain (mount > > > options, selinux options, etc.) > > > > We actually started quite grande by making stripped down version of > > shmemfs for drm core, but kept running into nacks about how we were > > implementing it (after getting a recommendation to try implementing it > > some way). After a few iterations and massive engineering time, we have > > been progressively reducing the amount of changes outside i915 in the > > hopes to get this merged. > > > > And all the while clock is ticking, so we thought the best way to get > > something to support our future work is to implement this first locally > > with minimal external changes outside i915 and then once we have > > something working, it'll be easier to generalize it for the drm core. > > Otherwise we'll never get to work with the huge page support, for which > > gemfs is the stepping stone here. > > > > So we're not planning on sitting on top of it, we'll just incubate it > > under i915/ so that it'll then be less pain for others to adopt when > > the biggest hurdles with core MM interactions are sorted out. > > But by doing this, you are now creating a new user/kernel api that you > have to support for forever, right? Will it not change if you make it > "generic" to the drm core eventually? Nope, this series is actually just for the driver to get some THPs, regardless of whether user asked for them or not. It's an opportunistic feature in this form, no new API introduced. We will also take advantage if we happen to get 4-order pages (64KB). What comes to the API anyway, the differences between each GPU driver are big enough that we each have our own GEM buffer create IOCTLs for example (I915_GEM_CREATE for i915). And then those are internally calling DRM core functions which do bulk of the work with the backing storage. So if we provide an interface for the user to enforce getting huge pages, we'll simply have our own bit in the IOCTL which will then be translated to some DRM core flag or function call. > Worse case, name it a generic name that everyone will end up using in > the future, and then you can just claim that all other drivers need to > implement it :) "gem" is the DRM core memory manager (well, the other of them), so "gemfs" is not an accidental name :) We're definitely driving it there. Regards, Joonas -- Joonas Lahtinen Open Source Technology Center Intel Corporation -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org