mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
sched_ext: Documentation: Add ops.dequeue() to task lifecycle
Document ops.dequeue() in the sched_ext task lifecycle now that its semantics are well-defined. Also update the pseudo-code to use task_is_runnable() consistently and clarify the case where ops.dispatch() does not refill the time slice. Signed-off-by: Andrea Righi <arighi@nvidia.com> Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
a3c3fb2f86
commit
a4f61f0a1a
|
|
@ -422,23 +422,29 @@ by a sched_ext scheduler:
|
|||
|
||||
ops.runnable(); /* Task becomes ready to run */
|
||||
|
||||
while (task is runnable) {
|
||||
while (task_is_runnable(task)) {
|
||||
if (task is not in a DSQ && task->scx.slice == 0) {
|
||||
ops.enqueue(); /* Task can be added to a DSQ */
|
||||
|
||||
/* Any usable CPU becomes available */
|
||||
|
||||
ops.dispatch(); /* Task is moved to a local DSQ */
|
||||
|
||||
ops.dequeue(); /* Exiting BPF scheduler */
|
||||
/* Task property change (i.e., affinity, nice, etc.)? */
|
||||
if (sched_change(task)) {
|
||||
ops.dequeue(); /* Exiting BPF scheduler custody */
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Any usable CPU becomes available */
|
||||
|
||||
ops.dispatch(); /* Task is moved to a local DSQ */
|
||||
ops.dequeue(); /* Exiting BPF scheduler custody */
|
||||
|
||||
ops.running(); /* Task starts running on its assigned CPU */
|
||||
|
||||
while task_is_runnable(p) {
|
||||
while (task->scx.slice > 0 && task_is_runnable(p))
|
||||
ops.tick(); /* Called every 1/HZ seconds */
|
||||
while (task_is_runnable(task) && task->scx.slice > 0) {
|
||||
ops.tick(); /* Called every 1/HZ seconds */
|
||||
|
||||
ops.dispatch(); /* task->scx.slice can be refilled */
|
||||
if (task->scx.slice == 0)
|
||||
ops.dispatch(); /* task->scx.slice can be refilled */
|
||||
}
|
||||
|
||||
ops.stopping(); /* Task stops running (time slice expires or wait) */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user