drm/amdkfd: Use same SQ prefetch setting as amdgpu
authorJay Cornwall <jay.cornwall@amd.com>
Sat, 17 Oct 2020 13:38:43 +0000 (08:38 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 22 Oct 2020 03:06:07 +0000 (23:06 -0400)
0 causes instruction fetch stall at cache line boundary under some
conditions on Navi10. A non-zero prefetch is the preferred default
in any case.

Fixes soft hang in Luxmark.

Signed-off-by: Jay Cornwall <jay.cornwall@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c

index 72e4d61..ad05933 100644 (file)
@@ -58,8 +58,9 @@ static int update_qpd_v10(struct device_queue_manager *dqm,
        /* check if sh_mem_config register already configured */
        if (qpd->sh_mem_config == 0) {
                qpd->sh_mem_config =
-                               SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
-                                       SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT;
+                       (SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
+                               SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT) |
+                       (3 << SH_MEM_CONFIG__INITIAL_INST_PREFETCH__SHIFT);
 #if 0
                /* TODO:
                 *    This shouldn't be an issue with Navi10.  Verify.