Commit 85b45b60 authored by Amber Lin's avatar Amber Lin Committed by Alex Deucher

amd/amdgpu: Set MTYPE_UC for access over PCIe

For GFX v9_4_3, set MTYPE_UC for memory access over PCIe.

v4 - add missing indentation pointed out by Felix and add his
reviewed-by tag.
v3 - add missing logic for the svm path.
v2 - add amdgpu_xgmi_same_hive to separate access over xgmi from pcie
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAmber Lin <Amber.Lin@amd.com>
Signed-off-by: default avatarRajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d524180b
......@@ -1195,16 +1195,29 @@ svm_range_get_pte_flags(struct kfd_node *node,
//e.g. NPS4. Current approch is only applicable without memory
//partitions.
snoop = true;
if (uncached)
if (uncached) {
mapping_flags |= AMDGPU_VM_MTYPE_UC;
/* local HBM region close to partition*/
else if (bo_node == node)
mapping_flags |= AMDGPU_VM_MTYPE_RW;
/* local HBM region far from partition or remote XGMI GPU or
* system memory
*/
else
} else if (domain == SVM_RANGE_VRAM_DOMAIN) {
/* local HBM region close to partition with a workaround
* for Endpoint systems.
*/
if (bo_node == node)
mapping_flags |=
(node->adev->flags & AMD_IS_APU) ?
AMDGPU_VM_MTYPE_RW : AMDGPU_VM_MTYPE_NC;
/* 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;
/* PCIe P2P */
else
mapping_flags |= AMDGPU_VM_MTYPE_UC;
/* system memory accessed by the APU */
} else if (node->adev->flags & AMD_IS_APU) {
mapping_flags |= AMDGPU_VM_MTYPE_NC;
/* system memory accessed by the dGPU */
} else {
mapping_flags |= AMDGPU_VM_MTYPE_UC;
}
break;
default:
mapping_flags |= coherent ?
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment