On Wed, Dec 26, 2012 at 11:20:41PM -0500, Daniel Gnoutcheff wrote:
> From: Chris Wilson <[email protected]>
> 
> commit b4a98e57fc27854b5938fc8b08b68e5e68b91e1f upstream.
> 
> If we accumulate unpin tasks because we are pageflipping faster than the
> system can schedule its workers, we can effectively create a
> pin-leak. The solution taken here is to limit the number of unpin tasks
> we have per-crtc and to flush those outstanding tasks if we accumulate
> too many. This should prevent any jitter in the normal case, and also
> prevent the hang if we should run too fast.
> 
> Note: It is important that we switch from the system workqueue to our
> own dev_priv->wq since all work items on that queue are guaranteed to
> only need the dev->struct_mutex and not any modeset resources. For
> otherwise if we have a work item ahead in the queue which needs the
> modeset lock (like the output detect work used by both polling or
> hpd), this work and so the unpin work will never execute since the
> pageflip code already holds that lock. Unfortunately there's no
> lockdep support for this scenario in the workqueue code.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=46991
> Reported-and-tested-by: Tvrtko Ursulin <[email protected]>
> Signed-off-by: Chris Wilson <[email protected]>
> [danvet: Added note about workqueu deadlock.]
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56337
> Signed-off-by: Daniel Vetter <[email protected]>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58732
> Tested-by: Daniel Gnoutcheff <[email protected]>
> [dg: Removed a whitespace change]
> ---
> Please queue this for 3.7.y

Now applied.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to