[PATCH i-g-t 1/2] tests/device_reset: Wait for device nodes to re-appear

Kamil Konieczny kamil.konieczny at linux.intel.com
Fri Jul 26 11:46:19 UTC 2024


Hi Janusz,
On 2024-07-26 at 10:34:56 +0200, Janusz Krzysztofik wrote:
> CI sporadically reports the following issue:
> 
> (device_reset:1335) DEBUG: rebind the driver to the device
> (device_reset:1335) DEBUG: reopen the device
> (device_reset:1335) drmtest-DEBUG: Looking for devices to open using filter 0: sys:/sys/devices/pci0000:00/0000:00:02.0
> (device_reset:1335) drmtest-DEBUG: Filter matched  | /dev/dri/renderD128
> (device_reset:1335) drmtest-WARNING: No card matches the filter! [sys:/sys/devices/pci0000:00/0000:00:02.0]
> (device_reset:1335) CRITICAL: Test assertion failure function healthcheck, file ../../../usr/src/igt-gpu-tools/tests/device_reset.c:393:
> (device_reset:1335) CRITICAL: Failed assertion: dev->fds.dev >= 0
> (device_reset:1335) CRITICAL: Last errno: 22, Invalid argument
> (device_reset:1335) CRITICAL: file descriptor dev->fds.dev failed
> 
> After rebinding a DRM device driver, we now immediately start looking for
> DRM devices that match our PCI filter established before unbind.  The
> above messages indicate that occasionally not all device nodes are ready
> by the time we are doing that.
> 
> Introduce a delay to give the kernel a chance to re-create in devtmpfs all
> device nodes we are going to scan for.
> 
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11626
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>

LGTM,
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>

> ---
>  tests/device_reset.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tests/device_reset.c b/tests/device_reset.c
> index a669e1224e..8ed3ef5220 100644
> --- a/tests/device_reset.c
> +++ b/tests/device_reset.c
> @@ -385,6 +385,8 @@ static bool is_i915_wedged(int i915)
>  static void healthcheck(struct device_fds *dev)
>  {
>  	if (dev->fds.dev == -1) {
> +		/* give the kernel a breath for re-creating device nodes in devtmpfs */
> +		sleep(1);
>  		/* refresh device list */
>  		igt_devices_scan(true);
>  		igt_debug("reopen the device\n");
> -- 
> 2.45.2
> 


More information about the igt-dev mailing list