KFunc scx_bpf_dsq_insert_vtime
This function inserts a task into the vtime
priority queue of a DSQ.
Definition
Insert p
into the vtime
priority queue of the DSQ identified by dsq_id
. Tasks queued into the priority queue are ordered by vtime
. All other aspects are identical to scx_bpf_dsq_insert
.
vtime
ordering is according to time_before64()
which considers wrapping. A numerically larger vtime may indicate an earlier position in the ordering and vice-versa.
A DSQ can only be used as a FIFO or priority queue at any given time and this function must not be called on a DSQ which already has one or more FIFO tasks queued and vice-versa. Also, the built-in DSQs (SCX_DSQ_LOCAL
and SCX_DSQ_GLOBAL
) cannot be used as priority queues.
Parameters
p
: task_struct to insert
dsq_id
: DSQ to insert into
slice
: duration p
can run for in nanoseconds, 0 to keep the current value
vtime
: p
's ordering inside the vtime-sorted queue of the target DSQ
enq_flags
: Bitfield of flags, see enum scx_enq_flags
for valid values.
Signature
void scx_bpf_dsq_insert_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags)
Usage
Docs could be improved
This part of the docs is incomplete, contributions are very welcome
Program types
The following program types can make use of this kfunc:
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome