drm/amdgpu/gfx9: new queue policy, take first 2 queues of each pipe
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 5 Jun 2017 15:03:59 +0000 (11:03 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 6 Jun 2017 21:01:43 +0000 (17:01 -0400)
Instead of taking the first pipe and giving the rest to kfd, take the
first 2 queues of each pipe.

Effectively, amdgpu and amdkfd own the same number of queues. But
because the queues are spread over multiple pipes the hardware will be
able to better handle concurrent compute workloads.

amdgpu goes from 1 pipe to 4 pipes, i.e. from 1 compute threads to 4
amdkfd goes from 3 pipe to 4 pipes, i.e. from 3 compute threads to 4

gfx9 was missed when this patch set was rebased to include gfx9.

Acked-by: Tom St Denis <tom.stdenis@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Andres Rodriguez <andresx7@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

index 0c48f6c1d7f54f53455b7df5e04b68984bc71b43..276dc06345aff50c867ad48ab2f351e55ce9728d 100644 (file)
@@ -873,8 +873,8 @@ static void gfx_v9_0_compute_queue_acquire(struct amdgpu_device *adev)
                if (mec >= adev->gfx.mec.num_mec)
                        break;
 
-               /* policy: amdgpu owns all queues in the first pipe */
-               if (mec == 0 && pipe == 0)
+               /* policy: amdgpu owns the first two queues of the first MEC */
+               if (mec == 0 && queue < 2)
                        set_bit(i, adev->gfx.mec.queue_bitmap);
        }