提交 1fe7841d 编写于 作者: C Chris Wilson 提交者: Daniel Vetter

drm: Don't block the kworker waiting for mode_config.mutex in output_poll()

If we cannot acquire the mode_config.mutex immediately, just back off and
queue a new attempt after the poll interval. This is mostly to stop the
hung task spam when the system is deadlocked, but it will also lessen
the load (in such extreme cases).
Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: NEric Engestrom <eric.engestrom@imgtec.com>
[danvet:s/lock/mutex/ per Eric's comment.]
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161206113715.30382-1-chris@chris-wilson.co.uk
上级 d5264ed3
......@@ -392,7 +392,11 @@ static void output_poll_execute(struct work_struct *work)
if (!drm_kms_helper_poll)
goto out;
mutex_lock(&dev->mode_config.mutex);
if (!mutex_trylock(&dev->mode_config.mutex)) {
repoll = true;
goto out;
}
drm_for_each_connector(connector, dev) {
/* Ignore forced connectors. */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册