All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris@chris-wilson.co.uk>
To: intel-gfx@lists.freedesktop.org
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Subject: [PATCH 3/5] drm/i915: Kill the tasklet then disable
Date: Sun, 12 Feb 2017 17:20:00 +0000	[thread overview]
Message-ID: <20170212172002.23072-3-chris@chris-wilson.co.uk> (raw)
In-Reply-To: <20170212172002.23072-1-chris@chris-wilson.co.uk>

Disabling the tasklet leaves it if scheduled on the ready to run list
until it is re-enabled. This will leave the ksoftird thread spinning
until satisfied. To prevent this situation on starting the GPU reset, we
want to kill the tasklet first and then disable. The same problem will
arise when a tasklet is scheduled from another device, so a better
solution is required for the general case.

Reported-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Fixes: 1f7b847d72c3 ("drm/i915: Disable engine->irq_tasklet around resets")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 48922ff454e6..3c2c2296c1dc 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2651,8 +2651,8 @@ int i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
 		 * Turning off the engine->irq_tasklet until the reset is over
 		 * prevents the race.
 		 */
-		tasklet_disable(&engine->irq_tasklet);
 		tasklet_kill(&engine->irq_tasklet);
+		tasklet_disable(&engine->irq_tasklet);
 
 		if (engine->irq_seqno_barrier)
 			engine->irq_seqno_barrier(engine);
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2017-02-12 17:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-12 17:19 [PATCH 1/5] drm/i915: Assert that the active request hasn't been signaled Chris Wilson
2017-02-12 17:19 ` [PATCH 2/5] drm/i915: Always call i915_gem_reset_finish() following i915_gem_reset_prepare() Chris Wilson
2017-02-13 10:22   ` Mika Kuoppala
2017-02-12 17:20 ` Chris Wilson [this message]
2017-02-13 10:30   ` [PATCH 3/5] drm/i915: Kill the tasklet then disable Mika Kuoppala
2017-02-12 17:20 ` [PATCH 4/5] drm/i915: Park the breadcrumbs signaler across a GPU reset Chris Wilson
2017-02-13 10:03   ` Mika Kuoppala
2017-02-13 10:16   ` Chris Wilson
2017-02-12 17:20 ` [PATCH 5/5] drm/i915: Clear the last_retired_context following a hang/reset Chris Wilson
2017-02-13 10:55   ` Mika Kuoppala
2017-02-13 11:25     ` Chris Wilson
2017-02-12 17:52 ` ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Assert that the active request hasn't been signaled Patchwork
2017-02-13  9:38 ` [PATCH 1/5] " Chris Wilson
2017-02-13 10:52 ` ✓ Fi.CI.BAT: success for series starting with [1/5] " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170212172002.23072-3-chris@chris-wilson.co.uk \
    --to=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=mika.kuoppala@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.