]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Retire requests before creating a new one
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 15 May 2014 09:41:42 +0000 (10:41 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 19 May 2014 13:30:56 +0000 (15:30 +0200)
commit5f06a0b7cae1efce7799e9cdb506f04ffcaa7e83
treea3833d1937021ab17d4c5375b13722dd5466757e
parent22682dfdb01217d4954a76be30dcd8b9cf62165a
drm/i915: Retire requests before creating a new one

More fallout from

commit 2f408f9db327e7bc2ea3092076b0cb24d477fc43
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 17 12:21:55 2014 +0000

    drm/i915: Do not call retire_requests from wait_for_rendering

is that we can completely fill all of memory using small objects, such
that we exhaust the filp space, and spend all of our time evicting
objects from the aperture. As such, we never fill the ring, and never
trigger the last resort flushing in

commit e6989bfdcff4e345aebd883e6099d716407d2ecb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 5 09:07:33 2014 +0100

    drm/i915: Flush request queue when waiting for ring space

and so all the requests are left active and the objects keep that last
active reference. Eventually the system comes to a halt as it runs out
of memory.

The impact is mainly limited to test cases as regular userspace will
trigger retirement by manually checking whether an object is active.

Testcase: igt/gem_lut_handle
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78724
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Guo Jinxian <jinxianx.guo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_execbuffer.c