[Intel-gfx] [PATCH 1/2] drm/i915: Store the BIT(engine->id) as the engine's mask

Chris Wilson chris at chris-wilson.co.uk
Tue Mar 5 14:59:14 UTC 2019


Quoting Tvrtko Ursulin (2019-03-05 14:44:04)
> 
> On 02/03/2019 10:06, Chris Wilson wrote:
> > In the next patch, we are introducing a broad virtual engine to encompass
> > multiple physical engines, losing the 1:1 nature of BIT(engine->id). To
> > reflect the broader set of engines implied by the virtual instance, lets
> > store the full bitmask.
> > 
> > v2: Use intel_engine_mask_t (s/ring_mask/engine_mask/)
> > v3: Tvrtko voted for moah churn so teach everyone to not mention ring
> > and use $class$instance throughout.
> > 
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> > ---
> > -static void gen6_record_semaphore_state(struct intel_engine_cs *engine,
> > -                                     struct drm_i915_error_engine *ee)
> > -{
> > -     struct drm_i915_private *dev_priv = engine->i915;
> > -
> > -     ee->semaphore_mboxes[0] = I915_READ(RING_SYNC_0(engine->mmio_base));
> > -     ee->semaphore_mboxes[1] = I915_READ(RING_SYNC_1(engine->mmio_base));
> > -     if (HAS_VEBOX(dev_priv))
> > -             ee->semaphore_mboxes[2] =
> > -                     I915_READ(RING_SYNC_2(engine->mmio_base));
> > -}
> > -
> >   static void error_record_engine_registers(struct i915_gpu_state *error,
> >                                         struct intel_engine_cs *engine,
> >                                         struct drm_i915_error_engine *ee)
> > @@ -1161,7 +1142,6 @@ static void error_record_engine_registers(struct i915_gpu_state *error,
> >               if (INTEL_GEN(dev_priv) >= 8) {
> >                       ee->fault_reg = I915_READ(GEN8_RING_FAULT_REG);
> >               } else {
> > -                     gen6_record_semaphore_state(engine, ee);
> 
> Wrong patch?

There wasn't much point updating these as they are defunct, so I removed
them instead.

> >   /* Engine class */
> >   
> > @@ -7250,8 +7250,8 @@ enum {
> >   #define  GEN8_GT_VECS_IRQ           (1 << 6)
> >   #define  GEN8_GT_GUC_IRQ            (1 << 5)
> >   #define  GEN8_GT_PM_IRQ                     (1 << 4)
> > -#define  GEN8_GT_VCS2_IRQ            (1 << 3)
> > -#define  GEN8_GT_VCS1_IRQ            (1 << 2)
> > +#define  GEN8_GT_VCS1_IRQ            (1 << 3)
> > +#define  GEN8_GT_VCS0_IRQ            (1 << 2)
> 
> BSpec uses index 1. :( So I think best to leave these alone.

That does get confusing. So we either have confusing code
with VCS1 -> VCS0 and VCS2 -> VCS1, or just live with the difference
with bspec. Code wins (because I read that more often), but we can
comment that "old" bspec refers to these as 1-indexed?

[snip]

> I wasn't suggesting renaming the engine id enums, but on the other hand 
> it is nicer to have VCS0, VCS1,.. instead of VCS, VCS2, VCS3,...
> 
> So ack from me. And since I read it all almost r-b if not the unrelated 
> error state hunk and more importantly reservations about bit definition 
> names from i915_reg.h.

I'll go drop another couple of patches for the grumbles.
-Chris


More information about the Intel-gfx mailing list