[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(&regex, 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