[SWDEV-527092] - Process Start/Stop event addition (#368)

- Added more events to `amdsmi_evt_notification_type_t`

Change-Id: I6a256fe828e4bec3197c7fecbed374ab17c6f850
Signed-off-by: Adam Pryor <Adam.Pryor@amd.com>
This commit is contained in:
Pryor, Adam
2025-05-16 11:01:15 -05:00
committed by GitHub
orang tua bacbaac0b1
melakukan 8713305f80
8 mengubah file dengan 83 tambahan dan 17 penghapusan
+13 -4
Melihat File
@@ -88,7 +88,7 @@ AMDSMI_MAX_CACHE_TYPES = 10
AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK = 64
AMDSMI_GPU_UUID_SIZE = 38
MAX_AMDSMI_NAME_LENGTH = 64
MAX_EVENT_NOTIFICATION_MSG_SIZE = 96
MAX_EVENT_NOTIFICATION_MSG_SIZE = 256
_AMDSMI_STRING_LENGTH = 80
@@ -273,7 +273,15 @@ class AmdSmiEvtNotificationType(IntEnum):
THERMAL_THROTTLE = amdsmi_wrapper.AMDSMI_EVT_NOTIF_THERMAL_THROTTLE
GPU_PRE_RESET = amdsmi_wrapper.AMDSMI_EVT_NOTIF_GPU_PRE_RESET
GPU_POST_RESET = amdsmi_wrapper.AMDSMI_EVT_NOTIF_GPU_POST_RESET
RING_HANG = amdsmi_wrapper.AMDSMI_EVT_NOTIF_RING_HANG
MIGRATE_START = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_MIGRATE_START
MIGRATE_END = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_MIGRATE_END
PAGE_FAULT_START = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_END
PAGE_FAULT_END = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_END
QUEUE_EVICTION = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_QUEUE_EVICTION
QUEUE_RESTORE = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_QUEUE_RESTORE
UNMAP_FROM_GPU = amdsmi_wrapper.AMDSMI_EVT_NOTIF_EVENT_UNMAP_FROM_GPU
PROCESS_START = amdsmi_wrapper.AMDSMI_EVT_NOTIF_PROCESS_START
PROCESS_END = amdsmi_wrapper.AMDSMI_EVT_NOTIF_PROCESS_END
class AmdSmiTemperatureMetric(IntEnum):
@@ -543,17 +551,18 @@ class AmdSmiEventReader:
processor_handle, ctypes.c_uint64(mask)))
def read(self, timestamp, num_elem=10):
c_count = ctypes.c_uint32(num_elem)
self.event_info = (amdsmi_wrapper.amdsmi_evt_notification_data_t * num_elem)()
_check_res(
amdsmi_wrapper.amdsmi_get_gpu_event_notification(
ctypes.c_int(timestamp),
ctypes.byref(ctypes.c_uint32(num_elem)),
ctypes.byref(c_count),
self.event_info,
)
)
ret = []
for i in range(0, num_elem):
for i in range(c_count.value):
unique_event_values = set(event.value for event in AmdSmiEvtNotificationType)
if self.event_info[i].event in unique_event_values:
if AmdSmiEvtNotificationType(self.event_info[i].event).name != "NONE":
+26 -6
Melihat File
@@ -1418,8 +1418,16 @@ amdsmi_evt_notification_type_t__enumvalues = {
2: 'AMDSMI_EVT_NOTIF_THERMAL_THROTTLE',
3: 'AMDSMI_EVT_NOTIF_GPU_PRE_RESET',
4: 'AMDSMI_EVT_NOTIF_GPU_POST_RESET',
5: 'AMDSMI_EVT_NOTIF_RING_HANG',
5: 'AMDSMI_EVT_NOTIF_LAST',
5: 'AMDSMI_EVT_NOTIF_EVENT_MIGRATE_START',
6: 'AMDSMI_EVT_NOTIF_EVENT_MIGRATE_END',
7: 'AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_START',
8: 'AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_END',
9: 'AMDSMI_EVT_NOTIF_EVENT_QUEUE_EVICTION',
10: 'AMDSMI_EVT_NOTIF_EVENT_QUEUE_RESTORE',
11: 'AMDSMI_EVT_NOTIF_EVENT_UNMAP_FROM_GPU',
12: 'AMDSMI_EVT_NOTIF_PROCESS_START',
13: 'AMDSMI_EVT_NOTIF_PROCESS_END',
1: 'AMDSMI_EVT_NOTIF_LAST',
}
AMDSMI_EVT_NOTIF_NONE = 0
AMDSMI_EVT_NOTIF_VMFAULT = 1
@@ -1427,8 +1435,16 @@ AMDSMI_EVT_NOTIF_FIRST = 1
AMDSMI_EVT_NOTIF_THERMAL_THROTTLE = 2
AMDSMI_EVT_NOTIF_GPU_PRE_RESET = 3
AMDSMI_EVT_NOTIF_GPU_POST_RESET = 4
AMDSMI_EVT_NOTIF_RING_HANG = 5
AMDSMI_EVT_NOTIF_LAST = 5
AMDSMI_EVT_NOTIF_EVENT_MIGRATE_START = 5
AMDSMI_EVT_NOTIF_EVENT_MIGRATE_END = 6
AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_START = 7
AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_END = 8
AMDSMI_EVT_NOTIF_EVENT_QUEUE_EVICTION = 9
AMDSMI_EVT_NOTIF_EVENT_QUEUE_RESTORE = 10
AMDSMI_EVT_NOTIF_EVENT_UNMAP_FROM_GPU = 11
AMDSMI_EVT_NOTIF_PROCESS_START = 12
AMDSMI_EVT_NOTIF_PROCESS_END = 13
AMDSMI_EVT_NOTIF_LAST = 13
amdsmi_evt_notification_type_t = ctypes.c_uint32 # enum
class struct_amdsmi_evt_notification_data_t(Structure):
pass
@@ -1437,7 +1453,7 @@ struct_amdsmi_evt_notification_data_t._pack_ = 1 # source:False
struct_amdsmi_evt_notification_data_t._fields_ = [
('processor_handle', ctypes.POINTER(None)),
('event', amdsmi_evt_notification_type_t),
('message', ctypes.c_char * 96),
('message', ctypes.c_char * 256),
('PADDING_0', ctypes.c_ubyte * 4),
]
@@ -2986,7 +3002,11 @@ __all__ = \
'AMDSMI_EVNT_XGMI_LAST', 'AMDSMI_EVT_NOTIF_FIRST',
'AMDSMI_EVT_NOTIF_GPU_POST_RESET',
'AMDSMI_EVT_NOTIF_GPU_PRE_RESET', 'AMDSMI_EVT_NOTIF_LAST',
'AMDSMI_EVT_NOTIF_NONE', 'AMDSMI_EVT_NOTIF_RING_HANG',
'AMDSMI_EVT_NOTIF_NONE', 'AMDSMI_EVT_NOTIF_EVENT_MIGRATE_START',
'AMDSMI_EVT_NOTIF_EVENT_MIGRATE_END', 'AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_START',
'AMDSMI_EVT_NOTIF_EVENT_PAGE_FAULT_END', 'AMDSMI_EVT_NOTIF_EVENT_QUEUE_EVICTION',
'AMDSMI_EVT_NOTIF_EVENT_QUEUE_RESTORE', 'AMDSMI_EVT_NOTIF_EVENT_UNMAP_FROM_GPU',
'AMDSMI_EVT_NOTIF_PROCESS_START', 'AMDSMI_EVT_NOTIF_PROCESS_END'
'AMDSMI_EVT_NOTIF_THERMAL_THROTTLE', 'AMDSMI_EVT_NOTIF_VMFAULT',
'AMDSMI_FINE_DECODER_ACTIVITY', 'AMDSMI_FINE_GRAIN_GFX_ACTIVITY',
'AMDSMI_FINE_GRAIN_MEM_ACTIVITY', 'AMDSMI_FREQ_IND_INVALID',