drm/amdkfd: prepare map process for single process debug devices
Older HW only supports debugging on a single process because the SPI debug mode setting registers are device global. The HWS has supplied a single pinned VMID (0xf) for MAP_PROCESS for debug purposes. To pin the VMID, the KFD will remove the VMID from the HWS dynamic VMID allocation via SET_RESOUCES so that a debugged process will never migrate away from its pinned VMID. The KFD is responsible for reserving and releasing this pinned VMID accordingly whenever the debugger attaches and detaches respectively. Signed-off-by: Jonathan Kim <jonathan.kim@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
7cee6a6824
commit
97ae3c8cce
@@ -250,6 +250,7 @@ struct device_queue_manager {
|
||||
struct kfd_mem_obj *fence_mem;
|
||||
bool active_runlist;
|
||||
int sched_policy;
|
||||
uint32_t trap_debug_vmid;
|
||||
|
||||
/* hw exception */
|
||||
bool is_hws_hang;
|
||||
@@ -285,6 +286,10 @@ unsigned int get_queues_per_pipe(struct device_queue_manager *dqm);
|
||||
unsigned int get_pipes_per_mec(struct device_queue_manager *dqm);
|
||||
unsigned int get_num_sdma_queues(struct device_queue_manager *dqm);
|
||||
unsigned int get_num_xgmi_sdma_queues(struct device_queue_manager *dqm);
|
||||
int reserve_debug_trap_vmid(struct device_queue_manager *dqm,
|
||||
struct qcm_process_device *qpd);
|
||||
int release_debug_trap_vmid(struct device_queue_manager *dqm,
|
||||
struct qcm_process_device *qpd);
|
||||
|
||||
static inline unsigned int get_sh_mem_bases_32(struct kfd_process_device *pdd)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user