Skip to content

Commit

Permalink
drm/amdgpu: wake up scheduler only when neccessary
Browse files Browse the repository at this point in the history
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
  • Loading branch information
Christian König authored and Alex Deucher committed Aug 26, 2015
1 parent 062c7fb commit 8807900
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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
*/
Expand Down

0 comments on commit 8807900

Please sign in to comment.