[igt-dev] [PATCH i-g-t 2/2] lib/kmod: Check for kernel taints before/after selftests

Dixit, Ashutosh ashutosh.dixit at intel.com
Wed Jan 13 02:38:05 UTC 2021


On Thu, Jan 07, 2021 at 10:43:28AM +0000, Chris Wilson wrote:
> If the kernel generates a bad taint during the selftest (e.g. a
> warning), declare the selftest to be a failure.

People are reporting selftests skipping if the kernel was previously
tainted due to an unrelated reason as a result of this commit (mostly in
personal testing). Is there any way to clear the kernel taint to avoid this
issue (without reverting this commit)? I have looked but haven't found
anything. Thanks.

> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  lib/igt_kmod.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index ebeacd6fc..2ae45a1a1 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -29,6 +29,7 @@
>  #include "igt_core.h"
>  #include "igt_kmod.h"
>  #include "igt_sysfs.h"
> +#include "igt_taints.h"
>
>  /**
>   * SECTION:igt_kmod
> @@ -582,9 +583,12 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
>			  const char *options,
>			  const char *result)
>  {
> +	unsigned long taints;
>	char buf[1024];
>	int err;
>
> +	igt_skip_on(igt_kernel_tainted(&taints));
> +
>	lseek(tst->kmsg, 0, SEEK_END);
>
>	snprintf(buf, sizeof(buf), "%s=1 %s", tl->param, options ?: "");
> @@ -607,6 +611,8 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
>		     "kselftest \"%s %s\" failed: %s [%d]\n",
>		     tst->module_name, buf, strerror(-err), -err);
>
> +	igt_assert_eq(igt_kernel_tainted(&taints), 0);
> +
>	return err;
>  }
>
> --
> 2.30.0
>


More information about the igt-dev mailing list