Re: [PATCH 4/4] drm/i915/display: use fixed 10 second timeout for fence wait

Maarten Lankhorst <[email protected]>
Newsgroups org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe
Message-ID <[email protected]>
Hello,

On 8/19/26 16:05, Jani Nikula wrote:
> i915 has a configurable fence wait timeout, defaulting to 10 seconds,
> and xe uses MAX_SCHEDULE_TIMEOUT i.e. it has no timeout.
>
> Use a fixed 10 second timeout for both drivers instead of having them do
> different things. Ditch the now unused compat header from xe.
>
> i915 actually needs the timeout to deal with CI reset tests, but there
> shouldn't be any harm in having a 10 second timeout in xe either.
>
> Cc: Ville Syrjälä <[email protected]>
> Cc: Maarten Lankhorst <[email protected]>
> Signed-off-by: Jani Nikula <[email protected]>
>
> ---
>
> There have been a number of stabs at this in the past (see links below),
> and all of them have been rejected with one reason or another.
>
> My primary goal here is just to remove the annoying i915_fence_timeout()
> usage and i915 vs. xe difference. Further cleanup can come later (or
> never, as it usually is).
>
> https://lore.kernel.org/r/[email protected]
> https://lore.kernel.org/r/[email protected]
> https://lore.kernel.org/r/8cde57236982fc3ca1a5608332943d3b9274a45a.1775661609.git.jani.nikula@intel.com
> https://lore.kernel.org/r/[email protected]
> ---
>  drivers/gpu/drm/i915/display/intel_display.c     |  4 +---
>  .../gpu/drm/xe/compat-i915-headers/i915_config.h | 16 ----------------
>  2 files changed, 1 insertion(+), 19 deletions(-)
>  delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/i915_config.h
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index aa5d41dac8a9..c3a11e9e69e2 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -50,7 +50,6 @@
>  #include "g4x_dp.h"
>  #include "g4x_hdmi.h"
>  #include "hsw_ips.h"
> -#include "i915_config.h"
>  #include "i9xx_plane.h"
>  #include "i9xx_plane_regs.h"
>  #include "i9xx_wm.h"
> @@ -7284,8 +7283,7 @@ static void intel_atomic_commit_fence_wait(struct intel_atomic_state *state)
>  		if (!new_plane_state->fence)
>  			continue;
>  
> -		ret = dma_fence_wait_timeout(new_plane_state->fence, false,
> -					     i915_fence_timeout());
> +		ret = dma_fence_wait_timeout(new_plane_state->fence, false, 10 * HZ);
>  		if (!ret)
>  			ret = -ETIMEDOUT;
>  		if (ret < 0) {
>
Not waiting on fences until they're signaled is an existing issue in i915, and was added as a workaround for a deadlock when GPU reset has to reset display as well on old platforms. This requires a modeset to disable everything, which may hang since it could wait on a fence that may only be signaled after gpu reset completes.

Can you test if gpu_reset_clobbers_display and force_reset_modeset_test are set, and if not set the timeout to infinity on i915 as well?

Kind regards,
~Maarten Lankhorst
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.