Re: [Intel-gfx] [PATCH] drm/i915/selftests: Wait until we start timeslicing after a submit

2020-04-03 Thread Ruhl, Michael J
>-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

2020-04-03 Thread Chris Wilson
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

2020-04-03 Thread Ruhl, Michael J
>-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