[PATCH] drm/amdgpu: use CPU for page table update if SDMA is unavailable
Huang, Tim
Tim.Huang at amd.com
Tue Jul 30 04:45:43 UTC 2024
[Public]
This patch is,
Reviewed-by: Tim Huang <tim.huang at amd.com>
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Yifan
> Zhang
> Sent: Tuesday, July 30, 2024 12:37 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Zhang, Jesse(Jie)
> <Jesse.Zhang at amd.com>; Zhang, Yifan <Yifan1.Zhang at amd.com>
> Subject: [PATCH] drm/amdgpu: use CPU for page table update if SDMA is
> unavailable
>
> avoid using SDMA if it is unavailable.
>
> Signed-off-by: Yifan Zhang <yifan1.zhang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index a060c28f0877..bcb729094521 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2397,6 +2397,7 @@ void amdgpu_vm_set_task_info(struct amdgpu_vm
> *vm) int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm
> *vm,
> int32_t xcp_id)
> {
> + struct amdgpu_ip_block *ip_block;
> struct amdgpu_bo *root_bo;
> struct amdgpu_bo_vm *root;
> int r, i;
> @@ -2426,6 +2427,11 @@ int amdgpu_vm_init(struct amdgpu_device *adev,
> struct amdgpu_vm *vm,
> vm->use_cpu_for_update = !!(adev->vm_manager.vm_update_mode &
> AMDGPU_VM_USE_CPU_FOR_GFX);
>
> + /* use CPU for page table update if SDMA is unavailable */
> + ip_block = amdgpu_device_ip_get_ip_block(adev,
> AMD_IP_BLOCK_TYPE_SDMA);
> + if (!ip_block || ip_block->status.valid == false)
> + vm->use_cpu_for_update = true;
> +
> DRM_DEBUG_DRIVER("VM update mode is %s\n",
> vm->use_cpu_for_update ? "CPU" : "SDMA");
> WARN_ONCE((vm->use_cpu_for_update &&
> --
> 2.37.3
More information about the amd-gfx
mailing list