On 2026-02-12 14:42, Andrew Martin wrote:
This solves a priority inversion issue, caused by the language
runtime making high-priority queues wait for activity on
lower-priority queues.

Signed-off-by: Andrew Martin <[email protected]>
---
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c   | 2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c   | 2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c   | 2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c   | 2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c | 2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c    | 2 +-
  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c    | 2 +-
  7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
index 90ac3a30e81d..76483d91af98 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
@@ -70,7 +70,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
  static void set_priority(struct cik_mqd *m, struct queue_properties *q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */

Please remove the commented out lines here and in the other files. With that fixed, the patch is

Reviewed-by: Felix Kuehling <[email protected]>


  }
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
index 97055f808d4a..0186b3de67c0 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
@@ -70,7 +70,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
  static void set_priority(struct v10_compute_mqd *m, struct queue_properties 
*q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */
  }
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
index 7e5a7ab6d0c0..c9e397366782 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
@@ -96,7 +96,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
  static void set_priority(struct v11_compute_mqd *m, struct queue_properties 
*q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */
  }
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c
index a51f217329db..3bbc2648f51d 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c
@@ -77,7 +77,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
  static void set_priority(struct v12_compute_mqd *m, struct queue_properties 
*q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */
  }
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
index d0776ba2cc99..0d6b601962eb 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
@@ -131,7 +131,7 @@ static void update_cu_mask(struct mqd_manager *mm, void 
*mqd,
  static void set_priority(struct v12_1_compute_mqd *m, struct queue_properties 
*q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */
  }
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
index dcf4bbfa641b..bc4ceba35908 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
@@ -106,7 +106,7 @@ static void update_cu_mask(struct mqd_manager *mm, void 
*mqd,
  static void set_priority(struct v9_mqd *m, struct queue_properties *q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */
  }
static bool mqd_on_vram(struct amdgpu_device *adev)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
index 09483f0862d4..e63ef6442b35 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
@@ -73,7 +73,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
  static void set_priority(struct vi_mqd *m, struct queue_properties *q)
  {
        m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
-       m->cp_hqd_queue_priority = q->priority;
+       /* m->cp_hqd_queue_priority = q->priority; */
  }
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

Reply via email to