diff options
author | Tejun Heo <tj@kernel.org> | 2024-08-04 19:07:40 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2024-08-04 19:36:54 +0200 |
commit | 0df340ceae2e51ccc6a8a19f4182f389223fbfdf (patch) | |
tree | 635f0cdae0c4a1db431cd91158db34367c9c4218 /kernel/sched/idle.c | |
parent | sched_ext: Allow p->scx.disallow only while loading (diff) | |
parent | sched/fair: Cleanup fair_server (diff) | |
download | linux-0df340ceae2e51ccc6a8a19f4182f389223fbfdf.tar.xz linux-0df340ceae2e51ccc6a8a19f4182f389223fbfdf.zip |
Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into for-6.12
Pull tip/sched/core to resolve the following four conflicts. While 2-4 are
simple context conflicts, 1 is a bit subtle and easy to resolve incorrectly.
1. 2c8d046d5d51 ("sched: Add normal_policy()")
vs.
faa42d29419d ("sched/fair: Make SCHED_IDLE entity be preempted in strict hierarchy")
The former converts direct test on p->policy to use the helper
normal_policy(). The latter moves the p->policy test to a different
location. Resolve by converting the test on p->plicy in the new location to
use normal_policy().
2. a7a9fc549293 ("sched_ext: Add boilerplate for extensible scheduler class")
vs.
a110a81c52a9 ("sched/deadline: Deferrable dl server")
Both add calls to put_prev_task_idle() and set_next_task_idle(). Simple
context conflict. Resolve by taking changes from both.
3. a7a9fc549293 ("sched_ext: Add boilerplate for extensible scheduler class")
vs.
c245910049d0 ("sched/core: Add clearing of ->dl_server in put_prev_task_balance()")
The former changes for_each_class() itertion to use for_each_active_class().
The latter moves away the adjacent dl_server handling code. Simple context
conflict. Resolve by taking changes from both.
4. 60c27fb59f6c ("sched_ext: Implement sched_ext_ops.cpu_online/offline()")
vs.
31b164e2e4af ("sched/smt: Introduce sched_smt_present_inc/dec() helper")
2f027354122f ("sched/core: Introduce sched_set_rq_on/offline() helper")
The former adds scx_rq_deactivate() call. The latter two change code around
it. Simple context conflict. Resolve by taking changes from both.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/sched/idle.c')
-rw-r--r-- | kernel/sched/idle.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c index c7a218123b7a..e53e2da04ba4 100644 --- a/kernel/sched/idle.c +++ b/kernel/sched/idle.c @@ -452,6 +452,7 @@ static void wakeup_preempt_idle(struct rq *rq, struct task_struct *p, int flags) static void put_prev_task_idle(struct rq *rq, struct task_struct *prev) { + dl_server_update_idle_time(rq, prev); scx_update_idle(rq, false); } @@ -460,6 +461,7 @@ static void set_next_task_idle(struct rq *rq, struct task_struct *next, bool fir update_idle_core(rq); scx_update_idle(rq, true); schedstat_inc(rq->sched_goidle); + next->se.exec_start = rq_clock_task(rq); } #ifdef CONFIG_SMP |