Lines Matching full:scheduler

27  * The GPU scheduler provides entities which allow userspace to push jobs
29 * The software queues have a priority among them. The scheduler selects the entities
30 * from the run queue using a FIFO. The scheduler provides dependency handling
32 * backend operations to the scheduler like submitting a job to hardware run queue,
35 * The organisation of the scheduler is the following:
37 * 1. Each hw run queue has one scheduler
38 * 2. Each scheduler has multiple run queues with different priorities
40 * 3. Each scheduler run queue has a queue of entities to schedule
54 * The DRM GPU scheduler provides a flow control mechanism to regulate the rate
55 * in which the jobs fetched from scheduler entities are executed.
58 * credit limit representing the capacity of this scheduler and a credit count;
62 * to the scheduler's credit count until the job is finished. If by executing
63 * one more job the scheduler's credit count would exceed the scheduler's
64 * credit limit, the job won't be executed. Instead, the scheduler will wait
114 * @sched: scheduler instance
115 * @entity: the scheduler entity
182 * @sched: scheduler instance to associate with this run queue
183 * @rq: scheduler run queue
185 * Initializes a scheduler runqueue.
200 * @rq: scheduler run queue
201 * @entity: scheduler entity
203 * Adds a scheduler entity to the run queue.
221 * @rq: scheduler run queue
222 * @entity: scheduler entity
224 * Removes a scheduler entity from the run queue.
251 * @sched: the gpu scheduler
252 * @rq: scheduler run queue to check.
257 * entity was ready, but the scheduler had insufficient credits to accommodate
316 * @sched: the gpu scheduler
317 * @rq: scheduler run queue to check.
322 * entity was ready, but the scheduler had insufficient credits to accommodate
356 * @sched: scheduler instance
366 * @sched: scheduler instance
376 * @sched: scheduler instance
427 * @sched: scheduler instance to start the worker for
429 * Start the timeout for the given scheduler.
450 * @sched: scheduler for which the timeout handling should be started.
452 * Start timeout handling immediately for the named scheduler.
466 * @sched: scheduler where the timeout handling should be started.
478 * drm_sched_suspend_timeout - Suspend scheduler job timeout
480 * @sched: scheduler instance for which to suspend the timeout
482 * Suspend the delayed work timeout for the scheduler. This is done by
508 * drm_sched_resume_timeout - Resume scheduler job timeout
510 * @sched: scheduler instance for which to resume the timeout
513 * Resume the delayed work timeout for the scheduler.
580 * drm_sched_stop - stop the scheduler
582 * @sched: scheduler instance
585 * Stop the scheduler and also removes and frees all completed jobs.
592 * scheduler teardown, i.e., before calling drm_sched_fini().
605 * now until the scheduler thread is unparked. in drm_sched_stop()
670 * @sched: scheduler instance
675 * scheduler startup. The scheduler itself is fully operational after
710 * @sched: scheduler instance
721 * we shouldn't make this a general scheduler feature around the dma_fence
761 * drm_sched_job_init - init a scheduler job
762 * @job: scheduler job to init
763 * @entity: scheduler entity to use
826 * drm_sched_job_arm - arm a scheduler job for execution
827 * @job: scheduler job to arm
829 * This arms a scheduler job for execution. Specifically it initializes the
857 * @job: scheduler job to add the dependencies to
903 * @job: scheduler job to add the dependencies to
931 * @job: scheduler job to add the dependencies to
967 * @job: scheduler job to add the dependencies to
990 * @job: scheduler job to check
1012 * drm_sched_job_cleanup - clean up scheduler job resources
1013 * @job: scheduler job to clean up
1050 * drm_sched_wakeup - Wake up the scheduler if it is ready to queue
1051 * @sched: scheduler instance
1053 * Wake up the scheduler if we can queue jobs.
1063 * @sched: scheduler instance
1093 * @sched: scheduler instance
1155 DRM_WARN("scheduler %s is not ready, skipping", in drm_sched_pick_best()
1247 * drm_sched_init - Init a gpu scheduler instance
1249 * @sched: scheduler instance
1250 * @args: scheduler initialization arguments
1278 dev_warn(sched->dev, "%s: scheduler already initialized!\n", __func__); in drm_sched_init()
1333 dev_err(sched->dev, "%s: Failed to setup GPU scheduler--out of memory\n", __func__); in drm_sched_init()
1339 * drm_sched_fini - Destroy a gpu scheduler
1341 * @sched: scheduler instance
1343 * Tears down and cleans up the scheduler.
1381 /* Wakeup everyone stuck in drm_sched_entity_flush for this scheduler */ in drm_sched_fini()
1401 * limit of the scheduler then the respective sched entity is marked guilty and
1439 * drm_sched_wqueue_ready - Is the scheduler ready for submission
1441 * @sched: scheduler instance
1452 * drm_sched_wqueue_stop - stop scheduler submission
1453 * @sched: scheduler instance
1455 * Stops the scheduler from pulling new jobs from entities. It also stops
1467 * drm_sched_wqueue_start - start scheduler submission
1468 * @sched: scheduler instance
1470 * Restarts the scheduler after drm_sched_wqueue_stop() has stopped it.
1472 * This function is not necessary for 'conventional' startup. The scheduler is