[Intel-gfx] [PATCH] drm/i915: Park the signaler before sleeping
Chris Wilson
chris at chris-wilson.co.uk
Tue Apr 4 12:28:55 UTC 2017
On Tue, Apr 04, 2017 at 10:57:15AM +0100, Tvrtko Ursulin wrote:
>
> On 03/04/2017 11:51, Chris Wilson wrote:
> >If the signal to park arrives before we sleep, then we need to check
> >kthread_should_park() before sleeping to avoid missing the signal.
> >Otherwise, if the signal arrives whilst we are processing completed
> >requests, we will reset the current->state back to TASK_INTERRUPTIBLE
> >and so miss the wakeup.
> >
> >Fixes: fe3288b5da2c ("drm/i915: Park the breadcrumbs signaler across a GPU reset")
> >Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> >Cc: Mika Kuoppala <mika.kuoppala at intel.com>
> >Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >---
> > drivers/gpu/drm/i915/intel_breadcrumbs.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
> >index b6ea192ad550..308c56a021ab 100644
> >--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
> >+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
> >@@ -629,6 +629,9 @@ static int intel_breadcrumbs_signaler(void *arg)
> > } else {
> > DEFINE_WAIT(exec);
> >
> >+ if (kthread_should_park())
> >+ kthread_parkme();
> >+
> > if (kthread_should_stop()) {
> > GEM_BUG_ON(request);
> > break;
> >@@ -641,9 +644,6 @@ static int intel_breadcrumbs_signaler(void *arg)
> >
> > if (request)
> > remove_wait_queue(&request->execute, &exec);
> >-
> >- if (kthread_should_park())
> >- kthread_parkme();
> > }
> > i915_gem_request_put(request);
> > } while (1);
> >
>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Thanks, I have it my queue -- I'll push with the other signaler patch,
hint hint ;)
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list