]> 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)
commitb3c9673f62a7ee148d40e062ea180073fe6530d6
treed96d157f27c06eb90f91aed6c95aaa0d319c5898
parentfdd4b0ed287d51c19dda48b7c26d280830893980
drm/i915: Flush request queue when waiting for ring space

During the review of

commit a2a28364264ba5bf0e98a72a2de2af39821f6cf8
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