Quoting Chris Wilson (2019-11-13 18:42:06) > Quoting Chris Wilson (2019-11-13 18:28:08) > > From: Jon Bloomfield <jon.bloomfield@xxxxxxxxx> > > > > gen9+ introduces a cmdparser for the BLT engine which copies the > > incoming BB to a kmd owned buffer for submission (to prevent changes > > being made after the bb has been safely scanned). This breaks the > > spin functionality because it relies on changing the submitted spin > > buffers in order to terminate them. > > > > Instead, for gen9+, we change the semantics by introducing a COND_BB_END > > into the infinite loop, to wait until a memory flag (in anothe bo) is > > cleared. > > > > v2: Correct nop length to avoid overwriting bb_end instr when using > > a dependency bo (cork) > > v3: fix conflicts on igt_dummyload (Mika) > > v4: s/bool running/uint32_t running, fix r->delta (Mika) > > v5: remove overzealous assert (Mika) > > v6: rebase on top of lib changes (Mika) > > v7: rework on top of public igt lib changes (Mika) > > v8: rebase > > v9: simplify by using bb end as conditional (Chris) > > > > Signed-off-by: Jon Bloomfield <jon.bloomfield@xxxxxxxxx> (v2) > > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxx> > > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > > Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > > --- > > lib/i830_reg.h | 2 +- > > lib/igt_dummyload.c | 17 ++++++++++++++++- > > lib/intel_reg.h | 3 +++ > > tests/i915/gem_double_irq_loop.c | 2 -- > > tests/i915/gem_write_read_ring_switch.c | 2 +- > > 5 files changed, 21 insertions(+), 5 deletions(-) > > > > diff --git a/lib/i830_reg.h b/lib/i830_reg.h > > index a57691c7e..410202567 100644 > > --- a/lib/i830_reg.h > > +++ b/lib/i830_reg.h > > @@ -43,7 +43,7 @@ > > /* broadwater flush bits */ > > #define BRW_MI_GLOBAL_SNAPSHOT_RESET (1 << 3) > > > > -#define MI_COND_BATCH_BUFFER_END (0x36<<23 | 1) > > +#define MI_COND_BATCH_BUFFER_END (0x36 << 23) > > #define MI_DO_COMPARE (1<<21) > > > > #define MI_BATCH_BUFFER_END (0xA << 23) > > diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c > > index c079bd045..652d469a0 100644 > > --- a/lib/igt_dummyload.c > > +++ b/lib/igt_dummyload.c > > @@ -208,7 +208,22 @@ emit_recursive_batch(igt_spin_t *spin, > > * trouble. See https://bugs.freedesktop.org/show_bug.cgi?id=102262 > > */ > > if (!(opts->flags & IGT_SPIN_FAST)) > > - cs += 1000; > > + cs += 960; > > + > > + if (gen >= 8) { > > If we push this back to gen>7 it will allow us to use it with its > cmdparser as well. > > Hmm? I guess we could just do gen>6 so that there's some systematic > cutoff point. Oh, well, it appears the magic compare mode doesn't exist until Skylake. Fortunately, it exists! -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx