[Intel-gfx] [PATCH] drm/i915: Park the signaler before sleeping
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Apr 4 09:57:15 UTC 2017
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>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list