Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

sched/fair: Remove cfs_rq::nr_spread_over and cfs_rq::exec_clock

nr_spread_over tracks the number of instances where the difference
between a scheduling entity's virtual runtime and the minimum virtual
runtime in the runqueue exceeds three times the scheduler latency,
indicating significant disparity in task scheduling.
Commit that removed its usage: 5e963f2bd: sched/fair: Commit to EEVDF

cfs_rq->exec_clock was used to account for time spent executing tasks.
Commit that removed its usage: 5d69eca542ee1 sched: Unify runtime
accounting across classes

cfs_rq::nr_spread_over and cfs_rq::exec_clock are not used anymore in
eevdf. Remove them from struct cfs_rq.

Signed-off-by: Chuyi Zhou <zhouchuyi@bytedance.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Chengming Zhou <chengming.zhou@linux.dev>
Reviewed-by: K Prateek Nayak <kprateek.nayak@amd.com>
Acked-by: Vishal Chourasia <vishalc@linux.ibm.com>
Link: https://lore.kernel.org/r/20240717143342.593262-1-zhouchuyi@bytedance.com

authored by

Chuyi Zhou and committed by
Peter Zijlstra
2c2d9624 0ec8d5ae

-10
-4
kernel/sched/debug.c
··· 641 641 SEQ_printf(m, "\n"); 642 642 SEQ_printf(m, "cfs_rq[%d]:\n", cpu); 643 643 #endif 644 - SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "exec_clock", 645 - SPLIT_NS(cfs_rq->exec_clock)); 646 644 647 645 raw_spin_rq_lock_irqsave(rq, flags); 648 646 root = __pick_root_entity(cfs_rq); ··· 667 669 SPLIT_NS(right_vruntime)); 668 670 spread = right_vruntime - left_vruntime; 669 671 SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "spread", SPLIT_NS(spread)); 670 - SEQ_printf(m, " .%-30s: %d\n", "nr_spread_over", 671 - cfs_rq->nr_spread_over); 672 672 SEQ_printf(m, " .%-30s: %d\n", "nr_running", cfs_rq->nr_running); 673 673 SEQ_printf(m, " .%-30s: %d\n", "h_nr_running", cfs_rq->h_nr_running); 674 674 SEQ_printf(m, " .%-30s: %d\n", "idle_nr_running",
-6
kernel/sched/sched.h
··· 599 599 s64 avg_vruntime; 600 600 u64 avg_load; 601 601 602 - u64 exec_clock; 603 602 u64 min_vruntime; 604 603 #ifdef CONFIG_SCHED_CORE 605 604 unsigned int forceidle_seq; ··· 617 618 */ 618 619 struct sched_entity *curr; 619 620 struct sched_entity *next; 620 - 621 - #ifdef CONFIG_SCHED_DEBUG 622 - unsigned int nr_spread_over; 623 - #endif 624 621 625 622 #ifdef CONFIG_SMP 626 623 /* ··· 1153 1158 /* latency stats */ 1154 1159 struct sched_info rq_sched_info; 1155 1160 unsigned long long rq_cpu_time; 1156 - /* could above be rq->cfs_rq.exec_clock + rq->rt_rq.rt_runtime ? */ 1157 1161 1158 1162 /* sys_sched_yield() stats */ 1159 1163 unsigned int yld_count;