mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 09:21:34 -04:00
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: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Amber Lin <Amber.Lin@amd.com> Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -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 ?
|
||||
|
||||
Reference in New Issue
Block a user