Quoting Mika Kuoppala (2020-04-24 17:01:48) > Restoration of a previous timestamp can collide > with updating the timestamp, causing a value corruption. > > Combat this issue by using indirect ctx bb to > modify the context image during restoring process. > > We can preload value into scratch register. From which > we then do the actual write with LRR. LRR is faster and > thus less error prone as probability of race drops. > > v2: tidying (Chris) > v3: lrr for all engines > v4: grp > > References: HSDES#16010904313 > Testcase: igt/i915_selftest/gt_lrc > Suggested-by: Joseph Koston <joseph.koston@xxxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/intel_context_types.h | 3 + > drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 3 +- > drivers/gpu/drm/i915/gt/intel_lrc.c | 158 +++++++++++++++--- > 3 files changed, 144 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h b/drivers/gpu/drm/i915/gt/intel_context_types.h > index 07cb83a0d017..c7573d565f58 100644 > --- a/drivers/gpu/drm/i915/gt/intel_context_types.h > +++ b/drivers/gpu/drm/i915/gt/intel_context_types.h > @@ -70,6 +70,9 @@ struct intel_context { > > u32 *lrc_reg_state; > u64 lrc_desc; > + > + u32 ctx_bb_offset; > + > u32 tag; /* cookie passed to HW to track this context on submission */ > > /* Time on GPU as tracked by the hw. */ > diff --git a/drivers/gpu/drm/i915/gt/intel_gpu_commands.h b/drivers/gpu/drm/i915/gt/intel_gpu_commands.h > index f04214a54f75..5a04a83bca71 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gpu_commands.h > +++ b/drivers/gpu/drm/i915/gt/intel_gpu_commands.h > @@ -138,7 +138,7 @@ > */ > #define MI_LOAD_REGISTER_IMM(x) MI_INSTR(0x22, 2*(x)-1) > /* Gen11+. addr = base + (ctx_restore ? offset & GENMASK(12,2) : offset) */ > -#define MI_LRI_CS_MMIO (1<<19) > +#define MI_LRI_LRM_CS_MMIO BIT(19) We're using REG_BIT() for the fixed size value. Acked-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx