Lines Matching refs:vtime

556  * bounds the iteration and guarantees that vtime never jumps in the other
636 u64 vtime;
1381 static void apply_slice_vtime(struct task_struct *p, u64 slice, u64 vtime, u64 enq_flags)
1396 p->scx.dsq_vtime = vtime;
1594 u64 slice, u64 vtime, u64 enq_flags)
1625 * starving vtime-dispatched tasks by FIFO-dispatched tasks, we
1626 * disallow any internal DSQ from doing vtime ordering of
1629 scx_error(sch, "cannot use vtime ordering for built-in DSQs");
1635 * and vtime before the PRIQ insertion below reads the new dsq_vtime.
1638 apply_slice_vtime(p, slice, vtime, enq_flags);
1658 * that @dsq->list is vtime ordered.
1869 u64 slice, u64 vtime, u64 enq_flags)
1894 p->scx.ddsp_vtime = vtime;
1926 u64 ddsp_enq_flags, slice, vtime;
1967 vtime = p->scx.ddsp_vtime;
1970 scx_dispatch_enqueue(sch, rq, dsq, p, slice, vtime,
2736 * @vtime: vtime carried by the insert verdict, committed on PRIQ inserts
2748 u64 slice, u64 vtime, u64 enq_flags)
2761 scx_dispatch_enqueue(sch, rq, dst_dsq, p, slice, vtime,
2800 slice, vtime, enq_flags | SCX_ENQ_APPLY_SLICE);
2805 p, slice, vtime,
2809 apply_slice_vtime(p, slice, vtime, enq_flags);
2833 * @vtime: vtime carried by the insert verdict, committed on PRIQ inserts
2849 u64 slice, u64 vtime, u64 enq_flags)
2908 dispatch_to_local_dsq(sch, rq, dsq, p, slice, vtime, enq_flags);
2910 scx_dispatch_enqueue(sch, rq, dsq, p, slice, vtime,
2923 ent->slice, ent->vtime, ent->enq_flags);
4409 u64 vtime = p->scx.ddsp_vtime;
4416 dispatch_to_local_dsq(sch, rq, dsq, p, slice, vtime, enq_flags);
8887 u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags)
8894 mark_direct_dispatch(sch, ddsp_task, p, dsq_id, slice, vtime, enq_flags);
8908 .vtime = vtime,
8985 u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags)
8990 scx_dsq_insert_commit(sch, p, dsq_id, slice, vtime, enq_flags | SCX_ENQ_DSQ_PRIQ);
8999 u64 vtime;
9004 * __scx_bpf_dsq_insert_vtime - Arg-wrapped vtime DSQ insertion
9009 * @args->vtime: @p's ordering inside the vtime-sorted queue of the target DSQ
9017 * Insert @p into the vtime priority queue of the DSQ identified by
9019 * @args->vtime. All other aspects are identical to scx_bpf_dsq_insert().
9021 * @args->vtime ordering is according to time_before64() which considers
9022 * wrapping. A numerically larger vtime may indicate an earlier position in the
9048 args->vtime, args->enq_flags);
9055 u64 slice, u64 vtime, u64 enq_flags)
9083 scx_dsq_insert_vtime(sch, p, dsq_id, slice, vtime, enq_flags);
9181 * Apply vtime and slice updates before moving. @p is still on $src_dsq
9183 * rules, and the PRIQ insertion into $dst_dsq reads the new vtime.
9186 p->scx.dsq_vtime = kit->vtime;
9346 * scx_bpf_dsq_move_set_vtime - Override vtime when moving between DSQs
9348 * @vtime: task's ordering inside the vtime-sorted queue of the target DSQ
9350 * Override the vtime of the next task that will be moved from @it__iter using
9352 * vtime is kept. If scx_bpf_dsq_move() is used to dispatch the next task, the
9356 u64 vtime)
9360 kit->vtime = vtime;
9408 * @p's slice and vtime are kept by default. Use scx_bpf_dsq_move_set_slice()
9412 * scx_bpf_dsq_insert_vtime() for more information on @vtime.
9629 * @vtime: virtual time to set
9632 * Set @p's virtual time to @vtime. Returns %true on success, %false if the
9635 __bpf_kfunc bool scx_bpf_task_set_dsq_vtime(struct task_struct *p, u64 vtime,
9645 p->scx.dsq_vtime = vtime;