[PATCH v2] tests/intel/xe_fault_injection: Ignore expected errors
Dong, Zhanjun
zhanjun.dong at intel.com
Tue Nov 12 17:58:55 UTC 2024
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)"
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