[PATCH igt 8/9] msm/mapping: Add wait for stall-on-fault to re-arm

Kamil Konieczny kamil.konieczny at linux.intel.com
Tue Jul 1 16:24:20 UTC 2025


Hi Rob,
On 2025-06-30 at 11:09:02 -0700, Rob Clark wrote:
> From: Rob Clark <rob.clark at oss.qualcomm.com>
> 
> Newer kernels disable stall-on-fault for a grace period, to avoid a
> flood of faults causing instability with memory translations that
> the hw attempts with the translation stalled.  Fortunately it adds a

Is it system-wide or only for msm driver?

Please improve subject:

[PATCH igt 8/9] tests/msm/msm_mapping: Add wait for stall-on-fault to re-arm

imho it could be shorter:

[PATCH igt 8/9] tests/msm/msm_mapping: Wait for stall-on-fault

Regards,
Kamil

> debugfs file so we can know how long we need to wait for stall-on-
> fault to be re-enabled.
> 
> Signed-off-by: Rob Clark <rob.clark at oss.qualcomm.com>
> ---
>  tests/msm/msm_mapping.c | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/tests/msm/msm_mapping.c b/tests/msm/msm_mapping.c
> index 978ea18375dd..7e2f5c7eadc8 100644
> --- a/tests/msm/msm_mapping.c
> +++ b/tests/msm/msm_mapping.c
> @@ -74,6 +74,30 @@ get_and_clear_devcore(int timeout_ms)
>  	return buf;
>  }
>  
> +static void
> +wait_for_stall_on_fault(int drm_fd)
> +{
> +	char buf[64] = "\0";
> +
> +	do {
> +		int us;
> +
> +		igt_debugfs_read(drm_fd, "stall_reenable_time_us", buf);
> +		if (!strlen(buf)) {
> +			/* Not supported on older kernels: */
> +			return;
> +		}
> +
> +		us = atoi(buf);
> +		if (!us) {
> +			/* Done waiting: */
> +			return;
> +		}
> +
> +		usleep(us);
> +	} while (true);
> +}
> +
>  /*
>   * Helper to find named buffer address
>   */
> @@ -224,6 +248,11 @@ do_mapping_test(struct msm_pipe *pipe, const char *buffername, bool write)
>  	ret = sscanf(s, "  - iova=%"PRIx64, &fault_addr);
>  	igt_fail_on(ret != 1);
>  	igt_fail_on(addr != fault_addr);
> +
> +	/* Wait for stall-on-fault to re-enable, otherwise the next sub-test
> +	 * would not generate a devcore:
> +	 */
> +	wait_for_stall_on_fault(pipe->dev->fd);
>  }
>  
>  /*
> -- 
> 2.50.0
> 


More information about the igt-dev mailing list