Applied the series.  Thanks!

On Sat, Jul 11, 2026 at 7:59 AM Timur Kristóf <[email protected]> wrote:
>
> Allow using multiple SDMA schedulers only on GPUs where
> we are allowed to do concurrent VM flushes.
> This consideration is necessary because all GART windows
> are mapped in VMID 0 (the kernel VMID) so each buffer
> entity would flush VMID 0 concurrently.
>
> Practically this means that we can't use multiple SDMA
> engines for TTM on GFX6-8 and Navi 1x.
>
> Fixes: 01c836788b37 ("drm/amdgpu: pass all the sdma scheds to amdgpu_mman")
> Fixes: e4029f7a9474 ("drm/amdgpu: only use working sdma schedulers for ttm")
> Cc: Pierre-Eric Pelloux-Prayer <[email protected]>
> Signed-off-by: Timur Kristóf <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 74ada995bd8e..9eb55df6e692 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -2685,12 +2685,22 @@ void amdgpu_sdma_set_buffer_funcs_scheds(struct 
> amdgpu_device *adev,
>                 return;
>         }
>
> -       /* Navi1x's workaround requires us to limit to a single SDMA sched
> -        * for ttm.
> -        */
>         hub = &adev->vmhub[AMDGPU_GFXHUB(0)];
> -       adev->mman.num_buffer_funcs_scheds = 
> hub->sdma_invalidation_workaround ?
> -               1 : n;
> +
> +       /*
> +        * Allow using multiple SDMA schedulers only on GPUs where
> +        * we are allowed to do concurrent VM flushes.
> +        * This consideration is necessary because all GART windows
> +        * are mapped in VMID 0 (the kernel VMID) so each buffer
> +        * entity would flush VMID 0 concurrently.
> +        *
> +        * Also consider the SDMA invalidation workaround on
> +        * Navi 1x GPUs, which also prevents us from using
> +        * multiple SDMA engines on VMID 0 at the same time.
> +        */
> +       adev->mman.num_buffer_funcs_scheds =
> +               (adev->vm_manager.concurrent_flush &&
> +                !hub->sdma_invalidation_workaround) ? n : 1;
>  }
>
>  #if defined(CONFIG_DEBUG_FS)
> --
> 2.55.0
>

Reply via email to