From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devel@driverdev.osuosl.org, linux-mm@kvack.org,
intel-gfx@lists.freedesktop.org,
"Hugh Dickins" <hughd@google.com>,
"Riley Andrews" <riandrews@android.com>,
dri-devel@lists.freedesktop.org,
"Dave Hansen" <dave.hansen@intel.com>,
"Arve Hjønnevåg" <arve@android.com>,
"Matthew Auld" <matthew.auld@intel.com>,
"Kirill A . Shutemov" <kirill@shutemov.name>,
"Daniel Vetter" <daniel.vetter@intel.com>,
"Andrew Morton" <akpm@linux-foundation.org>
Subject: Re: [PATCH 02/22] drm/i915: introduce simple gemfs
Date: Wed, 27 Sep 2017 10:50:59 +0300 [thread overview]
Message-ID: <1506498659.5505.17.camel@linux.intel.com> (raw)
In-Reply-To: <20170926213440.GD3418@kroah.com>
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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2017-09-27 7:50 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-25 18:47 [PATCH 00/22] huge gtt pages Matthew Auld
2017-09-25 18:47 ` [PATCH 01/22] mm/shmem: support passing mnt to shmem_file_setup Matthew Auld
2017-09-25 18:58 ` Chris Wilson
2017-09-25 18:47 ` [PATCH 02/22] drm/i915: introduce simple gemfs Matthew Auld
2017-09-25 19:01 ` Chris Wilson
2017-09-26 7:52 ` Greg Kroah-Hartman
2017-09-26 13:21 ` Joonas Lahtinen
2017-09-26 21:34 ` Greg Kroah-Hartman
2017-09-27 7:50 ` Joonas Lahtinen [this message]
2017-09-25 18:47 ` [PATCH 03/22] mm/shmem: parse mount options for MS_KERNMOUNT Matthew Auld
2017-09-25 19:28 ` Chris Wilson
2017-09-25 18:47 ` [PATCH 04/22] drm/i915/gemfs: enable THP Matthew Auld
2017-09-25 19:11 ` Chris Wilson
2017-09-25 18:47 ` [PATCH 05/22] drm/i915: introduce page_sizes field to dev_info Matthew Auld
2017-09-25 18:47 ` [PATCH 06/22] drm/i915: push set_pages down to the callers Matthew Auld
2017-09-25 18:47 ` [PATCH 07/22] drm/i915: introduce page_size members Matthew Auld
2017-09-25 18:47 ` [PATCH 08/22] drm/i915: introduce vm set_pages/clear_pages Matthew Auld
2017-09-25 18:47 ` [PATCH 09/22] drm/i915: align the vma start to the largest gtt page size Matthew Auld
2017-09-25 18:47 ` [PATCH 10/22] drm/i915: align 64K objects to 2M Matthew Auld
2017-09-25 18:47 ` [PATCH 11/22] drm/i915: enable IPS bit for 64K pages Matthew Auld
2017-09-25 18:47 ` [PATCH 12/22] drm/i915: disable GTT cache for 2M pages Matthew Auld
2017-09-25 18:47 ` [PATCH 13/22] drm/i915: support 2M pages for the 48b PPGTT Matthew Auld
2017-09-25 18:47 ` [PATCH 14/22] drm/i915: add support for 64K scratch page Matthew Auld
2017-09-25 18:47 ` [PATCH 15/22] drm/i915: support 64K pages for the 48b PPGTT Matthew Auld
2017-09-25 18:47 ` [PATCH 16/22] drm/i915: accurate page size tracking for the ppgtt Matthew Auld
2017-09-25 18:47 ` [PATCH 17/22] drm/i915/debugfs: include some gtt page size metrics Matthew Auld
2017-09-25 18:47 ` [PATCH 18/22] drm/i915/selftests: huge page tests Matthew Auld
2017-09-25 19:17 ` Chris Wilson
2017-09-25 18:47 ` [PATCH 19/22] drm/i915/selftests: mix huge pages Matthew Auld
2017-09-25 18:47 ` [PATCH 20/22] drm/i915: disable platform support for vGPU huge gtt pages Matthew Auld
2017-09-25 18:47 ` [PATCH 21/22] drm/i915: enable platform support for 64K pages Matthew Auld
2017-09-25 18:47 ` [PATCH 22/22] drm/i915: enable platform support for 2M pages Matthew Auld
2017-09-25 19:13 ` ✓ Fi.CI.BAT: success for huge gtt pages (rev9) Patchwork
2017-09-25 23:03 ` ✓ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2017-08-15 18:11 [PATCH 00/22] huge gtt pages Matthew Auld
2017-08-15 18:11 ` [PATCH 02/22] drm/i915: introduce simple gemfs Matthew Auld
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1506498659.5505.17.camel@linux.intel.com \
--to=joonas.lahtinen@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=arve@android.com \
--cc=daniel.vetter@intel.com \
--cc=dave.hansen@intel.com \
--cc=devel@driverdev.osuosl.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=hughd@google.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=kirill@shutemov.name \
--cc=linux-mm@kvack.org \
--cc=matthew.auld@intel.com \
--cc=riandrews@android.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox