[PATCH 17/24] drm/amdkfd: add setting trap pc sampling flag
James Zhu
James.Zhu at amd.com
Fri Nov 3 13:11:32 UTC 2023
Add setting trap pc sampling flag.
Signed-off-by: James Zhu <James.Zhu at amd.com>
---
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 ++
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 13 +++++++++++++
2 files changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
index 642558026d16..6670534f47b8 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
@@ -1186,6 +1186,8 @@ void kfd_process_set_trap_handler(struct qcm_process_device *qpd,
uint64_t tma_addr);
void kfd_process_set_trap_debug_flag(struct qcm_process_device *qpd,
bool enabled);
+void kfd_process_set_trap_pc_sampling_flag(struct qcm_process_device *qpd,
+ enum kfd_ioctl_pc_sample_method method, bool enabled);
/* CWSR initialization */
int kfd_process_init_cwsr_apu(struct kfd_process *process, struct file *filep);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
index a0b729c65a7c..d22d804f180d 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -1454,6 +1454,19 @@ void kfd_process_set_trap_debug_flag(struct qcm_process_device *qpd,
}
}
+void kfd_process_set_trap_pc_sampling_flag(struct qcm_process_device *qpd,
+ enum kfd_ioctl_pc_sample_method method, bool enabled)
+{
+ if (qpd->cwsr_kaddr) {
+ volatile unsigned long *tma =
+ (volatile unsigned long *)(qpd->cwsr_kaddr + KFD_CWSR_TMA_OFFSET);
+ if (enabled)
+ set_bit(method, &tma[2]);
+ else
+ clear_bit(method, &tma[2]);
+ }
+}
+
/*
* On return the kfd_process is fully operational and will be freed when the
* mm is released
--
2.25.1
More information about the amd-gfx
mailing list