summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
diff options
context:
space:
mode:
authorYair Shachar <yair.shachar@amd.com>2015-05-20 13:59:17 +0300
committerOded Gabbay <oded.gabbay@gmail.com>2015-06-03 11:33:06 +0300
commite2e9afc4a3d4a256da37821992c4de5ad469a010 (patch)
tree7cafa451ea04047adc8f1dedc26c0bfcc9165724 /drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
parent788bf83db3017f083ebb84c93f101607c769c3a7 (diff)
downloadop-kernel-dev-e2e9afc4a3d4a256da37821992c4de5ad469a010.zip
op-kernel-dev-e2e9afc4a3d4a256da37821992c4de5ad469a010.tar.gz
drm/amdkfd: Add address watch operation to debugger
The address watch operation gives the ability to specify watch points which will generate a shader breakpoint, based on a specified single address or range of addresses. There is support for read/write/any access modes. Signed-off-by: Yair Shachar <yair.shachar@amd.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c')
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c b/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
index 7e2c8e2..56d6763 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
@@ -149,3 +149,20 @@ long kfd_dbgmgr_wave_control(struct kfd_dbgmgr *pmgr,
return (long) pmgr->dbgdev->dbgdev_wave_control(pmgr->dbgdev, wac_info);
}
+long kfd_dbgmgr_address_watch(struct kfd_dbgmgr *pmgr,
+ struct dbg_address_watch_info *adw_info)
+{
+ BUG_ON(!pmgr || !pmgr->dbgdev || !adw_info);
+
+
+ /* Is the requests coming from the already registered process? */
+ if (pmgr->pasid != adw_info->process->pasid) {
+ pr_debug("H/W debugger support was not registered for requester pasid %d\n",
+ adw_info->process->pasid);
+ return -EINVAL;
+ }
+
+ return (long) pmgr->dbgdev->dbgdev_address_watch(pmgr->dbgdev,
+ adw_info);
+}
+
OpenPOWER on IntegriCloud