|
@@ -332,6 +332,15 @@ i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
|
|
|
sc->nr_to_scan - freed,
|
|
|
I915_SHRINK_BOUND |
|
|
|
I915_SHRINK_UNBOUND);
|
|
|
+ if (freed < sc->nr_to_scan && current_is_kswapd()) {
|
|
|
+ intel_runtime_pm_get(dev_priv);
|
|
|
+ freed += i915_gem_shrink(dev_priv,
|
|
|
+ sc->nr_to_scan - freed,
|
|
|
+ I915_SHRINK_ACTIVE |
|
|
|
+ I915_SHRINK_BOUND |
|
|
|
+ I915_SHRINK_UNBOUND);
|
|
|
+ intel_runtime_pm_put(dev_priv);
|
|
|
+ }
|
|
|
|
|
|
shrinker_unlock(dev_priv, unlock);
|
|
|
|