@@ -234,3 +234,48 @@ def test_lnet_and_lustre_boot_errors_are_warning_events(system_info):
234234 for m in (m1 , m2 , m3 ):
235235 ev = by_msg [m ]
236236 assert ev .priority == EventPriority .WARNING , f"{ m } should be WARNING"
237+
238+
239+ def test_aca (system_info ):
240+ aca_data1 = DmesgData (
241+ dmesg_content = (
242+ "kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] Accelerator Check Architecture events logged\n "
243+ "kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].STATUS=0x000000000000000f\n "
244+ "kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].ADDR=0x0000000000000000\n "
245+ "kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].MISC0=0x0000000000000000\n "
246+ "kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].IPID=0x0000000000000000\n "
247+ "kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].SYND=0x0000000000000000\n "
248+ )
249+ )
250+
251+ aca_data2 = DmesgData (
252+ dmesg_content = (
253+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: Accelerator Check Architecture events logged\n "
254+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].CONTROL=0x000000000000000f\n "
255+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].STATUS=0x0000000000000000\n "
256+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].ADDR=0x0000000000000000\n "
257+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].MISC=0x0000000000000000\n "
258+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].CONFIG=0x0000000000000000\n "
259+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].IPID=0x0000000000000000\n "
260+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].SYND=0x0000000000000000\n "
261+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].DESTAT=0x0000000000000000\n "
262+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].DEADDR=0x0000000000000000\n "
263+ "kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].CONTROL_MASK=0x0000000000000000\n "
264+ )
265+ )
266+
267+ analyzer = DmesgAnalyzer (
268+ system_info = system_info ,
269+ )
270+
271+ res = analyzer .analyze_data (aca_data1 )
272+ assert res .status == ExecutionStatus .ERROR
273+ assert len (res .events ) == 1
274+ assert res .events [0 ].description == "ACA Error"
275+ assert res .events [0 ].priority == EventPriority .ERROR
276+
277+ res = analyzer .analyze_data (aca_data2 )
278+ assert res .status == ExecutionStatus .ERROR
279+ assert len (res .events ) == 1
280+ assert res .events [0 ].description == "ACA Error"
281+ assert res .events [0 ].priority == EventPriority .ERROR
0 commit comments