add queue snapshot test

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]
This commit is contained in:
Jonathan Kim
2019-08-29 00:21:52 -04:00
committed by Jonathan Kim
parent 8feaf7585f
commit efef21f4ff
5 changed files with 112 additions and 6 deletions
+36 -1
View File
@@ -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;
}