[PATCH 2/2] drm/amdkfd: Enable SDMA queue reset on gfx v12.1

2026-05-12 Thread Amber Lin
After suspend/resume sdma_gang is supported on MES 12.1, SDMA queue reset
is supported too.

Signed-off-by: Amber Lin 
Reviewed-by: Michael Chen
---
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index 397e916e11b6..f37c2d3c8416 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -514,7 +514,8 @@ static ssize_t node_show(struct kobject *kobj, struct 
attribute *attr,
dev->node_props.capability |=
HSA_CAP_AQL_QUEUE_DOUBLE_MAP;
 
-   if (KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) &&
+   if ((KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) ||
+   KFD_GC_VERSION(dev->gpu) == IP_VERSION(12, 1, 0)) &&
(dev->gpu->adev->sdma.supported_reset & 
AMDGPU_RESET_TYPE_PER_QUEUE))
dev->node_props.capability2 |= 
HSA_CAP2_PER_SDMA_QUEUE_RESET_SUPPORTED;
 
-- 
2.43.0



Re: [PATCH 2/2] drm/amdkfd: Enable SDMA queue reset on gfx v12.1

2026-03-23 Thread Amber Lin



On 3/23/26 15:25, Alex Deucher wrote:

On Mon, Mar 23, 2026 at 3:04 PM Amber Lin  wrote:

After suspend/resume sdma_gang is supported on MES 12.1, SDMA queue reset
is supported too.

Signed-off-by: Amber Lin 
---
  drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index 4c52819aef9e..42d52c1f5109 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -514,7 +514,8 @@ static ssize_t node_show(struct kobject *kobj, struct 
attribute *attr,
 dev->node_props.capability |=
 HSA_CAP_AQL_QUEUE_DOUBLE_MAP;

-   if (KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) &&
+   if ((KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) ||
+   KFD_GC_VERSION(dev->gpu) == IP_VERSION(12, 1, 0)) &&

I thought this already worked on other MES-enabled chips.

Alex
My understanding is user mode compute(and sdma) queue/pipe reset only 
works on gfx 9 HWS. gfx 12.1 is the first MES-enabled chip on user mode 
compute side while they are already supported on gfx or kernel mode 
compute side. My next task is to extend this support to gfx 12 and other 
existing MES chips.



 (dev->gpu->adev->sdma.supported_reset & 
AMDGPU_RESET_TYPE_PER_QUEUE))
 dev->node_props.capability2 |= 
HSA_CAP2_PER_SDMA_QUEUE_RESET_SUPPORTED;

--
2.43.0





Re: [PATCH 2/2] drm/amdkfd: Enable SDMA queue reset on gfx v12.1

2026-03-23 Thread Alex Deucher
On Mon, Mar 23, 2026 at 3:04 PM Amber Lin  wrote:
>
> After suspend/resume sdma_gang is supported on MES 12.1, SDMA queue reset
> is supported too.
>
> Signed-off-by: Amber Lin 
> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> index 4c52819aef9e..42d52c1f5109 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> @@ -514,7 +514,8 @@ static ssize_t node_show(struct kobject *kobj, struct 
> attribute *attr,
> dev->node_props.capability |=
> HSA_CAP_AQL_QUEUE_DOUBLE_MAP;
>
> -   if (KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) &&
> +   if ((KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) ||
> +   KFD_GC_VERSION(dev->gpu) == IP_VERSION(12, 1, 0)) &&

I thought this already worked on other MES-enabled chips.

Alex

> (dev->gpu->adev->sdma.supported_reset & 
> AMDGPU_RESET_TYPE_PER_QUEUE))
> dev->node_props.capability2 |= 
> HSA_CAP2_PER_SDMA_QUEUE_RESET_SUPPORTED;
>
> --
> 2.43.0
>


[PATCH 2/2] drm/amdkfd: Enable SDMA queue reset on gfx v12.1

2026-03-23 Thread Amber Lin
After suspend/resume sdma_gang is supported on MES 12.1, SDMA queue reset
is supported too.

Signed-off-by: Amber Lin 
---
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index 4c52819aef9e..42d52c1f5109 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -514,7 +514,8 @@ static ssize_t node_show(struct kobject *kobj, struct 
attribute *attr,
dev->node_props.capability |=
HSA_CAP_AQL_QUEUE_DOUBLE_MAP;
 
-   if (KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) &&
+   if ((KFD_GC_VERSION(dev->gpu) < IP_VERSION(10, 0, 0) ||
+   KFD_GC_VERSION(dev->gpu) == IP_VERSION(12, 1, 0)) &&
(dev->gpu->adev->sdma.supported_reset & 
AMDGPU_RESET_TYPE_PER_QUEUE))
dev->node_props.capability2 |= 
HSA_CAP2_PER_SDMA_QUEUE_RESET_SUPPORTED;
 
-- 
2.43.0