[Intel-gfx] [PATCH 1/2] drm/i915: Use mutex_lock_killable() from inside the shrinker
Chris Wilson
chris at chris-wilson.co.uk
Thu Jan 10 10:47:11 UTC 2019
Quoting Tvrtko Ursulin (2019-01-10 10:24:09)
>
> On 09/01/2019 16:42, Chris Wilson wrote:
> > If the current process is being killed (it was interrupted with SIGKILL
> > or equivalent), it will not make any progress in page allocation and we
> > can abort performing the shrinking on its behalf. So we can use
> > mutex_lock_killable() instead (although this path should only be
> > reachable from kswapd currently).
>
> kswapd is hopefully not killable so it is not reachable via that route.
> But should be via other i915_gem_shrink_all callers. Is it starting to
> look like we need to pass some flags to say
> normal/interruptible/killable (kswapd/debugfs/?)?
killable is justifiable for all callers, I think, even if SIGKILL may
never be delivered. interruptible? Do we want to conceptually fail a
kmalloc due to a signal, as that's likely to end up with ENOMEM and not
EINTR. (Pretty sure that's not common practice but there's a bit of
shrink-unless-killable around.) So I don't think we need to make
normal aka uninterruptible a special case, and returning before
shrinking on any signal seems unexpected.
-Chris
More information about the Intel-gfx
mailing list