Skip to content

Commit 73463e2

Browse files
andmar-amdalexdeucher
authored andcommitted
drm/amdkfd: Disable MQD queue priority
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 <andrew.martin@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 1b38a87 commit 73463e2

7 files changed

Lines changed: 7 additions & 7 deletions

File tree

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
7070
static void set_priority(struct cik_mqd *m, struct queue_properties *q)
7171
{
7272
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
73-
m->cp_hqd_queue_priority = q->priority;
73+
/* m->cp_hqd_queue_priority = q->priority; */
7474
}
7575

7676
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
7070
static void set_priority(struct v10_compute_mqd *m, struct queue_properties *q)
7171
{
7272
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
73-
m->cp_hqd_queue_priority = q->priority;
73+
/* m->cp_hqd_queue_priority = q->priority; */
7474
}
7575

7676
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
9696
static void set_priority(struct v11_compute_mqd *m, struct queue_properties *q)
9797
{
9898
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
99-
m->cp_hqd_queue_priority = q->priority;
99+
/* m->cp_hqd_queue_priority = q->priority; */
100100
}
101101

102102
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
7777
static void set_priority(struct v12_compute_mqd *m, struct queue_properties *q)
7878
{
7979
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
80-
m->cp_hqd_queue_priority = q->priority;
80+
/* m->cp_hqd_queue_priority = q->priority; */
8181
}
8282

8383
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
131131
static void set_priority(struct v12_1_compute_mqd *m, struct queue_properties *q)
132132
{
133133
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
134-
m->cp_hqd_queue_priority = q->priority;
134+
/* m->cp_hqd_queue_priority = q->priority; */
135135
}
136136

137137
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
106106
static void set_priority(struct v9_mqd *m, struct queue_properties *q)
107107
{
108108
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
109-
m->cp_hqd_queue_priority = q->priority;
109+
/* m->cp_hqd_queue_priority = q->priority; */
110110
}
111111

112112
static bool mqd_on_vram(struct amdgpu_device *adev)

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
7373
static void set_priority(struct vi_mqd *m, struct queue_properties *q)
7474
{
7575
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
76-
m->cp_hqd_queue_priority = q->priority;
76+
/* m->cp_hqd_queue_priority = q->priority; */
7777
}
7878

7979
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,

0 commit comments

Comments
 (0)