aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Sider <[email protected]>2023-01-05 10:58:07 -0500
committerAlex Deucher <[email protected]>2023-06-09 09:51:40 -0400
commitd839a158b2480814bc438f9f46f440a7b9f63cb6 (patch)
treee63015a5fab9feae53b96fcae2638067ee3a62a9
parent30b52995c294b3c9a002ff2f90f773cbf8850714 (diff)
drm/amdgpu: Correct dGPU MTYPE settings for gfx943
Revert temporary dGPU VRAM MTYPE setting and align with expected coherency protocol. Signed-off-by: Graham Sider <[email protected]> Reviewed-by: Felix Kuehling <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c15
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_svm.c8
2 files changed, 7 insertions, 16 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index aca8489635b8..b6c500be6f70 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -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;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
index 6daba0582bf3..2b79849ddd30 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
@@ -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;