mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset
@ 2026-06-16 12:50 Pierre-Eric Pelloux-Prayer
  2026-06-16 12:50 ` [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi Pierre-Eric Pelloux-Prayer
  2026-06-16 12:54 ` [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset Christian König
  0 siblings, 2 replies; 7+ messages in thread
From: Pierre-Eric Pelloux-Prayer @ 2026-06-16 12:50 UTC (permalink / raw)
  To: Alex Deucher, Christian König, David Airlie, Simona Vetter
  Cc: Pierre-Eric Pelloux-Prayer, amd-gfx, dri-devel, linux-kernel

Access to hw is already suspended so there are no reasons to
disable ttm buffer funcs.

Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 6608780ffef2..57e10afb4714 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -3167,8 +3167,6 @@ static int amdgpu_device_ip_suspend(struct amdgpu_device *adev)
 		amdgpu_virt_request_full_gpu(adev, false);
 	}
 
-	amdgpu_ttm_disable_buffer_funcs(adev);
-
 	r = amdgpu_device_ip_suspend_phase1(adev);
 	if (r)
 		return r;
-- 
2.43.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi
  2026-06-16 12:50 [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset Pierre-Eric Pelloux-Prayer
@ 2026-06-16 12:50 ` Pierre-Eric Pelloux-Prayer
  2026-06-16 12:54   ` Christian König
                     ` (2 more replies)
  2026-06-16 12:54 ` [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset Christian König
  1 sibling, 3 replies; 7+ messages in thread
From: Pierre-Eric Pelloux-Prayer @ 2026-06-16 12:50 UTC (permalink / raw)
  To: Alex Deucher, Christian König, David Airlie, Simona Vetter,
	Pierre-Eric Pelloux-Prayer
  Cc: amd-gfx, dri-devel, linux-kernel

When amdgpu_init_minimal_xgmi is used, SDMA engines init
is delayed so amdgpu_ttm_enable_buffer_funcs must be
called later.

Without this, the check for num_buffer_funcs_scheds will
fail and using ttm buffer funcs later will fail.

Fixes: 3a5da695c8d1 ("drm/amdgpu: only use working sdma schedulers for ttm")
Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c   | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 57e10afb4714..2e8954fa5c40 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2479,7 +2479,8 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
 	if (r)
 		goto init_failed;
 
-	amdgpu_ttm_enable_buffer_funcs(adev);
+	if (amdgpu_ip_member_of_hwini(adev, AMD_IP_BLOCK_TYPE_SDMA))
+		amdgpu_ttm_enable_buffer_funcs(adev);
 
 	/* Don't init kfd if whole hive need to be reset during init */
 	if (adev->init_lvl->level != AMDGPU_INIT_LEVEL_MINIMAL_XGMI) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index faac80a8a6eb..c0dca209335e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -1663,6 +1663,8 @@ static void amdgpu_xgmi_reset_on_init_work(struct work_struct *work)
 		if (r && r != -EHWPOISON)
 			dev_err(tmp_adev->dev,
 				"error during bad page data initialization");
+
+		amdgpu_ttm_enable_buffer_funcs(tmp_adev);
 	}
 }
 
-- 
2.43.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset
  2026-06-16 12:50 [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset Pierre-Eric Pelloux-Prayer
  2026-06-16 12:50 ` [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi Pierre-Eric Pelloux-Prayer
@ 2026-06-16 12:54 ` Christian König
  1 sibling, 0 replies; 7+ messages in thread
From: Christian König @ 2026-06-16 12:54 UTC (permalink / raw)
  To: Pierre-Eric Pelloux-Prayer, Alex Deucher, David Airlie, Simona Vetter
  Cc: amd-gfx, dri-devel, linux-kernel

On 6/16/26 14:50, Pierre-Eric Pelloux-Prayer wrote:
> Access to hw is already suspended so there are no reasons to
> disable ttm buffer funcs.
> 
> 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_device.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 6608780ffef2..57e10afb4714 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3167,8 +3167,6 @@ static int amdgpu_device_ip_suspend(struct amdgpu_device *adev)
>  		amdgpu_virt_request_full_gpu(adev, false);
>  	}
>  
> -	amdgpu_ttm_disable_buffer_funcs(adev);
> -
>  	r = amdgpu_device_ip_suspend_phase1(adev);
>  	if (r)
>  		return r;


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi
  2026-06-16 12:50 ` [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi Pierre-Eric Pelloux-Prayer
@ 2026-06-16 12:54   ` Christian König
  2026-06-16 13:42   ` Alex Deucher
  2026-06-16 14:41   ` Lazar, Lijo
  2 siblings, 0 replies; 7+ messages in thread
From: Christian König @ 2026-06-16 12:54 UTC (permalink / raw)
  To: Pierre-Eric Pelloux-Prayer, Alex Deucher, David Airlie, Simona Vetter
  Cc: amd-gfx, dri-devel, linux-kernel

