Commit aded8b3c authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu: properly handle GC vs MM in amdgpu_vmid_mgr_init()



When kernel queues are disabled, all GC vmids are available
for the scheduler.  MM vmids are still managed by the driver
so make all 16 available.

Also fix gmc 10 vs 11 mix up in
commit 1f61fc28 ("drm/amdgpu/mes: make more vmids available when disable_kq=1")

v2: Properly handle pre-GC 10 hardware

Fixes: 1f61fc28 ("drm/amdgpu/mes: make more vmids available when disable_kq=1")
Cc: Arvind Yadav <Arvind.Yadav@amd.com>
Reviewed-by: default avatarArvind Yadav <Arvind.Yadav@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 2e828a25
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -576,6 +576,14 @@ void amdgpu_vmid_mgr_init(struct amdgpu_device *adev)
		INIT_LIST_HEAD(&id_mgr->ids_lru);
		id_mgr->reserved_use_count = 0;

		/* for GC <10, SDMA uses MMHUB so use first_kfd_vmid for both GC and MM */
		if (amdgpu_ip_version(adev, GC_HWIP, 0) < IP_VERSION(10, 0, 0))
			/* manage only VMIDs not used by KFD */
			id_mgr->num_ids = adev->vm_manager.first_kfd_vmid;
		else if (AMDGPU_IS_MMHUB0(i) ||
			 AMDGPU_IS_MMHUB1(i))
			id_mgr->num_ids = 16;
		else
			/* manage only VMIDs not used by KFD */
			id_mgr->num_ids = adev->vm_manager.first_kfd_vmid;

+1 −1
Original line number Diff line number Diff line
@@ -896,7 +896,7 @@ static int gmc_v10_0_sw_init(struct amdgpu_ip_block *ip_block)
	 * amdgpu graphics/compute will use VMIDs 1-7
	 * amdkfd will use VMIDs 8-15
	 */
	adev->vm_manager.first_kfd_vmid = adev->gfx.disable_kq ? 1 : 8;
	adev->vm_manager.first_kfd_vmid = 8;

	amdgpu_vm_manager_init(adev);

+1 −1
Original line number Diff line number Diff line
@@ -828,7 +828,7 @@ static int gmc_v11_0_sw_init(struct amdgpu_ip_block *ip_block)
	 * amdgpu graphics/compute will use VMIDs 1-7
	 * amdkfd will use VMIDs 8-15
	 */
	adev->vm_manager.first_kfd_vmid = 8;
	adev->vm_manager.first_kfd_vmid = adev->gfx.disable_kq ? 1 : 8;

	amdgpu_vm_manager_init(adev);