Re: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start timeslicing after a submit
>-Original Message- >From: Chris Wilson >Sent: Friday, April 3, 2020 4:34 PM >To: Ruhl, Michael J ; intel- >g...@lists.freedesktop.org >Subject: Re: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start >timeslicing after a submit > >Quoting Ruhl, Michael J (2020-04-03 21:31:42) >> >-Original Message- >> >From: Intel-gfx On Behalf Of >Chris >> >Wilson >> >Sent: Friday, April 3, 2020 3:02 PM >> >To: intel-gfx@lists.freedesktop.org >> >Cc: Chris Wilson >> >Subject: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start >timeslicing >> >after a submit >> > >> >If we submit, we do not start timeslicnig until we process the CS event >> >> s/timeslicnig/timeslicing/ >> >> >that marks the start of the context running on HW. So in the selftest, >> >be sure to wait until we have processed the pending events before >> >asserting that timeslicing has begun. >> > >> >Signed-off-by: Chris Wilson >> >--- >> > drivers/gpu/drm/i915/gt/selftest_lrc.c | 6 +- >> > 1 file changed, 5 insertions(+), 1 deletion(-) >> > >> >diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c >> >b/drivers/gpu/drm/i915/gt/selftest_lrc.c >> >index 985d4041d929..9e02917695b1 100644 >> >--- a/drivers/gpu/drm/i915/gt/selftest_lrc.c >> >+++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c >> >@@ -1244,7 +1244,11 @@ static int live_timeslice_queue(void *arg) >> > if (err) >> > goto err_rq; >> > >> >- intel_engine_flush_submission(engine); >> >+ /* Wait until we ack the release_queue and start timeslicing >> >*/ >> >+ do { >> >+ intel_engine_flush_submission(engine); >> >+ } while (READ_ONCE(engine->execlists.pending[0])); >> >> Is this guaranteed to clear? Or should there be a count to protect against >> the endless loop? > >Yes. If the HW stops, we reset it and clear the submission queue. In that case: Acked-by: Michael J. Ruhl M >-Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start timeslicing after a submit
Quoting Ruhl, Michael J (2020-04-03 21:31:42) > >-Original Message- > >From: Intel-gfx On Behalf Of Chris > >Wilson > >Sent: Friday, April 3, 2020 3:02 PM > >To: intel-gfx@lists.freedesktop.org > >Cc: Chris Wilson > >Subject: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start > >timeslicing > >after a submit > > > >If we submit, we do not start timeslicnig until we process the CS event > > s/timeslicnig/timeslicing/ > > >that marks the start of the context running on HW. So in the selftest, > >be sure to wait until we have processed the pending events before > >asserting that timeslicing has begun. > > > >Signed-off-by: Chris Wilson > >--- > > drivers/gpu/drm/i915/gt/selftest_lrc.c | 6 +- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > >diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c > >b/drivers/gpu/drm/i915/gt/selftest_lrc.c > >index 985d4041d929..9e02917695b1 100644 > >--- a/drivers/gpu/drm/i915/gt/selftest_lrc.c > >+++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c > >@@ -1244,7 +1244,11 @@ static int live_timeslice_queue(void *arg) > > if (err) > > goto err_rq; > > > >- intel_engine_flush_submission(engine); > >+ /* Wait until we ack the release_queue and start timeslicing > >*/ > >+ do { > >+ intel_engine_flush_submission(engine); > >+ } while (READ_ONCE(engine->execlists.pending[0])); > > Is this guaranteed to clear? Or should there be a count to protect against > the endless loop? Yes. If the HW stops, we reset it and clear the submission queue. -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start timeslicing after a submit
>-Original Message- >From: Intel-gfx On Behalf Of Chris >Wilson >Sent: Friday, April 3, 2020 3:02 PM >To: intel-gfx@lists.freedesktop.org >Cc: Chris Wilson >Subject: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start >timeslicing >after a submit > >If we submit, we do not start timeslicnig until we process the CS event s/timeslicnig/timeslicing/ >that marks the start of the context running on HW. So in the selftest, >be sure to wait until we have processed the pending events before >asserting that timeslicing has begun. > >Signed-off-by: Chris Wilson >--- > drivers/gpu/drm/i915/gt/selftest_lrc.c | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > >diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c >b/drivers/gpu/drm/i915/gt/selftest_lrc.c >index 985d4041d929..9e02917695b1 100644 >--- a/drivers/gpu/drm/i915/gt/selftest_lrc.c >+++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c >@@ -1244,7 +1244,11 @@ static int live_timeslice_queue(void *arg) > if (err) > goto err_rq; > >- intel_engine_flush_submission(engine); >+ /* Wait until we ack the release_queue and start timeslicing >*/ >+ do { >+ intel_engine_flush_submission(engine); >+ } while (READ_ONCE(engine->execlists.pending[0])); Is this guaranteed to clear? Or should there be a count to protect against the endless loop? Or am I too paranoid? 😊 M > if (!READ_ONCE(engine->execlists.timer.expires) && > !i915_request_completed(rq)) { > struct drm_printer p = >-- >2.20.1 > >___ >Intel-gfx mailing list >Intel-gfx@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx