[Intel-gfx] [PATCH 10/13] drm/i915: Load balancing across a virtual engine
Chris Wilson
chris at chris-wilson.co.uk
Tue Mar 12 08:56:41 UTC 2019
Quoting Tvrtko Ursulin (2019-03-12 07:52:08)
>
> On 08/03/2019 14:12, Chris Wilson wrote:
> > +static int
> > +set_engines__load_balance(struct i915_user_extension __user *base, void *data)
> > +{
> > + struct i915_context_engines_load_balance __user *ext =
> > + container_of_user(base, typeof(*ext), base);
> > + const struct set_engines *set = data;
> > + struct intel_engine_cs *ve;
> > + unsigned int n;
> > + u64 mask;
> > + u16 idx;
> > + int err;
> > +
> > + if (!HAS_EXECLISTS(set->ctx->i915))
> > + return -ENODEV;
> > +
> > + if (USES_GUC_SUBMISSION(set->ctx->i915))
> > + return -ENODEV; /* not implement yet */
>
> Didn't it used to be that you were checking for single timeline flag
> somewhere around here? Now you allow multi-timeline map with a virtual
> engine slot?
Yes, on reflection I decided that was overly prescriptive. If userspace
wants to create a context with a mixed setup of veng and normal engines,
it can choose whether or not they are a single timeline or setup. The
recommendation is that they share a timeline as that's is more likely to
match their client API.
-Chris
More information about the Intel-gfx
mailing list