Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88079006 authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/amdgpu: wake up scheduler only when neccessary

parent 062c7fb3
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
#include <drm/drmP.h>
#include "gpu_scheduler.h"

static void amd_sched_wakeup(struct amd_gpu_scheduler *sched);

/* Initialize a given run queue struct */
static void amd_sched_rq_init(struct amd_sched_rq *rq)
{
@@ -209,7 +211,7 @@ static bool amd_sched_entity_in(struct amd_sched_job *job)

	/* first job wakes up scheduler */
	if (first)
		wake_up_interruptible(&job->sched->wait_queue);
		amd_sched_wakeup(job->sched);

	return added;
}
@@ -249,6 +251,15 @@ static bool amd_sched_ready(struct amd_gpu_scheduler *sched)
		sched->hw_submission_limit;
}

/**
 * Wake up the scheduler when it is ready
 */
static void amd_sched_wakeup(struct amd_gpu_scheduler *sched)
{
	if (amd_sched_ready(sched))
		wake_up_interruptible(&sched->wait_queue);
}

/**
 * Select next entity containing real IB submissions
*/