drm/i915: Break up error capture compression loops with cond_resched()
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 16 Sep 2020 09:00:58 +0000 (10:00 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 18 Sep 2020 10:52:44 +0000 (11:52 +0100)
commit293f43c80c0027ff9299036c24218ac705ce584e
tree1e5787f35f002409ed6dc99f95c89277f36d3f73
parent0bda4b80d949d871146f85bb478f5c30c368009e
drm/i915: Break up error capture compression loops with cond_resched()

As the error capture will compress user buffers as directed to by the
user, it can take an arbitrary amount of time and space. Break up the
compression loops with a call to cond_resched(), that will allow other
processes to schedule (avoiding the soft lockups) and also serve as a
warning should we try to make this loop atomic in the future.

Testcase: igt/gem_exec_capture/many-*
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200916090059.3189-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gpu_error.c