Re: [PATCH RFC 1/4] drm/i915: add create_context2 ioctl

Chris Wilson
2016-08-15T16:36:38Z

On Mon, Aug 15, 2016 at 09:25:15AM -0700, Jesse Barnes wrote:
> On Mon, 2016-08-15 at 13:56 +0100, Chris Wilson wrote:
> > On Mon, Aug 15, 2016 at 03:25:43PM +0300, Mika Kuoppala wrote:
> > >
> > > Chris Wilson <chris@chris-wilson.co.uk> writes:
> > >
> > > >
> > > > On Mon, Aug 15, 2016 at 02:48:04PM +0300, Mika Kuoppala wrote:
> > > > >
> > > > > From: Jesse Barnes <jbarnes@virtuousgeek.org>
> > > > >
> > > > > Add i915_gem_context_create2_ioctl for passing flags
> > > > > (e.g. SVM) when creating a context.
> > > > >
> > > > > v2: check the pad on create_context
> > > > > v3: rebase
> > > > > v4: i915_dma is no more. create_gvt needs flags
> > > > >
> > > > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > > > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > > > > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > > > > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (v1)
> > > > > Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> > > >
> > > > Considering we can use deferred ppgtt creation and have setparam
> > > > do we
> > > > need a new create ioctl just to set a flag?
> > >
> > > So like this:
> > >
> > > - create ctx with the default create ioctl
> > > - set cxt param it for svm capable.
> > > - first submit deferred creates
> > >
> > > And we use the setparam point for returning
> > > error if svm context are not there.
> >
> > (and a call to set svm on a context after first use is illegal)
> >
> > That's the outline I had in my head. I am not sure if the result is
> > cleaner - I just hope it is ;)
> >
>
>
> I opted against that initially because creating the tables and setup
> after the fact for the process actually seemed messier.  Plus I thought
> we'd want more flags at context create later anyway...

I was half thinking of some of the silly microbenchmarks might be
improved if we deferred allocation until first use (and others will no
doubt get worse). Plus we already have an interface for making
arbitrarily complex adjustments to a context, so I was trying to avoid a
second.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre