From: Andrea Righi <arighi@nvidia.com>
To: Tejun Heo <tj@kernel.org>
Cc: David Vernet <void@manifault.com>,
Changwoo Min <changwoo@igalia.com>,
John Stultz <jstultz@google.com>, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
K Prateek Nayak <kprateek.nayak@amd.com>,
Christian Loehle <christian.loehle@arm.com>,
David Dai <david.dai@linux.dev>, Koba Ko <kobak@nvidia.com>,
Aiqun Yu <aiqun.yu@oss.qualcomm.com>,
Shuah Khan <shuah@kernel.org>,
sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 07/15] sched_ext: Block proxy donors across scheduler transitions
Date: Thu, 6 Aug 2026 11:07:11 +0200 [thread overview]
Message-ID: <anROv0yJJJCrR1gy@gpd4> (raw)
In-Reply-To: <anLf8lH8icsdd3Yl@gpd4>
On Wed, Aug 05, 2026 at 09:02:10AM +0200, Andrea Righi wrote:
> Hi Tejun,
>
> On Mon, Aug 03, 2026 at 10:36:40AM -1000, Tejun Heo wrote:
> > On Tue, Jul 28, 2026 at 05:43:25PM +0200, Andrea Righi wrote:
> > ...
> > > +static void prepare_switch_scx(struct rq *rq, struct task_struct *p)
> > > +{
> > > + lockdep_assert_held(&p->pi_lock);
> > > + lockdep_assert_rq_held(rq);
> > > +
> > > + sched_proxy_block_task(rq, p);
> > > }
> >
> > Are there use cases where proxy execution instance needs to survive across
> > class changes (the mutex rt PI, maybe)? If not, maybe this can be the global
> > behavior?
>
> I think RT/DL PI is a use case where a proxy donor needs to survive a class
> change. Example:
>
> H (RT) waits on rtmutex R owned by D
> D (FAIR) waits on normal mutex M owned by O
>
> rt_mutex_setprio(D, H) promotes D from FAIR to RT. If D remains a retained proxy
> donor, its new RT scheduling context can proxy-exec O, allowing O to release M,
> then D to release R.
>
> If every class transition called sched_proxy_block_task(), D would be removed
> from the runqueue when FAIR->RT occurs. The PI boost would then stop at the
> ordinary mutex boundary, and O would execute only under its own scheduling
> context. The same issue exists for RT/DL deboost transitions.
>
> Potentially this could be generalized in core as a per-class "supports retained
> proxy donors" capability, but unconditional global blocking would discard useful
> PI behavior.
Following up on my response to patch 12 (which essentially contradicts my
earlier response here), we can probably take a more conservative approach for
now and leave more selective handling for future work.
While preserving a proxy session across some RT/DL PI class transitions is
useful, terminating retained proxy execution centrally in sched_change_begin(),
whenever the scheduling class changes, simplifies the implementation and it can
make the initial integration safer.
In the next version of this series I'll document this limitation in both the
code and patch description and leave support for compatible RT/DL PI transitions
as a future improvement.
Thanks,
-Andrea
next prev parent reply other threads:[~2026-08-06 9:07 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-28 15:43 [PATCHSET v10 sched_ext/for-7.3] sched: Make proxy execution compatible with sched_ext Andrea Righi
2026-07-28 15:43 ` [PATCH 01/15] sched/core: Avoid false migration warning for proxy donors Andrea Righi
2026-07-28 15:43 ` [PATCH 02/15] sched: Make NOHZ CFS bandwidth checks follow proxy donor Andrea Righi
2026-07-28 15:43 ` [PATCH 03/15] sched: Add helper to block retained proxy donors Andrea Righi
2026-07-28 15:43 ` [PATCH 04/15] sched: Skip class callbacks with SCHED_FLAG_KEEP_PARAMS Andrea Righi
2026-07-28 15:43 ` [PATCH 05/15] sched: Add prepare_switch() class callback Andrea Righi
2026-07-28 15:43 ` [PATCH 06/15] sched: Add sched_ext hooks for proxy execution Andrea Righi
2026-07-28 15:43 ` [PATCH 07/15] sched_ext: Block proxy donors across scheduler transitions Andrea Righi
2026-08-03 20:36 ` Tejun Heo
2026-08-05 7:02 ` Andrea Righi
2026-08-06 9:07 ` Andrea Righi [this message]
2026-07-28 15:43 ` [PATCH 08/15] sched_ext: Fix ops.running/stopping() pairing for proxy-exec donors Andrea Righi
2026-07-28 15:43 ` [PATCH 09/15] sched_ext: Generalize the reject DSQ reenqueue path Andrea Righi
2026-08-03 20:35 ` Tejun Heo
2026-08-03 20:38 ` Tejun Heo
2026-08-05 8:50 ` Andrea Righi
2026-07-28 15:43 ` [PATCH 10/15] sched_ext: Handle proxy-exec races in remote DSQ transfers Andrea Righi
2026-08-03 21:36 ` Tejun Heo
2026-08-05 16:44 ` Andrea Righi
2026-07-28 15:43 ` [PATCH 11/15] sched_ext: Split curr|donor references properly Andrea Righi
2026-07-28 15:43 ` [PATCH 12/15] sched_ext: Delegate proxy donor admission to BPF schedulers Andrea Righi
2026-08-03 22:18 ` Tejun Heo
2026-08-06 6:10 ` Andrea Righi
2026-07-28 15:43 ` [PATCH 13/15] sched_ext: Add selftest for blocked donor admission Andrea Righi
2026-07-28 15:43 ` [PATCH 14/15] sched_ext: scx_qmap: Add proxy execution support Andrea Righi
2026-08-03 22:22 ` Tejun Heo
2026-08-06 7:28 ` Andrea Righi
2026-07-28 15:43 ` [PATCH 15/15] sched: Allow enabling proxy exec with sched_ext Andrea Righi
2026-08-03 22:19 ` Tejun Heo
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=anROv0yJJJCrR1gy@gpd4 \
--to=arighi@nvidia.com \
--cc=aiqun.yu@oss.qualcomm.com \
--cc=bsegall@google.com \
--cc=changwoo@igalia.com \
--cc=christian.loehle@arm.com \
--cc=david.dai@linux.dev \
--cc=dietmar.eggemann@arm.com \
--cc=jstultz@google.com \
--cc=juri.lelli@redhat.com \
--cc=kobak@nvidia.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sched-ext@lists.linux.dev \
--cc=shuah@kernel.org \
--cc=tj@kernel.org \
--cc=vincent.guittot@linaro.org \
--cc=void@manifault.com \
--cc=vschneid@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox