Am 13.07.2018 um 09:20 schrieb Nayan Deshmukh:
On Thu, Jul 12, 2018 at 11:21 PM Eric Anholt eric@anholt.net wrote:
Nayan Deshmukh nayan26deshmukh@gmail.com writes:
diff --git a/drivers/gpu/drm/scheduler/gpu_scheduler.c b/drivers/gpu/drm/scheduler/gpu_scheduler.c index 3dc1a4f07e3f..b2dbd1c1ba69 100644 --- a/drivers/gpu/drm/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/scheduler/gpu_scheduler.c @@ -162,26 +162,32 @@ drm_sched_rq_select_entity(struct drm_sched_rq *rq)
- drm_sched_entity_init - Init a context entity used by scheduler when
- submit to HW ring.
- @sched: scheduler instance
- @entity: scheduler entity to init
- @rq: the run queue this entity belongs
- @rq_list: the list of run queue on which jobs from this
entity can be submitted
- @num_rq_list: number of run queue in rq_list
- @guilty: atomic_t set to 1 when a job on this queue
is found to be guilty causing a timeout
- Note: the rq_list should have atleast one element to schedule
the entity
*/
- Returns 0 on success or a negative error code on failure.
-int drm_sched_entity_init(struct drm_gpu_scheduler *sched,
struct drm_sched_entity *entity,
struct drm_sched_rq *rq,
+int drm_sched_entity_init(struct drm_sched_entity *entity,
struct drm_sched_rq **rq_list,
{unsigned int num_rq_list, atomic_t *guilty)
if (!(sched && entity && rq))
if (!(entity && rq_list && num_rq_list > 0 && rq_list[0])) return -EINVAL; memset(entity, 0, sizeof(struct drm_sched_entity)); INIT_LIST_HEAD(&entity->list);
entity->rq = rq;
entity->sched = sched;
entity->rq_list = NULL;
entity->rq = rq_list[0];
entity->sched = rq_list[0]->sched;
entity->num_rq_list = num_rq_list;
The API change makes sense as prep work, but I don't really like adding the field to the struct (and changing the struct's docs for the existing rq field) if it's going to always be NULL until a future change.
Similarly, I'd rather see patch 2 as part of a series that uses the value.
I agree with you. I am fine with dropping the patch 2 for now and modifying patch 3. I am fine either way.
What are your thoughts on this Christian?
Ok with me as well. In this case just send out the two patches with the API change.
Christian.
That said, while I don't currently have a usecase for load-balancing between entities, I may in the future, so thanks for working on this!