From c1d8ac84377fc48ea996341c2935408774f144d4 Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Wed, 13 Jul 2022 16:02:35 -0400 Subject: [PATCH] libhsakmt: bump debug major rev for snapshot and watchpoint changes The debugger can now request snapshot copies with entry size and set/clear watchpoints by device. v3: drop min version check to v10.0 v2: check runtime allowance from v10.3 to 13.x Signed-off-by: Jonathan Kim Change-Id: I9befefb596201a11591de218db29a9317b41e69b --- src/debug.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/debug.c b/src/debug.c index 14bcb884e9..b2021218ca 100644 --- a/src/debug.c +++ b/src/debug.c @@ -297,18 +297,13 @@ hsaKmtGetKernelDebugTrapVersionInfo( } #define HSA_RUNTIME_ENABLE_MIN_MAJOR 10 -#define HSA_RUNTIME_ENABLE_MAX_MAJOR 11 +#define HSA_RUNTIME_ENABLE_MAX_MAJOR 13 #define HSA_RUNTIME_ENABLE_MIN_MINOR 0 -HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeEnable(void *rDebug, - bool setupTtmp) -{ - struct kfd_ioctl_dbg_trap_args args = {0}; + +static HSAKMT_STATUS checkRuntimeDebugSupport(void) { HSAuint32 kMajor, kMinor; - HSAKMT_STATUS result; - result = hsaKmtGetKernelDebugTrapVersionInfo(&kMajor, &kMinor); - - if (result) + if (hsaKmtGetKernelDebugTrapVersionInfo(&kMajor, &kMinor)) return HSAKMT_STATUS_NOT_SUPPORTED; if (kMajor < HSA_RUNTIME_ENABLE_MIN_MAJOR || kMajor > HSA_RUNTIME_ENABLE_MAX_MAJOR || @@ -316,6 +311,18 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeEnable(void *rDebug, (int)kMinor < HSA_RUNTIME_ENABLE_MIN_MINOR)) return HSAKMT_STATUS_NOT_SUPPORTED; + return HSAKMT_STATUS_SUCCESS; +} + +HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeEnable(void *rDebug, + bool setupTtmp) +{ + struct kfd_ioctl_dbg_trap_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(); @@ -338,18 +345,10 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeEnable(void *rDebug, HSAKMT_STATUS HSAKMTAPI hsaKmtRuntimeDisable(void) { struct kfd_ioctl_dbg_trap_args args = {0}; - HSAuint32 kMajor, kMinor; - HSAKMT_STATUS result; - - result = hsaKmtGetKernelDebugTrapVersionInfo(&kMajor, &kMinor); + HSAKMT_STATUS result = checkRuntimeDebugSupport(); if (result) - 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)) - return HSAKMT_STATUS_NOT_SUPPORTED; + return result; memset(&args, 0x00, sizeof(args)); args.op = KFD_IOC_DBG_TRAP_RUNTIME_ENABLE;