Re: [PATCH] sched_ext: Documentation: add note about multiple ops.enqueue() calls in a row

From: Cheng-Yang Chou

Date: Mon Apr 20 2026 - 12:18:32 EST


Hi Kuba,

On Mon, Apr 20, 2026 at 02:39:39PM +0000, Kuba Piecuch wrote:
> Commit 84b1a0ea0b7c
> ("sched_ext: Implement scx_bpf_dsq_reenq() for user DSQs")
> introduced the possibility of ops.enqueue() being called multiple times
> in a row for the same task without intervening calls to ops.dequeue().
> AFAIK this was not possible before that commit.
^^^^^
Nit: Do we really need this line in the commit message?
Perhaps we can just drop this?

> Document this behavior as it may be surprising to some.
>
> Signed-off-by: Kuba Piecuch <jpiecuch@xxxxxxxxxx>
> ---
> Documentation/scheduler/sched-ext.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
> index 03d595d178ea..fba09aa1cd4e 100644
> --- a/Documentation/scheduler/sched-ext.rst
> +++ b/Documentation/scheduler/sched-ext.rst
> @@ -339,6 +339,11 @@ The following briefly shows how a waking task is scheduled and executed.
> leaves (e.g., when ``ops.dispatch()`` moves it to a terminal DSQ, or
> on property change / sleep).
>
> + Note that ``ops.enqueue()`` can be called multiple times in a row without
> + an intervening call to ``ops.dequeue()``. This can happen, for example,
> + when a task on a user-created DSQ is re-enqueued using
> + ``scx_bpf_dsq_reenq()``. The task stays in BPF custody the entire time.
> +

Thanks for adding and clarifying this. ^v^

Acked-by: Cheng-Yang Chou <yphbchou0911@xxxxxxxxx>

> When a task leaves BPF scheduler custody, ``ops.dequeue()`` is invoked.
> The dequeue can happen for different reasons, distinguished by flags:
>
> --
> 2.54.0.rc1.555.g9c883467ad-goog
>

--
Cheers,
Cheng-Yang