libhsakmt: add open SMI event handle

System Management Interface event is read from anonymous file handle,
this helper wrap the ioctl interface to get anonymous file handle for
GPU nodeid.

Define SMI event IDs, event triggers, copy the same value from
kfd_ioctl.h to avoid translation.

Change-Id: I5c8ba5301473bb3b80bb4e2aa33a9f675bedb001
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
This commit is contained in:
Philip Yang
2022-01-14 16:25:06 -05:00
parent 88778e13dc
commit 405fbd6f93
4 changed files with 93 additions and 0 deletions
+49
View File
@@ -1354,6 +1354,55 @@ typedef struct _HSA_SVM_ATTRIBUTE {
HSAuint32 value; // attribute value
} HSA_SVM_ATTRIBUTE;
typedef enum _HSA_SMI_EVENT {
HSA_SMI_EVENT_NONE = 0, /* not used */
HSA_SMI_EVENT_VMFAULT = 1, /* event start counting at 1 */
HSA_SMI_EVENT_THERMAL_THROTTLE = 2,
HSA_SMI_EVENT_GPU_PRE_RESET = 3,
HSA_SMI_EVENT_GPU_POST_RESET = 4,
HSA_SMI_EVENT_MIGRATE_START = 5,
HSA_SMI_EVENT_MIGRATE_END = 6,
HSA_SMI_EVENT_PAGE_FAULT_START = 7,
HSA_SMI_EVENT_PAGE_FAULT_END = 8,
HSA_SMI_EVENT_QUEUE_EVICTION = 9,
HSA_SMI_EVENT_QUEUE_RESTORE = 10,
HSA_SMI_EVENT_UNMAP_FROM_GPU = 11,
HSA_SMI_EVENT_INDEX_MAX = 12,
/*
* max event number, as a flag bit to get events from all processes,
* this requires super user permission, otherwise will not be able to
* receive event from any process. Without this flag to receive events
* from same process.
*/
HSA_SMI_EVENT_ALL_PROCESS = 64
} HSA_EVENT_TYPE;
typedef enum _HSA_MIGRATE_TRIGGERS {
HSA_MIGRATE_TRIGGER_PREFETCH,
HSA_MIGRATE_TRIGGER_PAGEFAULT_GPU,
HSA_MIGRATE_TRIGGER_PAGEFAULT_CPU,
HSA_MIGRATE_TRIGGER_TTM_EVICTION
} HSA_MIGRATE_TRIGGERS;
typedef enum _HSA_QUEUE_EVICTION_TRIGGERS {
HSA_QUEUE_EVICTION_TRIGGER_SVM,
HSA_QUEUE_EVICTION_TRIGGER_USERPTR,
HSA_QUEUE_EVICTION_TRIGGER_TTM,
HSA_QUEUE_EVICTION_TRIGGER_SUSPEND,
HSA_QUEUE_EVICTION_CRIU_CHECKPOINT,
HSA_QUEUE_EVICTION_CRIU_RESTORE
} HSA_QUEUE_EVICTION_TRIGGERS;
typedef enum _HSA_SVM_UNMAP_TRIGGERS {
HSA_SVM_UNMAP_TRIGGER_MMU_NOTIFY,
HSA_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE,
HSA_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU
} HSA_SVM_UNMAP_TRIGGERS;
#define HSA_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1))
#define HSA_SMI_EVENT_MSG_SIZE 96
#pragma pack(pop, hsakmttypes_h)