drm/amdgpu: Let KFD use more VMIDs on Arcturus
authorFelix Kuehling <Felix.Kuehling@amd.com>
Thu, 25 Jun 2020 03:08:46 +0000 (23:08 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 2 Jul 2020 16:02:50 +0000 (12:02 -0400)
When there is no graphics support, KFD can use more of the VMIDs. Graphics
VMIDs are only used for video decoding/encoding and post processing. With
two VCE engines, there is no reason to reserve more than 2 VMIDs for that.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c

index 6e10b42..3470929 100644 (file)
@@ -1245,10 +1245,15 @@ static int gmc_v9_0_sw_init(void *handle)
        /*
         * number of VMs
         * VMID 0 is reserved for System
-        * amdgpu graphics/compute will use VMIDs 1-7
-        * amdkfd will use VMIDs 8-15
+        * amdgpu graphics/compute will use VMIDs 1..n-1
+        * amdkfd will use VMIDs n..15
+        *
+        * The first KFD VMID is 8 for GPUs with graphics, 3 for
+        * compute-only GPUs. On compute-only GPUs that leaves 2 VMIDs
+        * for video processing.
         */
-       adev->vm_manager.first_kfd_vmid = 8;
+       adev->vm_manager.first_kfd_vmid =
+               adev->asic_type == CHIP_ARCTURUS ? 3 : 8;
 
        amdgpu_vm_manager_init(adev);