[igt-dev] [PATCH i-g-t v2 1/2] i915/i915_module_load: Randomise fault injection
Kamil Konieczny
kamil.konieczny at linux.intel.com
Wed Jul 13 07:36:29 UTC 2022
On 2022-07-13 at 08:51:12 +0200, Zbigniew Kempczyński wrote:
> From: Chris Wilson <chris.p.wilson at linux.intel.com>
>
> Reduce the number of faults we inject during module reload to bring the
> test runtime back to a reasonable level, and rely on multiple CI runs to
> establish the full picture. This reduces the efficacy of testing (i.e.
> premerge will probably not prevent inclusion of a buggy patch), but
> error handling on module reload is not a critical factor for driver
> health -- a broken patch that explodes in an error path is unlikely to
> prevent CI from detecting critical issues, and with multiple runs we
> should still be able to detect and fix issues before merging.
>
> Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6393
>
> Signed-off-by: Chris Wilson <chris.p.wilson at linux.intel.com>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
> ---
> v2: Reorganize fault_inject() loop (Kamil)
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/i915/i915_module_load.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/tests/i915/i915_module_load.c b/tests/i915/i915_module_load.c
> index 05863c4748..0ce433869d 100644
> --- a/tests/i915/i915_module_load.c
> +++ b/tests/i915/i915_module_load.c
> @@ -345,20 +345,27 @@ igt_main
> " with fault injection.");
> igt_subtest("reload-with-fault-injection") {
> const char *param;
> - int i = 0;
> + int i;
>
> igt_i915_driver_unload();
>
> + i = 0;
> + param = getenv("IGT_SRANDOM");
> + if (param)
> + i = atoi(param);
> + if (!i)
> + i = time(NULL);
> + igt_info("Using IGT_SRANDOM=%d for randomised faults\n", i);
> + srandom(i);
> +
> param = "inject_probe_failure";
> if (!igt_kmod_has_param("i915", param))
> param = "inject_load_failure";
> igt_require(igt_kmod_has_param("i915", param));
>
> - while (inject_fault("i915", param, ++i) == 0)
> - ;
> -
> - /* We expect to hit at least one fault! */
> - igt_assert(i > 1);
> + i = 1;
> + while (inject_fault("i915", param, i) == 0)
> + i += 1 + random() % 17;
>
> /* inject_fault() leaves the module unloaded */
> }
> --
> 2.34.1
>
More information about the igt-dev
mailing list