From: Peter Zijlstra <peterz@infradead.org>
To: mingo@kernel.org, tj@kernel.org, void@manifault.com
Cc: peterz@infradead.org, juri.lelli@redhat.com,
vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
vschneid@redhat.com, linux-kernel@vger.kernel.org,
joelaf@google.com
Subject: [PATCH 0/9] sched: Prepare for sched_ext
Date: Wed, 14 Aug 2024 00:25:48 +0200 [thread overview]
Message-ID: <20240813222548.049744955@infradead.org> (raw)
Hi,
These patches apply on top of the EEVDF series (queue/sched/core), which
re-arranges the fair pick_task() functions to make them state invariant such
that they can easily be restarted upon picking (and dequeueing) a delayed task.
This same is required to push (the final) put_prev_task() beyond pick_task(),
like we do for sched_core already.
This in turn is done to prepare for sched_ext, which wants a final callback to
be in possesion of the next task, such that it can tell if the context switch
will leave the sched_class.
As such, this all re-arranges the current order of:
put_prev_task(rq, prev);
next = pick_next_task(rq); /* implies set_next_task(.first=true); */
to sometihng like:
next = pick_task(rq)
if (next != prev) {
put_prev_task(rq, prev, next);
set_next_task(rq, next, true);
}
The patches do a fair bit of cleaning up. Notably a bunch of sched_core stuff
-- Joel, could you please test this stuff, because the self-tests we have are
hardly adequate.
The EEVDF stuff was supposed to be merged already, but since Valentin seems to
be doing a read-through, I figured I'd give him a little extra time. A complete
set can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/prep
next reply other threads:[~2024-08-13 22:50 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 22:25 Peter Zijlstra [this message]
2024-08-13 22:25 ` [PATCH 1/9] sched: Use set_next_task(.first) where required Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 2/9] sched: Fixup set_next_task() implementations Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 3/9] sched: Clean up DL server vs core sched Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 4/9] sched: Split up put_prev_task_balance() Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 5/9] sched: Rework pick_next_task() Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 6/9] sched: Combine the last put_prev_task() and the first set_next_task() Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 7/9] sched: Rework dl_server Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 8/9] sched: Add put_prev_task(.next) Peter Zijlstra
2024-09-03 13:38 ` [tip: sched/core] " tip-bot2 for Peter Zijlstra
2024-08-13 22:25 ` [PATCH 9/9] sched: Add pick_task(.core) Peter Zijlstra
2024-08-13 22:59 ` Peter Zijlstra
2024-08-14 10:42 ` Juri Lelli
2024-08-21 23:05 ` Tejun Heo
2024-09-03 13:31 ` Peter Zijlstra
2024-08-17 21:56 ` [PATCH 0/9] sched: Prepare for sched_ext Joel Fernandes
2024-08-21 21:41 ` Joel Fernandes
2024-08-22 12:58 ` Joel Fernandes
2024-08-22 13:15 ` Joel Fernandes
2024-08-22 13:37 ` Joel Fernandes
2024-08-22 15:48 ` Peter Zijlstra
2024-09-04 13:56 ` Peter Zijlstra
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=20240813222548.049744955@infradead.org \
--to=peterz@infradead.org \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=joelaf@google.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=rostedt@goodmis.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 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.