On 6/16/26 14:50, Pierre-Eric Pelloux-Prayer wrote:
> When amdgpu_init_minimal_xgmi is used, SDMA engines init
> is delayed so amdgpu_ttm_enable_buffer_funcs must be
> called later.
> 
> Without this, the check for num_buffer_funcs_scheds will
> fail and using ttm buffer funcs later will fail.
> 
> Fixes: 3a5da695c8d1 ("drm/amdgpu: only use working sdma schedulers for ttm")
> Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>

Acked-by: Christian König <christian.koenig@amd.com> but Alex should probably take a look as well.

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c   | 2 ++
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 57e10afb4714..2e8954fa5c40 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2479,7 +2479,8 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
>  	if (r)
>  		goto init_failed;
>  
> -	amdgpu_ttm_enable_buffer_funcs(adev);
> +	if (amdgpu_ip_member_of_hwini(adev, AMD_IP_BLOCK_TYPE_SDMA))
> +		amdgpu_ttm_enable_buffer_funcs(adev);
>  
>  	/* Don't init kfd if whole hive need to be reset during init */
>  	if (adev->init_lvl->level != AMDGPU_INIT_LEVEL_MINIMAL_XGMI) {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index faac80a8a6eb..c0dca209335e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -1663,6 +1663,8 @@ static void amdgpu_xgmi_reset_on_init_work(struct work_struct *work)
>  		if (r && r != -EHWPOISON)
>  			dev_err(tmp_adev->dev,
>  				"error during bad page data initialization");
> +
> +		amdgpu_ttm_enable_buffer_funcs(tmp_adev);
>  	}
>  }
>  


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi
  2026-06-16 12:50 ` [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi Pierre-Eric Pelloux-Prayer
  2026-06-16 12:54   ` Christian König
@ 2026-06-16 13:42   ` Alex Deucher
  2026-06-16 14:41   ` Lazar, Lijo
  2 siblings, 0 replies; 7+ messages in thread
From: Alex Deucher @ 2026-06-16 13:42 UTC (permalink / raw)
  To: Pierre-Eric Pelloux-Prayer
  Cc: Alex Deucher, Christian König, David Airlie, Simona Vetter,
	amd-gfx, dri-devel, linux-kernel

On Tue, Jun 16, 2026 at 8:51 AM Pierre-Eric Pelloux-Prayer
<pierre-eric.pelloux-prayer@amd.com> wrote:
>
> When amdgpu_init_minimal_xgmi is used, SDMA engines init
> is delayed so amdgpu_ttm_enable_buffer_funcs must be
> called later.
>
> Without this, the check for num_buffer_funcs_scheds will
> fail and using ttm buffer funcs later will fail.
>
> Fixes: 3a5da695c8d1 ("drm/amdgpu: only use working sdma schedulers for ttm")
> Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c   | 2 ++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 57e10afb4714..2e8954fa5c40 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2479,7 +2479,8 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
>         if (r)
>                 goto init_failed;
>
> -       amdgpu_ttm_enable_buffer_funcs(adev);
> +       if (amdgpu_ip_member_of_hwini(adev, AMD_IP_BLOCK_TYPE_SDMA))
> +               amdgpu_ttm_enable_buffer_funcs(adev);
>
>         /* Don't init kfd if whole hive need to be reset during init */
>         if (adev->init_lvl->level != AMDGPU_INIT_LEVEL_MINIMAL_XGMI) {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index faac80a8a6eb..c0dca209335e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -1663,6 +1663,8 @@ static void amdgpu_xgmi_reset_on_init_work(struct work_struct *work)
>                 if (r && r != -EHWPOISON)
>                         dev_err(tmp_adev->dev,
>                                 "error during bad page data initialization");
> +
> +               amdgpu_ttm_enable_buffer_funcs(tmp_adev);
>         }
>  }
>
> --
> 2.43.0
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi
  2026-06-16 12:50 ` [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi Pierre-Eric Pelloux-Prayer
  2026-06-16 12:54   ` Christian König
  2026-06-16 13:42   ` Alex Deucher
@ 2026-06-16 14:41   ` Lazar, Lijo
  2026-06-17 13:45     ` Pierre-Eric Pelloux-Prayer
  2 siblings, 1 reply; 7+ messages in thread
From: Lazar, Lijo @ 2026-06-16 14:41 UTC (permalink / raw)
  To: Pelloux-Prayer, Pierre-Eric, Deucher, Alexander, Koenig,
	Christian, David Airlie, Simona Vetter, Pelloux-Prayer,
	Pierre-Eric
  Cc: amd-gfx, dri-devel, linux-kernel

Public

-----Original Message-----
From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of Pierre-Eric Pelloux-Prayer
Sent: Tuesday, June 16, 2026 6:21 PM
To: Deucher, Alexander <Alexander.Deucher@amd.com>; Koenig, Christian <Christian.Koenig@amd.com>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Pelloux-Prayer, Pierre-Eric <Pierre-eric.Pelloux-prayer@amd.com>
Cc: amd-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org
Subject: [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi

When amdgpu_init_minimal_xgmi is used, SDMA engines init is delayed so amdgpu_ttm_enable_buffer_funcs must be called later.

Without this, the check for num_buffer_funcs_scheds will fail and using ttm buffer funcs later will fail.

Fixes: 3a5da695c8d1 ("drm/amdgpu: only use working sdma schedulers for ttm")
Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c   | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 57e10afb4714..2e8954fa5c40 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2479,7 +2479,8 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
        if (r)
                goto init_failed;

-       amdgpu_ttm_enable_buffer_funcs(adev);
+       if (amdgpu_ip_member_of_hwini(adev, AMD_IP_BLOCK_TYPE_SDMA))
+               amdgpu_ttm_enable_buffer_funcs(adev);

        /* Don't init kfd if whole hive need to be reset during init */
        if (adev->init_lvl->level != AMDGPU_INIT_LEVEL_MINIMAL_XGMI) { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index faac80a8a6eb..c0dca209335e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -1663,6 +1663,8 @@ static void amdgpu_xgmi_reset_on_init_work(struct work_struct *work)
                if (r && r != -EHWPOISON)
                        dev_err(tmp_adev->dev,
                                "error during bad page data initialization");
+
+               amdgpu_ttm_enable_buffer_funcs(tmp_adev);

<lijo> This gets enabled in the resume path after xgmi reset. It is not needed here.

Thanks,
Lijo

        }
 }

--
2.43.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi
  2026-06-16 14:41   ` Lazar, Lijo
