drm/amdgpu: reorder scheduler functions
Keep run queue, entity and scheduler handling together. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
This commit is contained in:
parent
f495659821
commit
e688b72822
1 changed files with 28 additions and 28 deletions
|
@ -93,34 +93,6 @@ amd_sched_rq_select_entity(struct amd_sched_rq *rq)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return ture if we can push more jobs to the hw.
|
|
||||||
*/
|
|
||||||
static bool amd_sched_ready(struct amd_gpu_scheduler *sched)
|
|
||||||
{
|
|
||||||
return atomic_read(&sched->hw_rq_count) <
|
|
||||||
sched->hw_submission_limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Select next entity containing real IB submissions
|
|
||||||
*/
|
|
||||||
static struct amd_sched_entity *
|
|
||||||
amd_sched_select_context(struct amd_gpu_scheduler *sched)
|
|
||||||
{
|
|
||||||
struct amd_sched_entity *tmp;
|
|
||||||
|
|
||||||
if (!amd_sched_ready(sched))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* Kernel run queue has higher priority than normal run queue*/
|
|
||||||
tmp = amd_sched_rq_select_entity(&sched->kernel_rq);
|
|
||||||
if (tmp == NULL)
|
|
||||||
tmp = amd_sched_rq_select_entity(&sched->sched_rq);
|
|
||||||
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Init a context entity used by scheduler when submit to HW ring.
|
* Init a context entity used by scheduler when submit to HW ring.
|
||||||
*
|
*
|
||||||
|
@ -263,6 +235,34 @@ int amd_sched_push_job(struct amd_sched_job *sched_job)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return ture if we can push more jobs to the hw.
|
||||||
|
*/
|
||||||
|
static bool amd_sched_ready(struct amd_gpu_scheduler *sched)
|
||||||
|
{
|
||||||
|
return atomic_read(&sched->hw_rq_count) <
|
||||||
|
sched->hw_submission_limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select next entity containing real IB submissions
|
||||||
|
*/
|
||||||
|
static struct amd_sched_entity *
|
||||||
|
amd_sched_select_context(struct amd_gpu_scheduler *sched)
|
||||||
|
{
|
||||||
|
struct amd_sched_entity *tmp;
|
||||||
|
|
||||||
|
if (!amd_sched_ready(sched))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
/* Kernel run queue has higher priority than normal run queue*/
|
||||||
|
tmp = amd_sched_rq_select_entity(&sched->kernel_rq);
|
||||||
|
if (tmp == NULL)
|
||||||
|
tmp = amd_sched_rq_select_entity(&sched->sched_rq);
|
||||||
|
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
static void amd_sched_process_job(struct fence *f, struct fence_cb *cb)
|
static void amd_sched_process_job(struct fence *f, struct fence_cb *cb)
|
||||||
{
|
{
|
||||||
struct amd_sched_job *sched_job =
|
struct amd_sched_job *sched_job =
|
||||||
|
|
Loading…
Reference in a new issue