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 <[email protected]>
Cc: Mika Kuoppala <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
---
 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 <[email protected]>

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to