drm/amdgpu: Correct dGPU MTYPE settings for gfx943
authorGraham Sider <Graham.Sider@amd.com>
Thu, 5 Jan 2023 15:58:07 +0000 (10:58 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:51:40 +0000 (09:51 -0400)
Revert temporary dGPU VRAM MTYPE setting and align with expected
coherency protocol.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
drivers/gpu/drm/amd/amdkfd/kfd_svm.c

index aca8489..b6c500b 100644 (file)
@@ -1238,17 +1238,12 @@ static void gmc_v9_0_get_coherence_flags(struct amdgpu_device *adev,
                        mtype = MTYPE_RW;
                } else {
                        /* dGPU */
-                       /*
-                       if ((mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM) &&
-                           bo_adev == adev)
-                               mapping_flags |= AMDGPU_VM_MTYPE_RW;
+                       if (is_vram && bo_adev == adev)
+                               mtype = MTYPE_RW;
+                       else if (is_vram)
+                               mtype = MTYPE_NC;
                        else
-                       */
-                       /* Temporarily comment out above lines and use MTYPE_NC
-                        * on both VRAM and system memory access until
-                        * MTYPE_RW can properly work on VRAM access
-                        */
-                       mtype = MTYPE_NC;
+                               mtype = MTYPE_UC;
                }
 
                break;
index 6daba05..2b79849 100644 (file)
@@ -1198,13 +1198,9 @@ svm_range_get_pte_flags(struct kfd_node *node,
                if (uncached) {
                        mapping_flags |= AMDGPU_VM_MTYPE_UC;
                } else if (domain == SVM_RANGE_VRAM_DOMAIN) {
-                       /* local HBM region close to partition with a workaround
-                        * for Endpoint systems.
-                        */
+                       /* local HBM region close to partition */
                        if (bo_node == node)
-                               mapping_flags |=
-                                       (node->adev->flags & AMD_IS_APU) ?
-                                       AMDGPU_VM_MTYPE_RW : AMDGPU_VM_MTYPE_NC;
+                               mapping_flags |= AMDGPU_VM_MTYPE_RW;
                        /* local HBM region far from partition or remote XGMI GPU */
                        else if (svm_nodes_in_same_hive(bo_node, node))
                                mapping_flags |= AMDGPU_VM_MTYPE_NC;