Reviewed-by: Luben Tuikov <luben.tuikov@xxxxxxx> Regards, Luben On 2023-05-01 10:55, Alex Deucher wrote: > Ping? > > Alex > > On Fri, Apr 28, 2023 at 11:57 AM Alex Deucher <alexander.deucher@xxxxxxx> wrote: >> >> Reduces preemption latency. >> Only enable this for gfx10 and 11 for now >> to avoid changing behavior on gfx 8 and 9. >> >> v2: move MES MQDs into VRAM as well (YuBiao) >> v3: enable on gfx10, 11 only (Alex) >> v4: minor style changes, document why gfx10/11 only (Alex) >> >> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 9 +++++++-- >> drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 1 + >> drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 1 + >> 3 files changed, 9 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c >> index 90f5d302d5f3..b91be56ba773 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c >> @@ -382,6 +382,11 @@ int amdgpu_gfx_mqd_sw_init(struct amdgpu_device *adev, >> int r, i, j; >> struct amdgpu_kiq *kiq = &adev->gfx.kiq[xcc_id]; >> struct amdgpu_ring *ring = &kiq->ring; >> + u32 domain = AMDGPU_GEM_DOMAIN_GTT; >> + >> + /* Only enable on gfx10 and 11 for now to avoid changing behavior on older chips */ >> + if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(10, 0, 0)) >> + domain |= AMDGPU_GEM_DOMAIN_VRAM; >> >> /* create MQD for KIQ */ >> if (!adev->enable_mes_kiq && !ring->mqd_obj) { >> @@ -413,7 +418,7 @@ int amdgpu_gfx_mqd_sw_init(struct amdgpu_device *adev, >> ring = &adev->gfx.gfx_ring[i]; >> if (!ring->mqd_obj) { >> r = amdgpu_bo_create_kernel(adev, mqd_size, PAGE_SIZE, >> - AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, >> + domain, &ring->mqd_obj, >> &ring->mqd_gpu_addr, &ring->mqd_ptr); >> if (r) { >> dev_warn(adev->dev, "failed to create ring mqd bo (%d)", r); >> @@ -435,7 +440,7 @@ int amdgpu_gfx_mqd_sw_init(struct amdgpu_device *adev, >> ring = &adev->gfx.compute_ring[j]; >> if (!ring->mqd_obj) { >> r = amdgpu_bo_create_kernel(adev, mqd_size, PAGE_SIZE, >> - AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, >> + domain, &ring->mqd_obj, >> &ring->mqd_gpu_addr, &ring->mqd_ptr); >> if (r) { >> dev_warn(adev->dev, "failed to create ring mqd bo (%d)", r); >> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c b/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c >> index 0599f8a6813e..4560476c7c31 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c >> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c >> @@ -901,6 +901,7 @@ static int mes_v10_1_mqd_sw_init(struct amdgpu_device *adev, >> return 0; >> >> r = amdgpu_bo_create_kernel(adev, mqd_size, PAGE_SIZE, >> + AMDGPU_GEM_DOMAIN_VRAM | >> AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, >> &ring->mqd_gpu_addr, &ring->mqd_ptr); >> if (r) { >> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c >> index e853bcb892fc..3adb450eec07 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c >> @@ -999,6 +999,7 @@ static int mes_v11_0_mqd_sw_init(struct amdgpu_device *adev, >> return 0; >> >> r = amdgpu_bo_create_kernel(adev, mqd_size, PAGE_SIZE, >> + AMDGPU_GEM_DOMAIN_VRAM | >> AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, >> &ring->mqd_gpu_addr, &ring->mqd_ptr); >> if (r) { >> -- >> 2.40.0 >>