[Intel-gfx] [PATCH 01/10] drm/i915: Only attempt to scan the requested number of shrinker slabs

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Jan 17 10:29:51 UTC 2018


On 15/01/2018 21:24, Chris Wilson wrote:
> Since commit 4e773c3a8a69 ("drm/i915: Wire up shrinkctl->nr_scanned"),

Sounds like it deserves this in the Fixes: tag as well?

> we track the number of objects we scan and do not wish to exceed that as
> it will overly penalise our own slabs under mempressure. Given that we
> now know the target number of objects to scan, use that as our guide for
> deciding to shrink as opposed to the number of objects we manage to
> shrink (which doesn't correspond to the numbers we report to shrinkctl).
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> ---
>   drivers/gpu/drm/i915/i915_gem_shrinker.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_shrinker.c b/drivers/gpu/drm/i915/i915_gem_shrinker.c
> index 9029ed04879c..0e158f9287c4 100644
> --- a/drivers/gpu/drm/i915/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c
> @@ -363,13 +363,13 @@ i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
>   				I915_SHRINK_BOUND |
>   				I915_SHRINK_UNBOUND |
>   				I915_SHRINK_PURGEABLE);
> -	if (freed < sc->nr_to_scan)
> +	if (sc->nr_scanned < sc->nr_to_scan)
>   		freed += i915_gem_shrink(i915,
>   					 sc->nr_to_scan - sc->nr_scanned,
>   					 &sc->nr_scanned,
>   					 I915_SHRINK_BOUND |
>   					 I915_SHRINK_UNBOUND);
> -	if (freed < sc->nr_to_scan && current_is_kswapd()) {
> +	if (sc->nr_scanned < sc->nr_to_scan && current_is_kswapd()) {
>   		intel_runtime_pm_get(i915);
>   		freed += i915_gem_shrink(i915,
>   					 sc->nr_to_scan - sc->nr_scanned,
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list