Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 891b48cf authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Avoid blocking the kworker thread on a stuck mutex



Just reschedule the retire requests again if the device is currently
busy. The request list will be pruned along other paths so will never
grow unbounded and so we can afford to miss the occasional pruning.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent 3d2a812a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1901,7 +1901,12 @@ i915_gem_retire_work_handler(struct work_struct *work)
				mm.retire_work.work);
	dev = dev_priv->dev;

	mutex_lock(&dev->struct_mutex);
	/* Come back later if the device is busy... */
	if (!mutex_trylock(&dev->struct_mutex)) {
		queue_delayed_work(dev_priv->wq, &dev_priv->mm.retire_work, HZ);
		return;
	}

	i915_gem_retire_requests(dev);

	if (!dev_priv->mm.suspended &&