[PATCH v2] tests/intel/xe_fault_injection: Ignore expected errors
Kamil Konieczny
kamil.konieczny at linux.intel.com
Fri Nov 15 14:02:43 UTC 2024
Hi Dong,,
On 2024-11-12 at 12:58:55 -0500, Dong, Zhanjun wrote:
>
>
> On 2024-11-08 10:58 a.m., Kamil Konieczny wrote:
> > Hi Jonathan,
> > On 2024-11-07 at 19:59:59 +0000, Jonathan Cavitt wrote:
> > > The following errors can be observed when running the xe_fault_injection
> > > subtests:
> > >
> > > [drm] *ERROR* GT0: GuC init failed with -ENOMEM
> > > [drm] *ERROR* GT0: Failed to initialize uC (-ENOMEM)
> > > probe with driver xe failed with error -12
> > >
> > > Add these messages to the dmesg ignore regex to the applicable tests
> > > (specifically, all tests for the last error, and all tests that target
> > > GuC subsystems for the first two errors).
> > >
> > > v2:
> > > - Fix and merge regex (Kamil)
> > >
> > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3343
> > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
> > > CC: Francois Dugast <francois.dugast at intel.com>
> > > CC: Lucas De Marchi <lucas.demarchi at intel.com>
> > > CC: Matthew Brost <matthew.brost at intel.com>
> > > CC: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > > CC: Michal Wajdeczko <michal.wajdeczko at intel.com>
> > > CC: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> > > ---
> > > tests/intel/xe_fault_injection.c | 25 +++++++++++++++++++++++++
> > > 1 file changed, 25 insertions(+)
> > >
> > > diff --git a/tests/intel/xe_fault_injection.c b/tests/intel/xe_fault_injection.c
> > > index d1c8b25307..8b181808ed 100644
> > > --- a/tests/intel/xe_fault_injection.c
> > > +++ b/tests/intel/xe_fault_injection.c
> > > @@ -30,6 +30,30 @@ enum injection_list_action {
> > > INJECTION_LIST_REMOVE,
> > > };
> > > +static bool function_is_part_of_guc(char function_name[])
> > > +{
> > > + return strstr(function_name, "_guc_") != NULL ||
> > > + strstr(function_name, "_uc_") != NULL ||
> > > + strstr(function_name, "_wopcm_") != NULL;
> > > +}
> > > +
> > > +static void ignore_faults_in_dmesg(char function_name[])
> > > +{
> > > + /* Driver probe is expected to fail in all cases, so ignore in igt_runner */
> > > + char regex[1024] = "probe with driver xe failed with error -12";
> > > +
> > > + /*
> > > + * If GuC module fault is injected, GuC is expected to fail,
> > > + * so also ignore GuC init failures in igt_runner.
> > > + */
> > > + if (function_is_part_of_guc(function_name)) {
> > > + strcat(regex, "|GT[0-9a-fA-F]*: GuC init failed with -ENOMEM");
> > > + strcat(regex, "|GT[0-9a-fA-F]*: Failed to initialize uC .-ENOMEM");
> I see "." matches left parenthesis, why don't have another "." match for
> right parenthesis? I mean it looks strange when compare regex string:
> "GT[0-9a-fA-F]*: Failed to initialize uC .-ENOMEM"
> vs
> "GT0: Failed to initialize uC (-ENOMEM)"
Because using '(' in regex is tricky, also if we ignore last char
we could as well improve regex and just do not require it.
Regards,
Kamil
>
> Regards,
> Zhanjun Dong
> >
> > This could be one call to strcat, but it is not a blocker.
> >
> > Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> >
> > > + }
> > > +
> > > + igt_emit_ignore_dmesg_regex(regex);
> > > +}
> > > +
> > > /*
> > > * The injectable file requires CONFIG_FUNCTION_ERROR_INJECTION in kernel.
> > > */
> > > @@ -175,6 +199,7 @@ igt_main
> > > if (regexec(®ex, line, 2, pmatch, 0) == 0) {
> > > strcpy(function_name, line);
> > > function_name[pmatch[1].rm_eo - 1] = '\0';
> > > + ignore_faults_in_dmesg(function_name);
> > > igt_dynamic_f("function-%s", function_name)
> > > inject_fault_try_bind(fd, pci_slot, function_name);
> > > }
> > > --
> > > 2.43.0
> > >
>
More information about the igt-dev
mailing list