From: sashiko-bot@kernel.org
To: "Andrea Righi" <arighi@nvidia.com>
Cc: sched-ext@lists.linux.dev
Subject: Re: [PATCH 01/15] sched: Make NOHZ CFS bandwidth checks follow proxy donor
Date: Mon, 10 Aug 2026 15:35:25 +0000 [thread overview]
Message-ID: <20260810153526.95E911F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260810151523.86994-2-arighi@nvidia.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] NOHZ_FULL isolation is broken for RT tasks that preempt a constrained FAIR task because the tick dependency is erroneously kept active.
--
--- Patch [1]: [PATCH 01/15] sched: Make NOHZ CFS bandwidth checks follow proxy donor ---
commit 4ed25113b5b2751dc0d63ef337fd5d561e7a7554
Author: Andrea Righi <arighi@nvidia.com>
sched: Make NOHZ CFS bandwidth checks follow proxy donor
This commit updates the NOHZ CFS bandwidth checks to evaluate the proxy
donor rather than the physical execution context. This ensures that a
retained proxy donor correctly enforces bandwidth accounting even when
the lock owner is queued in another scheduling class.
Link: https://lore.kernel.org/r/20260713164807.E5ED21F00A3A@smtp.kernel.org
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 0697ed0f1c3d2..6e835d2780cfd 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
[ ... ]
> @@ -1431,6 +1428,14 @@ bool sched_can_stop_tick(struct rq *rq)
> if (rq->dl.dl_nr_running)
> return false;
>
> + /*
> + * The selected scheduling context can be a constrained FAIR donor even
> + * when rq->curr is an RT task. Check it before the RT fast paths below,
> + * which may report that the tick can stop for a throttled RT context.
> + */
> + if (__need_bw_check(rq->donor) && cfs_task_bw_constrained(rq->donor))
> + return false;
> +
[Severity: High]
Does evaluating rq->donor here during enqueue cause an issue when an RT task
wakes up on a NOHZ_FULL CPU that is currently running a bandwidth-constrained
FAIR task?
During the RT task wakeup, the enqueue path reaches this check before the
context switch:
enqueue_task_rt() -> add_nr_running() -> sched_update_tick_dependency() ->
sched_can_stop_tick()
At this point, rq->donor has not yet been updated and still points to the
currently running FAIR task. This causes the check to return false, which
keeps the TICK_DEP_BIT_SCHED dependency set.
After the context switch to the RT task, rq->donor is updated, but
sched_update_tick_dependency() is not called again on context switch, and
set_next_task_rt() does not actively clear the tick dependency.
Could this cause the incoming RT task to run with the timer tick erroneously
enabled, breaking NOHZ_FULL isolation?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260810151523.86994-1-arighi@nvidia.com?part=1
next prev parent reply other threads:[~2026-08-10 15:35 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 15:13 [PATCHSET v11 sched_ext/for-7.3] sched: Make proxy execution compatible with sched_ext Andrea Righi
2026-08-10 15:13 ` [PATCH 01/15] sched: Make NOHZ CFS bandwidth checks follow proxy donor Andrea Righi
2026-08-10 15:35 ` sashiko-bot [this message]
2026-08-10 15:13 ` [PATCH 02/15] sched/core: Avoid false migration warning for proxy donors Andrea Righi
2026-08-10 15:13 ` [PATCH 03/15] sched: Pass next class to sched_change_begin() Andrea Righi
2026-08-10 15:13 ` [PATCH 04/15] sched: Add helper to block retained proxy donors Andrea Righi
2026-08-10 15:13 ` [PATCH 05/15] sched: Add sched_ext hooks for proxy execution Andrea Righi
2026-08-10 15:13 ` [PATCH 06/15] sched_ext: Block proxy donors across scheduler transitions Andrea Righi
2026-08-10 15:13 ` [PATCH 07/15] sched_ext: Fix ops.running/stopping() pairing for proxy-exec donors Andrea Righi
2026-08-10 15:13 ` [PATCH 08/15] sched_ext: Move reject DSQ draining into core Andrea Righi
2026-08-10 15:13 ` [PATCH 09/15] sched_ext: Generalize the reject DSQ reenqueue path Andrea Righi
2026-08-10 15:55 ` sashiko-bot
2026-08-10 15:13 ` [PATCH 10/15] sched_ext: Handle proxy-exec races in remote DSQ transfers Andrea Righi
2026-08-10 16:04 ` sashiko-bot
2026-08-10 15:13 ` [PATCH 11/15] sched_ext: Split curr|donor references properly Andrea Righi
2026-08-10 16:06 ` sashiko-bot
2026-08-10 15:13 ` [PATCH 12/15] sched_ext: Delegate proxy donor admission to BPF schedulers Andrea Righi
2026-08-10 15:13 ` [PATCH 13/15] sched_ext: Add selftest for blocked donor admission Andrea Righi
2026-08-10 15:14 ` [PATCH 14/15] sched_ext: scx_qmap: Add proxy execution support Andrea Righi
2026-08-10 15:14 ` [PATCH 15/15] sched: Allow enabling proxy exec with sched_ext Andrea Righi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260810153526.95E911F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=arighi@nvidia.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=sched-ext@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.