> From: Joonas Lahtinen [mailto:joonas.lahtinen@xxxxxxxxxxxxxxx] > Sent: Friday, June 03, 2016 5:47 PM > > On to, 2016-06-02 at 12:36 -0400, Zhi Wang wrote: > > This patch introduces the support of LRC context signle submission. > > "single" > > > As GVT context may come from different guests, which requires different > > "require" > > > configuration of render registers. It can't be combined into a dual ELSP > > submission combo. > > > > Only GVT-g will create this kinds of GEM context currently. > > > > v6: > > - Make GVT code as dead code when !CONFIG_DRM_I915_GVT. (Chris) > > > > v5: > > > > - Only compile this feature when CONFIG_DRM_I915_GVT=y. (Tvrtko) > > > > Signed-off-by: Zhi Wang <zhi.a.wang@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/i915_drv.h | 1 + > > drivers/gpu/drm/i915/intel_lrc.c | 15 +++++++++++++++ > > 2 files changed, 16 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > > index dee72d3..92d01e3 100644 > > --- a/drivers/gpu/drm/i915/i915_drv.h > > +++ b/drivers/gpu/drm/i915/i915_drv.h > > @@ -882,6 +882,7 @@ struct i915_gem_context { > > u32 lrc_ring_buffer_size; > > u32 lrc_addressing_mode_bits; > > bool enable_lrc_status_change_notification; > > + bool enable_lrc_single_submission; > > > > struct list_head link; > > > > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > > index 96d20c8..ce707ea 100644 > > --- a/drivers/gpu/drm/i915/intel_lrc.c > > +++ b/drivers/gpu/drm/i915/intel_lrc.c > > @@ -446,6 +446,21 @@ static void execlists_context_unqueue(struct intel_engine_cs > *engine) > > i915_gem_request_unreference(req0); > > req0 = cursor; > > } else { > > + /* Compiler will do the dead-code elimination */ > > + if (IS_ENABLED(CONFIG_DRM_I915_GVT)) { > > + /* > > + * req0 (after merged) ctx requires single > > + * submission, stop picking > > + */ > > + if (req0->ctx->enable_lrc_single_submission) > > + break; > > + /* > > + * req0 ctx doesn't require single submission, > > + * but next req ctx requires, stop picking > > + */ > > + if (cursor->ctx->enable_lrc_single_submission) > > + break; > > + } > > I remember discussing this on the F2F, we will be aware of the VM IDs > at this point, so we could use that criterion, instead of just > disabling it pessimistically. Is there some reason we could not do it? > > Check would be rather simple; > > #if IS_ENABLED(CONFIG_DRM_I915_GVT) > if (req0->gvt.vmid != cursor->gvt.vmid) > break; > #endif > > I'm not sure if it will be worth the #if when vmid would be zero in > DOM0 always. > We'd better remove explicit reference to vmid here. 'vmid' is a very Xen specific resource. There is no 'vmid' in KVM (we patched KVM to introduce 'vmid' today which however likely won't be accepted by KVM upstream). Here it should be some opaque handle (for Xen it is vmid while for KVM it will be another handle identifiable in KVM upstream) Thanks Kevin _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx