drm/i915: Allow fence allocations to fail
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Dec 2017 18:06:51 +0000 (18:06 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 13 Dec 2017 13:17:44 +0000 (13:17 +0000)
commit2abe2f844645402e5d47012a04839d1c5cbffd0d
tree5d36295e28ae863e1e6cd3a014cb953d971a3fb3
parente30a7581bfc2d5619fed03ec7321c9e4ffb7e36f
drm/i915: Allow fence allocations to fail

If a fence allocation fails in a blocking context, we will sleep on the
fence as a last resort. We can therefore allow ourselves to fail and
sleep on the fence instead of triggering a system-wide oom. This allows
us to throttle malicious clients that are consuming lots of system
resources by capping the amount of memory used by fences.

Testcase: igt/gem_shrink/execbufX
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171212180652.22061-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_clflush.c
drivers/gpu/drm/i915/i915_gem_context.c
drivers/gpu/drm/i915/i915_gem_request.c
drivers/gpu/drm/i915/i915_gem_request.h