OSDN Git Service

drm/i915: Protect i915_active iterators from the shrinker
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 8 Feb 2019 13:47:04 +0000 (13:47 +0000)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 8 Mar 2019 17:52:29 +0000 (09:52 -0800)
commitdf069367f3b10606195e81053febc8aa4796bbc6
treeb0d0f6173857a43d0a533a4beaa99ec9c59d7628
parent08f68752cefcda4df036879e41313f374474b0fa
drm/i915: Protect i915_active iterators from the shrinker

If we allocate while iterating the rbtree of active nodes, we may hit
the shrinker and so retire the i915_active, reaping the rbtree. Modifying
the rbtree as we iterate is not good behaviour, so acquire the
i915_active first to keep the tree intact whenever we allocate.

Fixes: a42375af0a30 ("drm/i915: Release the active tracker tree upon idling")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190208134704.23039-1-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
(cherry picked from commit 312c4ba1bb71d666f924f84afd5bdc775b71278f)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/i915_active.c