adds api and test to get newly create queue snapshot per ptraced process.

Change-Id: Ife97123a5b930e837ccaa386801145ef23c2cc2c
Signed-off-by: Jonathan Kim <Jonathan.Kim@amd.com>


[ROCm/ROCR-Runtime commit: 8b01a1c4c5]
Цей коміт міститься в:
Jonathan Kim
2019-08-29 00:21:52 -04:00
зафіксовано Jonathan Kim
джерело 8feaf7585f
коміт efef21f4ff
5 змінених файлів з 112 додано та 6 видалено
+36 -1
Переглянути файл
@@ -287,7 +287,8 @@ static HSAKMT_STATUS debug_trap(HSAuint32 NodeId,
if (op == KFD_IOC_DBG_TRAP_NODE_SUSPEND ||
op == KFD_IOC_DBG_TRAP_NODE_RESUME ||
op == KFD_IOC_DBG_TRAP_GET_VERSION) {
op == KFD_IOC_DBG_TRAP_GET_VERSION ||
op == KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT) {
if (NodeId != INVALID_NODEID)
return HSAKMT_STATUS_INVALID_HANDLE;
@@ -630,3 +631,37 @@ hsaKmtGetThunkDebugTrapVersionInfo(
*Major = KFD_IOCTL_DBG_MAJOR_VERSION;
*Minor = KFD_IOCTL_DBG_MINOR_VERSION;
}
HSAKMT_STATUS
HSAKMTAPI
hsaKmtGetQueueSnapshot(
HSAuint32 NodeId, //IN
HSAuint32 Pid, // IN
bool ClearEvents, //IN
void *SnapshotBuf, //IN
HSAuint32 *QssEntries //IN/OUT
)
{
HSAKMT_STATUS result;
struct kfd_ioctl_dbg_trap_args argout = {0};
uint32_t flags = 0;
if (ClearEvents)
flags |= KFD_DBG_EV_FLAG_CLEAR_STATUS;
result = debug_trap(NodeId,
KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT,
flags,
*QssEntries,
0,
Pid,
(HSAuint64)SnapshotBuf,
&argout);
if (result)
return result;
*QssEntries = argout.data2;
return 0;
}
+1 -1
Переглянути файл
@@ -61,7 +61,7 @@ hsaKmtEnableDebugTrap;
hsaKmtEnableDebugTrapWithPollFd;
hsaKmtDisableDebugTrap;
hsaKmtQueryDebugEvent;
hsaKmtSetDebugTrapData2;
hsaKmtGetQueueSnapshot;
hsaKmtSetWaveLaunchTrapOverride;
hsaKmtSetWaveLaunchMode;
hsaKmtQueueSuspend;