lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2de6d428-b997-4ba8-8766-a211e5612e72@amd.com>
Date: Fri, 23 Jan 2026 14:52:44 +0100
From: Christian König <christian.koenig@....com>
To: Hamza Mahfooz <someguy@...ective-light.com>,
 dri-devel@...ts.freedesktop.org
Cc: Alex Deucher <alexander.deucher@....com>, David Airlie
 <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
 Harry Wentland <harry.wentland@....com>, Leo Li <sunpeng.li@....com>,
 Rodrigo Siqueira <siqueira@...lia.com>,
 Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
 Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
 Sunil Khatri <sunil.khatri@....com>, Ce Sun <cesun102@....com>,
 Lijo Lazar <lijo.lazar@....com>, Kenneth Feng <kenneth.feng@....com>,
 Ivan Lipski <ivan.lipski@....com>, Alex Hung <alex.hung@....com>,
 Tom Chung <chiahsuan.chung@....com>, Melissa Wen <mwen@...lia.com>,
 Michel Dänzer <mdaenzer@...hat.com>,
 Fangzhi Zuo <Jerry.Zuo@....com>, Timur Kristóf
 <timur.kristof@...il.com>, amd-gfx@...ts.freedesktop.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] drm: introduce page_flip_timeout()

On 1/23/26 01:05, Hamza Mahfooz wrote:
> There should be a mechanism for drivers to respond to flip_done
> time outs.

I can only see two reasons why you could run into a timeout:

1. A dma_fence never signals.
	How that should be handled is already well documented and doesn't require any of this.

2. A coding error in the vblank or page flip handler leading to waiting forever.
	In that case calling back into the driver doesn't help either.

So as far as I can see the whole approach doesn't make any sense at all.

Regards,
Christian.

> Since, as it stands it is possible for the display
> to stall indefinitely, necessitating a hard reset. So, introduce
> a new crtc callback that is called by
> drm_atomic_helper_wait_for_flip_done() to give drivers a shot
> at recovering from page flip timeouts.
> 
> Signed-off-by: Hamza Mahfooz <someguy@...ective-light.com>
> ---
>  drivers/gpu/drm/drm_atomic_helper.c | 6 +++++-
>  include/drm/drm_crtc.h              | 9 +++++++++
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 5840e9cc6f66..3a144c324b19 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -1881,9 +1881,13 @@ void drm_atomic_helper_wait_for_flip_done(struct drm_device *dev,
>  			continue;
>  
>  		ret = wait_for_completion_timeout(&commit->flip_done, 10 * HZ);
> -		if (ret == 0)
> +		if (!ret) {
>  			drm_err(dev, "[CRTC:%d:%s] flip_done timed out\n",
>  				crtc->base.id, crtc->name);
> +
> +			if (crtc->funcs->page_flip_timeout)
> +				crtc->funcs->page_flip_timeout(crtc);
> +		}
>  	}
>  
>  	if (state->fake_commit)
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 66278ffeebd6..45dc5a76e915 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -609,6 +609,15 @@ struct drm_crtc_funcs {
>  				uint32_t flags, uint32_t target,
>  				struct drm_modeset_acquire_ctx *ctx);
>  
> +	/**
> +	 * @page_flip_timeout:
> +	 *
> +	 * This optional hook is called if &drm_crtc_commit.flip_done times out,
> +	 * and can be used by drivers to attempt to recover from a page flip
> +	 * timeout.
> +	 */
> +	void (*page_flip_timeout)(struct drm_crtc *crtc);
> +
>  	/**
>  	 * @set_property:
>  	 *


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