Implement hsaKmtGetQueueInfo interface

For items in HsaQueueInfo, control stack information comes from KFD, CU
mask information is maintained in Thunk, and others (queue detail error
and queue type extended) are ignored (value = 0) at this point.

Change-Id: Ib21370b0f52b2bb4ebe6a9b4b6ec6139cccb25ca
Signed-off-by: Amber Lin <Amber.Lin@amd.com>
This commit is contained in:
Amber Lin
2017-05-25 14:51:30 -04:00
parent b78e0e152a
commit 683fc96325
6 changed files with 131 additions and 3 deletions
+19
View File
@@ -582,6 +582,25 @@ typedef enum _HSA_QUEUE_TYPE
HSA_QUEUE_TYPE_SIZE = 0xFFFFFFFF //aligns to 32bit enum
} HSA_QUEUE_TYPE;
typedef struct
{
HSAuint32 QueueDetailError; // HW specific queue error state
HSAuint32 QueueTypeExtended; // HW specific queue type info.
// 0 = no information
HSAuint32 NumCUAssigned; // size of *CUMaskInfo bit array, Multiple
// of 32, 0 = no information
HSAuint32* CUMaskInfo; // runtime/system CU assignment for realtime
// queue & reserved CU priority. Ptr to
// bit-array, each bit represents one CU.
// NULL = no information
HSAuint32* UserContextSaveArea; // reference to user space context save area
HSAuint64 SaveAreaSizeInBytes; // Must be 4-Byte aligned
HSAuint32* ControlStackTop; // ptr to the TOS
HSAuint64 ControlStackUsedInBytes; // Must be 4-Byte aligned
HSAuint64 Reserved1; // runtime/system CU assignment
HSAuint64 Reserved2; // runtime/system CU assignment
} HsaQueueInfo;
typedef struct _HsaQueueResource
{
HSA_QUEUEID QueueId; /** queue ID */