[PATCH i-g-t v2 2/2] tests/intel/xe_exec_fault_mode: account for EBUSY in support check
Kamil Konieczny
kamil.konieczny at linux.intel.com
Mon May 13 13:19:29 UTC 2024
Hi Jonathan,
On 2024-05-10 at 11:24:38 -0700, Jonathan Cavitt wrote:
> It's possible for xe_supports_faults to return false if the system is
> busy with multiple running tests. This is because the check looks for
> all active VMs and searches for VMs that do not have faults enabled,
> returning false if any exist. Recently, this check has been changed to
> return EBUSY when the check fails in this way, so wait for up to two
> seconds for all the active VMs to flush out before proceeding.
>
> Signed-off-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
> ---
> tests/intel/xe_exec_fault_mode.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/tests/intel/xe_exec_fault_mode.c b/tests/intel/xe_exec_fault_mode.c
> index 0b3f4cb8de..4f55756e92 100644
> --- a/tests/intel/xe_exec_fault_mode.c
> +++ b/tests/intel/xe_exec_fault_mode.c
> @@ -406,8 +406,18 @@ igt_main
> int fd;
>
> igt_fixture {
> + struct timespec tv = {};
> + bool supports_faults;
> + int ret;
> + int timeout = igt_run_in_simulation() ? 20 : 2;
> +
> fd = drm_open_driver(DRIVER_XE);
> - igt_require(xe_supports_faults(fd));
> + do {
Could you add here a few ms wait here?
if (ret)
wait 5 miliseconds;
With or without it,
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> + ret = xe_supports_faults(fd);
> + } while (ret == -EBUSY && igt_seconds_elapsed(&tv) < timeout);
> +
> + supports_faults = !ret;
> + igt_require(supports_faults);
> }
>
> for (const struct section *s = sections; s->name; s++) {
> --
> 2.25.1
>
More information about the igt-dev
mailing list