[PATCH v5 1/4] drm/i915: Avoid early GPU idling due to already pending idle work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Atm, in case an idle work handler is already pending but haven't yet
started to run, retiring a new request will not extend the idle period
as required, rather simply leaves the pending work to be scheduled at
the original expiration time. This may lead to idling the GPU too early.
Fix this by using the delayed-work scheduler alternative which makes
sure the handler's expiration time is extended in this case.

Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Requested-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx>
---
 drivers/gpu/drm/i915/i915_gem_request.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c
index 79b0046..0b3b051 100644
--- a/drivers/gpu/drm/i915/i915_gem_request.c
+++ b/drivers/gpu/drm/i915/i915_gem_request.c
@@ -1019,7 +1019,7 @@ void i915_gem_retire_requests(struct drm_i915_private *dev_priv)
 		engine_retire_requests(engine);
 
 	if (!dev_priv->gt.active_requests)
-		queue_delayed_work(dev_priv->wq,
-				   &dev_priv->gt.idle_work,
-				   msecs_to_jiffies(100));
+		mod_delayed_work(dev_priv->wq,
+				 &dev_priv->gt.idle_work,
+				 msecs_to_jiffies(100));
 }
-- 
2.5.0

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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux