From: Harish Kasiviswanathan <[email protected]>

NICs attached to remote GPUs are unable to access VRAM coherently.
Hence, use DEVICE_PRIVATE for GFX12.1

v2: Squash in Fix migrate_vma DEVICE_COHERENT setting

Signed-off-by: Harish Kasiviswanathan <[email protected]>
Reviewed-by: Felix Kuehling <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
index f5af1dd3b70e2..4b0ce078a9c9c 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
@@ -711,7 +711,7 @@ svm_migrate_vma_to_ram(struct kfd_node *node, struct 
svm_range *prange,
        migrate.start = start;
        migrate.end = end;
        migrate.pgmap_owner = SVM_ADEV_PGMAP_OWNER(adev);
-       if (adev->gmc.xgmi.connected_to_cpu)
+       if (adev->kfd.pgmap.type == MEMORY_DEVICE_COHERENT)
                migrate.flags = MIGRATE_VMA_SELECT_DEVICE_COHERENT;
        else
                migrate.flags = MIGRATE_VMA_SELECT_DEVICE_PRIVATE;
@@ -1045,7 +1045,8 @@ int kgd2kfd_init_zone_device(struct amdgpu_device *adev)
         * should remove reserved size
         */
        size = ALIGN(adev->gmc.real_vram_size, 2ULL << 20);
-       if (adev->gmc.xgmi.connected_to_cpu) {
+       if (adev->gmc.xgmi.connected_to_cpu &&
+           amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(12, 1, 0)) {
                pgmap->range.start = adev->gmc.aper_base;
                pgmap->range.end = adev->gmc.aper_base + adev->gmc.aper_size - 
1;
                pgmap->type = MEMORY_DEVICE_COHERENT;
-- 
2.55.0

Reply via email to