libhsakmt: include changes for upstream debugger API
Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Change-Id: Id296e13dff431c7a151c5aae0b93412b1e116467
[ROCm/ROCR-Runtime commit: 728162c2c8]
This commit is contained in:
committed by
Jonathan Kim
parent
c11b1022f1
commit
6998fcee45
@@ -265,38 +265,13 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtDbgAddressWatch(HSAuint32 NodeId,
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* Get the major and minor version of the kernel debugger support. */
|
||||
HSAKMT_STATUS
|
||||
HSAKMTAPI
|
||||
hsaKmtGetKernelDebugTrapVersionInfo(
|
||||
HSAuint32 *Major, //Out
|
||||
HSAuint32 *Minor //Out
|
||||
)
|
||||
{
|
||||
struct kfd_ioctl_dbg_trap_args args = {0};
|
||||
|
||||
memset(&args, 0x00, sizeof(args));
|
||||
args.op = KFD_IOC_DBG_TRAP_GET_VERSION;
|
||||
args.pid = getpid();
|
||||
|
||||
long err = kmtIoctl(kfd_fd, AMDKFD_IOC_DBG_TRAP, &args);
|
||||
|
||||
if (err)
|
||||
return HSAKMT_STATUS_ERROR;
|
||||
|
||||
*Major = args.data1;
|
||||
*Minor = args.data2;
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#define HSA_RUNTIME_ENABLE_MIN_MAJOR 10
|
||||
#define HSA_RUNTIME_ENABLE_MAX_MAJOR 13
|
||||
#define HSA_RUNTIME_ENABLE_MIN_MINOR 0
|
||||
#define HSA_RUNTIME_ENABLE_MAX_MAJOR 1
|
||||
#define HSA_RUNTIME_ENABLE_MIN_MINOR 13
|
||||
|
||||
static HSAKMT_STATUS checkRuntimeDebugSupport(void) {
|
||||
HSAuint32 kMajor, kMinor;
|
||||
HsaNodeProperties node = {0};
|
||||
HsaSystemProperties props = {0};
|
||||
HsaVersionInfo versionInfo = {0};
|
||||
|
||||
memset(&node, 0x00, sizeof(node));
|
||||
memset(&props, 0x00, sizeof(props));
|
||||
@@ -315,12 +290,13 @@ static HSAKMT_STATUS checkRuntimeDebugSupport(void) {
|
||||
return HSAKMT_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
if (hsaKmtGetKernelDebugTrapVersionInfo(&kMajor, &kMinor))
|
||||
if (hsaKmtGetVersion(&versionInfo))
|
||||
return HSAKMT_STATUS_NOT_SUPPORTED;
|
||||
|
||||
if (kMajor < HSA_RUNTIME_ENABLE_MIN_MAJOR || kMajor > HSA_RUNTIME_ENABLE_MAX_MAJOR ||
|
||||
(kMajor == HSA_RUNTIME_ENABLE_MIN_MAJOR &&
|
||||
(int)kMinor < HSA_RUNTIME_ENABLE_MIN_MINOR))
|
||||
if (versionInfo.KernelInterfaceMajorVersion < HSA_RUNTIME_ENABLE_MAX_MAJOR ||
|
||||
(versionInfo.KernelInterfaceMajorVersion ==
|
||||
HSA_RUNTIME_ENABLE_MAX_MAJOR &&
|
||||
(int)versionInfo.KernelInterfaceMinorVersion < HSA_RUNTIME_ENABLE_MIN_MINOR))
|
||||
return HSAKMT_STATUS_NOT_SUPPORTED;
|
||||
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
@@ -329,20 +305,18 @@ static HSAKMT_STATUS checkRuntimeDebugSupport(void) {
|
||||
HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeEnable(void *rDebug,
|
||||
bool setupTtmp)
|
||||
{
|
||||
struct kfd_ioctl_dbg_trap_args args = {0};
|
||||
struct kfd_ioctl_runtime_enable_args args = {0};
|
||||
HSAKMT_STATUS result = checkRuntimeDebugSupport();
|
||||
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
memset(&args, 0x00, sizeof(args));
|
||||
args.op = KFD_IOC_DBG_TRAP_RUNTIME_ENABLE;
|
||||
args.pid = getpid();
|
||||
args.data1 = 1; //enable
|
||||
args.data2 = setupTtmp;
|
||||
args.ptr = (HSAuint64)rDebug;
|
||||
args.mode_mask = KFD_RUNTIME_ENABLE_MODE_ENABLE_MASK |
|
||||
((setupTtmp) ? KFD_RUNTIME_ENABLE_MODE_TTMP_SAVE_MASK : 0);
|
||||
args.r_debug = (HSAuint64)rDebug;
|
||||
|
||||
long err = kmtIoctl(kfd_fd, AMDKFD_IOC_DBG_TRAP, &args);
|
||||
long err = kmtIoctl(kfd_fd, AMDKFD_IOC_RUNTIME_ENABLE, &args);
|
||||
|
||||
if (err) {
|
||||
if (errno == EBUSY)
|
||||
@@ -356,18 +330,16 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeEnable(void *rDebug,
|
||||
|
||||
HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeDisable(void)
|
||||
{
|
||||
struct kfd_ioctl_dbg_trap_args args = {0};
|
||||
struct kfd_ioctl_runtime_enable_args args = {0};
|
||||
HSAKMT_STATUS result = checkRuntimeDebugSupport();
|
||||
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
memset(&args, 0x00, sizeof(args));
|
||||
args.op = KFD_IOC_DBG_TRAP_RUNTIME_ENABLE;
|
||||
args.pid = getpid();
|
||||
args.data1 = 0; //disable
|
||||
args.mode_mask = 0; //Disable
|
||||
|
||||
if (kmtIoctl(kfd_fd, AMDKFD_IOC_DBG_TRAP, &args))
|
||||
if (kmtIoctl(kfd_fd, AMDKFD_IOC_RUNTIME_ENABLE, &args))
|
||||
return HSAKMT_STATUS_ERROR;
|
||||
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
|
||||
@@ -59,7 +59,6 @@ hsaKmtQueryPointerInfo;
|
||||
hsaKmtSetMemoryUserData;
|
||||
hsaKmtGetQueueInfo;
|
||||
hsaKmtAllocQueueGWS;
|
||||
hsaKmtGetKernelDebugTrapVersionInfo;
|
||||
hsaKmtRuntimeEnable;
|
||||
hsaKmtRuntimeDisable;
|
||||
hsaKmtSPMAcquire;
|
||||
|
||||
Reference in New Issue
Block a user