@@ -98,9 +98,7 @@ class DmesgAnalyzer(RegexAnalyzer[DmesgData, DmesgAnalyzerArgs]):
9898 event_category = EventCategory .SW_DRIVER ,
9999 ),
100100 ErrorRegex (
101- regex = re .compile (
102- r"(?:[\w\d_-]*)(?:\[[\d.]*\])? (?:general protection fault)|(?:general protection fault.*)"
103- ),
101+ regex = re .compile (r"(?:[\w-]+(?:\[[0-9.]+\])?\s+)?general protection fault[^\n]*" ),
104102 message = "General protection fault" ,
105103 event_category = EventCategory .SW_DRIVER ,
106104 ),
@@ -129,18 +127,19 @@ class DmesgAnalyzer(RegexAnalyzer[DmesgData, DmesgAnalyzerArgs]):
129127 ErrorRegex (
130128 regex = re .compile (
131129 (
132- r"(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:\s+\[\S+\]\s*(?:retry|no-retry)? page fault.*)"
133- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
134- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
135- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
136- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
137- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
138- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
139- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
140- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
141- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
142- r"(?:\n.*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:.*))?"
143- )
130+ r"(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:\s+\[\S+\]\s*(?:retry|no-retry)? page fault[^\n]*)"
131+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
132+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
133+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
134+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
135+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
136+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
137+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
138+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
139+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
140+ r"(?:\n[^\n]*(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:[^\n]*))?"
141+ ),
142+ re .MULTILINE ,
144143 ),
145144 message = "amdgpu Page Fault" ,
146145 event_category = EventCategory .SW_DRIVER ,
@@ -259,7 +258,52 @@ class DmesgAnalyzer(RegexAnalyzer[DmesgData, DmesgAnalyzerArgs]):
259258 event_category = EventCategory .RAS ,
260259 ),
261260 ErrorRegex (
262- regex = re .compile (r"Accelerator Check Architecture.*(?:\n.*){0,5}" ),
261+ regex = re .compile (
262+ (
263+ r"(Accelerator Check Architecture[^\n]*)"
264+ r"(?:\n[^\n]*){0,10}?"
265+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*entry\[\d+\]\.STATUS=0x[0-9a-fA-F]+)"
266+ r"(?:\n[^\n]*){0,5}?"
267+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*entry\[\d+\]\.ADDR=0x[0-9a-fA-F]+)"
268+ r"(?:\n[^\n]*){0,5}?"
269+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*entry\[\d+\]\.MISC0=0x[0-9a-fA-F]+)"
270+ r"(?:\n[^\n]*){0,5}?"
271+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*entry\[\d+\]\.IPID=0x[0-9a-fA-F]+)"
272+ r"(?:\n[^\n]*){0,5}?"
273+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*entry\[\d+\]\.SYND=0x[0-9a-fA-F]+-?)"
274+ ),
275+ re .MULTILINE ,
276+ ),
277+ message = "ACA Error" ,
278+ event_category = EventCategory .RAS ,
279+ ),
280+ ErrorRegex (
281+ regex = re .compile (
282+ (
283+ r"(Accelerator Check Architecture[^\n]*)"
284+ r"(?:\n[^\n]*){0,10}?"
285+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*CONTROL=0x[0-9a-fA-F]+)"
286+ r"(?:\n[^\n]*){0,5}?"
287+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*STATUS=0x[0-9a-fA-F]+)"
288+ r"(?:\n[^\n]*){0,5}?"
289+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*ADDR=0x[0-9a-fA-F]+)"
290+ r"(?:\n[^\n]*){0,5}?"
291+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*MISC=0x[0-9a-fA-F]+)"
292+ r"(?:\n[^\n]*){0,5}?"
293+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*CONFIG=0x[0-9a-fA-F]+)"
294+ r"(?:\n[^\n]*){0,5}?"
295+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*IPID=0x[0-9a-fA-F]+)"
296+ r"(?:\n[^\n]*){0,5}?"
297+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*SYND=0x[0-9a-fA-F]+)"
298+ r"(?:\n[^\n]*){0,5}?"
299+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*DESTAT=0x[0-9a-fA-F]+)"
300+ r"(?:\n[^\n]*){0,5}?"
301+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*DEADDR=0x[0-9a-fA-F]+)"
302+ r"(?:\n[^\n]*){0,5}?"
303+ r"(amdgpu[ 0-9a-fA-F:.]+:? [^\n]*CONTROL_MASK=0x[0-9a-fA-F]+)"
304+ ),
305+ re .MULTILINE ,
306+ ),
263307 message = "ACA Error" ,
264308 event_category = EventCategory .RAS ,
265309 ),
@@ -369,18 +413,25 @@ def _is_known_error(self, known_err_events: list[Event], unknown_match: str) ->
369413 bool: return True if error is known
370414 """
371415 for regex_obj in self .ERROR_REGEX :
372- if regex_obj .regex .search (unknown_match ):
373- return True
416+ try :
417+ if regex_obj .regex .search (unknown_match ):
418+ return True
419+ except re .error :
420+ continue
374421
375- # handle multline matches
376422 for event in known_err_events :
377423 known_match = event .data ["match_content" ]
378424 if isinstance (known_match , list ):
379425 for line in known_match :
380- if unknown_match in line :
426+ if unknown_match == line or unknown_match in line or line in unknown_match :
381427 return True
382- elif known_match in unknown_match :
383- return True
428+ elif isinstance (known_match , str ):
429+ if (
430+ unknown_match == known_match
431+ or unknown_match in known_match
432+ or known_match in unknown_match
433+ ):
434+ return True
384435 return False
385436
386437 def analyze_data (
0 commit comments