Commit cf356fe1 authored by Jonathan Kim's avatar Jonathan Kim Committed by Alex Deucher
Browse files

drm/amdkfd: disable shader message vgpr deallocation on gc 12.1



Shader messages to deallocate VGPRs prior to shader end can prevent
the trap handler from saving context, making debugging and core dumps
unreliable.

VGPR deallocations for performance gain is negligible.
GC 12.1 will NOP shader VGPR deallocation messages via HW
settings on driver boot.

Signed-off-by: default avatarJonathan Kim <jonathan.kim@amd.com>
Acked-by: default avatarHarish Kasiviswanathan <harish.kasiviswanathan@amd.com>
Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 8e0187ae
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1362,6 +1362,11 @@ static void gfx_v12_1_xcc_init_compute_vmid(struct amdgpu_device *adev,
		data = RREG32_SOC15(GC, GET_INST(GC, xcc_id), regSPI_GDBG_PER_VMID_CNTL);
		data = REG_SET_FIELD(data, SPI_GDBG_PER_VMID_CNTL, TRAP_EN, 1);
		WREG32_SOC15(GC, GET_INST(GC, xcc_id), regSPI_GDBG_PER_VMID_CNTL, data);

		/* Disable VGPR deallocation instruction for each KFD vmid. */
		data = RREG32_SOC15(GC, GET_INST(GC, xcc_id), regSQ_DEBUG);
		data = REG_SET_FIELD(data, SQ_DEBUG, DISABLE_VGPR_DEALLOC, 1);
		WREG32_SOC15(GC, GET_INST(GC, xcc_id), regSQ_DEBUG, data);
	}
	soc_v1_0_grbm_select(adev, 0, 0, 0, 0, GET_INST(GC, xcc_id));
	mutex_unlock(&adev->srbm_mutex);