Skip to content

KFunc scx_bpf_dsq_insert_vtime

v6.13

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