[PATCH] drm/amdkfd: Optimize svm range map to GPU with XNACK on
Philip Yang
yangp at amd.com
Fri Apr 28 16:24:21 UTC 2023
On 2023-04-27 12:35, Felix Kuehling wrote:
>
> On 2023-04-24 14:38, Philip Yang wrote:
>> 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 at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>> b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>> index 129ef44f41e9..af7594b1b4c6 100644
>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>> @@ -734,7 +734,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;
>> +
>
> For NO_ACCESS we need to update the mapping to ensure that the PTEs
> are invalidated. For ACCESS or ACCESS_IN_PLACE we can leave it for a
> page fault.
For NO_ACCESS, there is todo comment "TODO: unmap ranges from GPU that
lost access", this should be handled by another patch. This patch only
address that for XNACK ON, we can setup GPU mapping after page fault,
without prefaulting and mapping to GPU for ACCESS or ACCESS_IN_PLACE.
Regards,
Philip
>
> Regards,
> Felix
>
>
>> gpuidx = kfd_process_gpuidx_from_gpuid(p,
>> attrs[i].value);
>> if (attrs[i].type == KFD_IOCTL_SVM_ATTR_NO_ACCESS) {
More information about the amd-gfx
mailing list