OSDN Git Service

drm/amdkfd: Optimize svm range map to GPU with XNACK on
authorPhilip Yang <Philip.Yang@amd.com>
Mon, 24 Apr 2023 18:46:16 +0000 (14:46 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:26:44 +0000 (09:26 -0400)
With XNACK on if svm_range_set_attr set the range access or
access_in_place attribute, we don't call svm_range_validate_and_map to
update GPU mapping. This avoids prefaulting the range pages on system
memory if the range is not prefetch to VRAM and not mapped to GPUs.

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

index 96a138a..c024305 100644 (file)
@@ -735,7 +735,9 @@ svm_range_apply_attrs(struct kfd_process *p, struct svm_range *prange,
                case KFD_IOCTL_SVM_ATTR_ACCESS:
                case KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE:
                case KFD_IOCTL_SVM_ATTR_NO_ACCESS:
-                       *update_mapping = true;
+                       if (!p->xnack_enabled)
+                               *update_mapping = true;
+
                        gpuidx = kfd_process_gpuidx_from_gpuid(p,
                                                               attrs[i].value);
                        if (attrs[i].type == KFD_IOCTL_SVM_ATTR_NO_ACCESS) {