All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <christian.koenig@amd.com>
To: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>
Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 4/7] drm/amdgpu: give ttm entities access to all the sdma scheds
Date: Tue, 7 Apr 2026 12:05:33 +0200	[thread overview]
Message-ID: <c9123064-413d-4cf3-b39f-5268cedcf92d@amd.com> (raw)
In-Reply-To: <20260403083602.1771-4-pierre-eric.pelloux-prayer@amd.com>

On 4/3/26 10:35, Pierre-Eric Pelloux-Prayer wrote:
> With this change we now have as many clear and move entities as we
> have sdma engines (limited to TTM_NUM_MOVE_FENCES).
> 
> To enable load-balancing this patch gives access to all sdma
> schedulers to all entities.
> 
> Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
> Reviewed-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 83f6d00dc3a0..648ad344e89c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -2349,8 +2349,6 @@ void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool enable)
>  		return;
>  
>  	if (enable) {
> -		struct drm_gpu_scheduler *sched;
> -
>  		if (!adev->mman.num_buffer_funcs_scheds) {
>  			dev_warn(adev->dev, "Not enabling DMA transfers for in kernel use");
>  			return;
> @@ -2358,11 +2356,10 @@ void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool enable)
>  
>  		num_clear_entities = MIN(adev->mman.num_buffer_funcs_scheds, TTM_NUM_MOVE_FENCES);
>  		num_move_entities = MIN(adev->mman.num_buffer_funcs_scheds, TTM_NUM_MOVE_FENCES);
> -		sched = adev->mman.buffer_funcs_scheds[0];
>  		r = amdgpu_ttm_buffer_entity_init(&adev->mman.gtt_mgr,
>  						  &adev->mman.default_entity,
>  						  DRM_SCHED_PRIORITY_KERNEL,
> -						  &sched, 1, 0);
> +						  adev->mman.buffer_funcs_scheds, 1, 0);

Why still giving num_schedulers as 1 here???

>  		if (r < 0) {
>  			dev_err(adev->dev,
>  				"Failed setting up TTM entity (%d)\n", r);
> @@ -2380,8 +2377,11 @@ void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool enable)
>  
>  		for (i = 0; i < num_clear_entities; i++) {
>  			r = amdgpu_ttm_buffer_entity_init(
> -				&adev->mman.gtt_mgr, &adev->mman.clear_entities[i],
> -				DRM_SCHED_PRIORITY_NORMAL, &sched, 1, 1);
> +				&adev->mman.gtt_mgr,
> +				&adev->mman.clear_entities[i],
> +				DRM_SCHED_PRIORITY_NORMAL,

That should be DRM_SCHED_PRIORITY_KERNEL, same below.

Regards,
Christian.

> +				adev->mman.buffer_funcs_scheds,
> +				adev->mman.num_buffer_funcs_scheds, 1);
>  
>  			if (r < 0) {
>  				for (j = 0; j < i; j++)
> @@ -2400,7 +2400,9 @@ void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool enable)
>  			r = amdgpu_ttm_buffer_entity_init(
>  				&adev->mman.gtt_mgr,
>  				&adev->mman.move_entities[i],
> -				DRM_SCHED_PRIORITY_NORMAL, &sched, 1, 2);
> +				DRM_SCHED_PRIORITY_NORMAL,
> +				adev->mman.buffer_funcs_scheds,
> +				adev->mman.num_buffer_funcs_scheds, 2);
>  
>  			if (r < 0) {
>  				for (j = 0; j < i; j++)


  reply	other threads:[~2026-04-07 10:05 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-03  8:35 [PATCH v5 1/7] drm/amdgpu: pass all the sdma scheds to amdgpu_mman Pierre-Eric Pelloux-Prayer
2026-04-03  8:35 ` [PATCH v5 2/7] drm/amdgpu: only use working sdma schedulers for ttm Pierre-Eric Pelloux-Prayer
2026-04-07  8:11   ` Christian König
2026-04-03  8:35 ` [PATCH v5 3/7] drm/amdgpu: create multiple clear/move ttm entities Pierre-Eric Pelloux-Prayer
2026-04-07 10:01   ` Christian König
2026-04-03  8:35 ` [PATCH v5 4/7] drm/amdgpu: give ttm entities access to all the sdma scheds Pierre-Eric Pelloux-Prayer
2026-04-07 10:05   ` Christian König [this message]
2026-04-08  8:26     ` Pierre-Eric Pelloux-Prayer
2026-04-08  8:28       ` Christian König
2026-04-03  8:35 ` [PATCH v5 5/7] drm/amdgpu: get rid of amdgpu_ttm_clear_buffer Pierre-Eric Pelloux-Prayer
2026-04-07 10:09   ` Christian König
2026-04-07 10:11     ` Christian König
2026-04-03  8:35 ` [PATCH v5 6/7] drm/amdgpu: rename amdgpu_fill_buffer as amdgpu_ttm_clear_buffer Pierre-Eric Pelloux-Prayer
2026-04-07 10:16   ` Christian König
2026-04-08  8:28     ` Pierre-Eric Pelloux-Prayer
2026-04-03  8:35 ` [PATCH v5 7/7] drm/amdgpu: split amdgpu_ttm_set_buffer_funcs_status in 2 funcs Pierre-Eric Pelloux-Prayer
2026-04-07 10:24   ` Christian König
2026-04-03 15:08 ` [PATCH v5 1/7] drm/amdgpu: pass all the sdma scheds to amdgpu_mman Alex Deucher
2026-04-07  8:07   ` Christian König
2026-04-08  8:29     ` Pierre-Eric Pelloux-Prayer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c9123064-413d-4cf3-b39f-5268cedcf92d@amd.com \
    --to=christian.koenig@amd.com \
    --cc=airlied@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre-eric.pelloux-prayer@amd.com \
    --cc=simona@ffwll.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.