···15771577 *15781578 * @p may go through multiple stopping <-> running transitions between15791579 * here and put_prev_task_scx() if task attribute changes occur while15801580- * balance_scx() leaves @rq unlocked. However, they don't contain any15801580+ * balance_one() leaves @rq unlocked. However, they don't contain any15811581 * information meaningful to the BPF scheduler and can be suppressed by15821582 * skipping the callbacks if the task is !QUEUED.15831583 */···23722372 * preempted, and it regaining control of the CPU.23732373 *23742374 * ->cpu_release() complements ->cpu_acquire(), which is emitted the23752375- * next time that balance_scx() is invoked.23752375+ * next time that balance_one() is invoked.23762376 */23772377 if (!rq->scx.cpu_released) {23782378 if (SCX_HAS_OP(sch, cpu_release)) {···24782478 }2479247924802480 /*24812481- * If balance_scx() is telling us to keep running @prev, replenish slice24812481+ * If balance_one() is telling us to keep running @prev, replenish slice24822482 * if necessary and keep running @prev. Otherwise, pop the first one24832483 * from the local DSQ.24842484 */···40254025 *40264026 * - ops.dispatch() is ignored.40274027 *40284028- * - balance_scx() does not set %SCX_RQ_BAL_KEEP on non-zero slice as slice40284028+ * - balance_one() does not set %SCX_RQ_BAL_KEEP on non-zero slice as slice40294029 * can't be trusted. Whenever a tick triggers, the running task is rotated to40304030 * the tail of the queue with core_sched_at touched.40314031 *···60696069 /*60706070 * A successfully consumed task can be dequeued before it starts60716071 * running while the CPU is trying to migrate other dispatched60726072- * tasks. Bump nr_tasks to tell balance_scx() to retry on empty60726072+ * tasks. Bump nr_tasks to tell balance_one() to retry on empty60736073 * local DSQ.60746074 */60756075 dspc->nr_tasks++;