[PATCH] drm: Don't block the kworker waiting for mode_config.lock in output_poll()

Eric Engestrom eric.engestrom at imgtec.com
Tue Dec 6 11:55:14 UTC 2016


On Tuesday, 2016-12-06 11:37:15 +0000, Chris Wilson wrote:
> If we cannot acquire the mode_config.lock immediately, just back off and

s/mode_config.lock/mode_config.mutex lock/ ?

> 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: Chris Wilson <chris at chris-wilson.co.uk>

Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>

> ---
>  drivers/gpu/drm/drm_probe_helper.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> index ff9ba6f35248..0bf629354297 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -394,7 +394,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. */
> -- 
> 2.11.0
> 


More information about the dri-devel mailing list