@ 2026-06-17 13:45     ` Pierre-Eric Pelloux-Prayer
  0 siblings, 0 replies; 7+ messages in thread
From: Pierre-Eric Pelloux-Prayer @ 2026-06-17 13:45 UTC (permalink / raw)
  To: Lazar, Lijo, Pelloux-Prayer, Pierre-Eric, Deucher, Alexander,
	Koenig, Christian, David Airlie, Simona Vetter
  Cc: amd-gfx, dri-devel, linux-kernel



Le 16/06/2026 à 16:41, Lazar, Lijo a écrit :
> Public
> 
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of Pierre-Eric Pelloux-Prayer
> Sent: Tuesday, June 16, 2026 6:21 PM
> To: Deucher, Alexander <Alexander.Deucher@amd.com>; Koenig, Christian <Christian.Koenig@amd.com>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Pelloux-Prayer, Pierre-Eric <Pierre-eric.Pelloux-prayer@amd.com>
> Cc: amd-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org
> Subject: [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi
> 
> When amdgpu_init_minimal_xgmi is used, SDMA engines init is delayed so amdgpu_ttm_enable_buffer_funcs must be called later.
> 
> Without this, the check for num_buffer_funcs_scheds will fail and using ttm buffer funcs later will fail.
> 
> Fixes: 3a5da695c8d1 ("drm/amdgpu: only use working sdma schedulers for ttm")
> Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c   | 2 ++
>   2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 57e10afb4714..2e8954fa5c40 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2479,7 +2479,8 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
>          if (r)
>                  goto init_failed;
> 
> -       amdgpu_ttm_enable_buffer_funcs(adev);
> +       if (amdgpu_ip_member_of_hwini(adev, AMD_IP_BLOCK_TYPE_SDMA))
> +               amdgpu_ttm_enable_buffer_funcs(adev);
> 
>          /* Don't init kfd if whole hive need to be reset during init */
>          if (adev->init_lvl->level != AMDGPU_INIT_LEVEL_MINIMAL_XGMI) { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index faac80a8a6eb..c0dca209335e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -1663,6 +1663,8 @@ static void amdgpu_xgmi_reset_on_init_work(struct work_struct *work)
>                  if (r && r != -EHWPOISON)
>                          dev_err(tmp_adev->dev,
>                                  "error during bad page data initialization");
> +
> +               amdgpu_ttm_enable_buffer_funcs(tmp_adev);
> 
> <lijo> This gets enabled in the resume path after xgmi reset. It is not needed here.

Good point. I've modified the patch in v2.

Thanks,
Pierre-Eric


> 
> Thanks,
> Lijo
> 
>          }
>   }
> 
> --
> 2.43.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-06-17 13:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-16 12:50 [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset Pierre-Eric Pelloux-Prayer
2026-06-16 12:50 ` [PATCH v1 2/2] drm/amdgpu: delay ttm buffer func enablement on xgmi Pierre-Eric Pelloux-Prayer
2026-06-16 12:54   ` Christian König
2026-06-16 13:42   ` Alex Deucher
2026-06-16 14:41   ` Lazar, Lijo
2026-06-17 13:45     ` Pierre-Eric Pelloux-Prayer
2026-06-16 12:54 ` [PATCH v1 1/2] drm/amdgpu: don't disable ttm buffer funcs on reset Christian König

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®