diff options
| author | Jonathan Kim <jonathan.kim@amd.com> | 2023-05-23 11:57:27 -0400 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2023-06-09 12:48:19 -0400 | 
| commit | 09d49e14ea6fd125a21f89b80f888c09be32a174 (patch) | |
| tree | b79f2e96444da3b8b2d1f9ed03b9537323e1bd1e /drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | |
| parent | fe56c6ee0457035ae8fbbc2aa5ddfcfac6ded787 (diff) | |
drm/amdkfd: fix and enable debugging for gfx11
There are a couple of fixes required to enable gfx11 debugging.
First, ADD_QUEUE.trap_en is an inappropriate place to toggle
a per-process register so move it to SET_SHADER_DEBUGGER.trap_en.
When ADD_QUEUE.skip_process_ctx_clear is set, MES will prioritize
the SET_SHADER_DEBUGGER.trap_en setting.
Second, to preserve correct save/restore priviledged wave states
in coordination with the trap enablement setting, resume suspended
waves early in the disable call.
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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c index 20cc3fffe921..e9091ebfe230 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c @@ -928,7 +928,8 @@ int amdgpu_mes_set_shader_debugger(struct amdgpu_device *adev,  				uint64_t process_context_addr,  				uint32_t spi_gdbg_per_vmid_cntl,  				const uint32_t *tcp_watch_cntl, -				uint32_t flags) +				uint32_t flags, +				bool trap_en)  {  	struct mes_misc_op_input op_input = {0};  	int r; @@ -945,6 +946,10 @@ int amdgpu_mes_set_shader_debugger(struct amdgpu_device *adev,  	memcpy(op_input.set_shader_debugger.tcp_watch_cntl, tcp_watch_cntl,  			sizeof(op_input.set_shader_debugger.tcp_watch_cntl)); +	if (((adev->mes.sched_version & AMDGPU_MES_API_VERSION_MASK) >> +			AMDGPU_MES_API_VERSION_SHIFT) >= 14) +		op_input.set_shader_debugger.trap_en = trap_en; +  	amdgpu_mes_lock(&adev->mes);  	r = adev->mes.funcs->misc_op(&adev->mes, &op_input); | 
