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>
Ta zmiana jest zawarta w:
%! (template.HTML=
Philip Yang)złożyło 2022-06-20 08:49:13 -04:00
1 rodzic
88778e13dc
złożenie
405fbd6f93
4 plików zmienionych
+93
Żadne pliki nie pasują do Twojego wyszukiwania
@@ -339,3 +339,30 @@ out:
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
HSAKMT_STATUS HSAKMTAPI hsaKmtOpenSMI(HSAuint32 NodeId, int *fd)
|
||||
{
|
||||
struct kfd_ioctl_smi_events_args args;
|
||||
HSAKMT_STATUS result;
|
||||
uint32_t gpuid;
|
||||
|
||||
CHECK_KFD_OPEN();
|
||||
|
||||
pr_debug("[%s] node %d\n", __func__, NodeId);
|
||||
|
||||
result = validate_nodeid(NodeId, &gpuid);
|
||||
if (result != HSAKMT_STATUS_SUCCESS) {
|
||||
pr_err("[%s] invalid node ID: %d\n", __func__, NodeId);
|
||||
return result;
|
||||
}
|
||||
|
||||
args.gpuid = gpuid;
|
||||
result = kmtIoctl(kfd_fd, AMDKFD_IOC_SMI_EVENTS, &args);
|
||||
if (result) {
|
||||
pr_debug("open SMI event fd failed %s\n", strerror(errno));
|
||||
return HSAKMT_STATUS_ERROR;
|
||||
}
|
||||
|
||||
*fd = args.anon_fd;
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -69,6 +69,7 @@ hsaKmtSVMSetAttr;
|
||||
hsaKmtSVMGetAttr;
|
||||
hsaKmtSetXNACKMode;
|
||||
hsaKmtGetXNACKMode;
|
||||
hsaKmtOpenSMI;
|
||||
|
||||
local: *;
|
||||
};
|
||||
|
||||
Reference in new issue
Zablokuj użytkownika