When the GPU is idle, we can take a breather and release our hold on our many caches. One such cache is that we keep objects pinned in memory even when they are no longer accessible by the GPU, that cache is held until the system comes under memory pressure. As we are idle, we can be reasonably confident that the pages will not be used again in the near future, so let the system know it can recover the memory for its own purposes. Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index a7979b74ce21..8a9efc50e9d9 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3373,6 +3373,9 @@ i915_gem_idle_work_handler(struct work_struct *work) intel_engines_park(dev_priv); i915_gem_timelines_mark_idle(dev_priv); + /* Discard all currently unused caching of obj->mm.pages */ + i915_gem_shrink(dev_priv, -1UL, NULL, I915_SHRINK_UNBOUND); + GEM_BUG_ON(!dev_priv->gt.awake); dev_priv->gt.awake = false; rearm_hangcheck = false; -- 2.15.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx