]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Flush request queue when waiting for ring space
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 5 May 2014 08:07:33 +0000 (09:07 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 7 May 2014 23:23:34 +0000 (01:23 +0200)
commite6989bfdcff4e345aebd883e6099d716407d2ecb
treed96d157f27c06eb90f91aed6c95aaa0d319c5898
parentf59f377737a589f3a93326b7d12855e57cde304a
drm/i915: Flush request queue when waiting for ring space

During the review of

commit c1b489d7da68c3fad08520a8923791d20d9181ec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 27 22:43:07 2014 +0000

    drm/i915: Prevent recursion by retiring requests when the ring is full

Ville raised the point that our interaction with request->tail was
likely to foul up other uses elsewhere (such as hang check comparing
ACTHD against requests).

However, we also need to restore the implicit retire requests that certain
test cases depend upon (e.g. igt/gem_exec_lut_handle), this raises the
spectre that the ppgtt will randomly call i915_gpu_idle() and recurse
back into intel_ring_begin().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78023
Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com>
[danvet: Remove now unused 'tail' variable as spotted by Brad.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_ringbuffer.c