Commit 73463e26 authored by Andrew Martin's avatar Andrew Martin Committed by Alex Deucher
Browse files

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: default avatarAndrew Martin <andrew.martin@amd.com>
Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1b38a87b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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; */
}

static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
+1 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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,
Loading