History

Merge tag 'sched-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler updates from Ingo Molnar: - Updates to scheduler metrics: - PELT fixes & enhancements - PSI fixes & enhancements - Refactor cpu_util_without() - Updates to instrumentation/debugging: - Remove sched_trace_*() helper functions - can be done via debug info - Fix double update_rq_clock() warnings - Introduce & use "preemption model accessors" to simplify some of the Kconfig complexity. - Make softirq handling RT-safe. - Misc smaller fixes & cleanups. * tag 'sched-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: topology: Remove unused cpu_cluster_mask() sched: Reverse sched_class layout sched/deadline: Remove superfluous rq clock update in push_dl_task() sched/core: Avoid obvious double update_rq_clock warning smp: Make softirq handling RT safe in flush_smp_call_function_queue() smp: Rename flush_smp_call_function_from_idle() sched: Fix missing prototype warnings sched/fair: Remove cfs_rq_tg_path() sched/fair: Remove sched_trace_*() helper functions sched/fair: Refactor cpu_util_without() sched/fair: Revise comment about lb decision matrix sched/psi: report zeroes for CPU full at the system level sched/fair: Delete useless condition in tg_unthrottle_up() sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq sched/fair: Move calculate of avg_load to a better location mailmap: Update my email address to @redhat.com MAINTAINERS: Add myself as scheduler topology reviewer psi: Fix trigger being fired unexpectedly at initial ftrace: Use preemption model accessors for trace header printout kcsan: Use preemption model accessors

Linus Torvalds committed 4 years ago

Commit 6f3f04c2 parents cfeb252 991d8d823 files · +213 −331Browse files

Showing the changes to include (4 of 23 files). Show all

Unified · Split

4 files
  1. include/asm-generic/vmlinux.lds.h +6 −6
  2. include/linux/interrupt.h +9 −0
  3. include/linux/sched.h +2 −14
  4. include/linux/topology.h +0 −7
include/asm-generic/vmlinux.lds.h+6−6
@@ -126,13 +126,13 @@ · 125 unmodified lines
126126 */
127127 #define SCHED_DATA \
128128 STRUCT_ALIGN(); \
129− __begin_sched_classes = .; \
130− *(__idle_sched_class) \
131− *(__fair_sched_class) \
132− *(__rt_sched_class) \
133− *(__dl_sched_class) \
129+ __sched_class_highest = .; \
134130 *(__stop_sched_class) \
135− __end_sched_classes = .;
131+ *(__dl_sched_class) \
132+ *(__rt_sched_class) \
133+ *(__fair_sched_class) \
134+ *(__idle_sched_class) \
135+ __sched_class_lowest = .;
136136
137137 /* The actual configuration determine if the init/exit sections
138138 * are handled as text/data or they can be discarded (which
include/linux/interrupt.h+9−0
@@ -589,6 +589,15 @@ struct softirq_action · 588 unmodified lines
589589 asmlinkage void do_softirq(void);
590590 asmlinkage void __do_softirq(void);
591591
592+#ifdef CONFIG_PREEMPT_RT
593+extern void do_softirq_post_smp_call_flush(unsigned int was_pending);
594+#else
595+static inline void do_softirq_post_smp_call_flush(unsigned int unused)
596+{
597+ do_softirq();
598+}
599+#endif
600+
592601 extern void open_softirq(int nr, void (*action)(struct softirq_action *));
593602 extern void softirq_init(void);
594603 extern void __raise_softirq_irqoff(unsigned int nr);
include/linux/sched.h+2−14
@@ -2382,20 +2382,6 @@ static inline void rseq_syscall(struct pt_regs *regs) · 2381 unmodified lines
23822382
23832383 #endif
23842384
2385−const struct sched_avg *sched_trace_cfs_rq_avg(struct cfs_rq *cfs_rq);
2386−char *sched_trace_cfs_rq_path(struct cfs_rq *cfs_rq, char *str, int len);
2387−int sched_trace_cfs_rq_cpu(struct cfs_rq *cfs_rq);
2388−
2389−const struct sched_avg *sched_trace_rq_avg_rt(struct rq *rq);
2390−const struct sched_avg *sched_trace_rq_avg_dl(struct rq *rq);
2391−const struct sched_avg *sched_trace_rq_avg_irq(struct rq *rq);
2392−
2393−int sched_trace_rq_cpu(struct rq *rq);
2394−int sched_trace_rq_cpu_capacity(struct rq *rq);
2395−int sched_trace_rq_nr_running(struct rq *rq);
2396−
2397−const struct cpumask *sched_trace_rd_span(struct root_domain *rd);
2398−
23992385 #ifdef CONFIG_SCHED_CORE
24002386 extern void sched_core_free(struct task_struct *tsk);
24012387 extern void sched_core_fork(struct task_struct *p);
@@ -2406,4 +2392,6 @@ static inline void sched_core_free(struct task_struct *tsk) { } · 4 unmodified lines
24062392 static inline void sched_core_fork(struct task_struct *p) { }
24072393 #endif
24082394
2395+extern void sched_set_stop_task(int cpu, struct task_struct *stop);
2396+
24092397 #endif
include/linux/topology.h+0−7
@@ -240,13 +240,6 @@ static inline const struct cpumask *cpu_smt_mask(int cpu) · 239 unmodified lines
240240 }
241241 #endif
242242
243−#if defined(CONFIG_SCHED_CLUSTER) && !defined(cpu_cluster_mask)
244−static inline const struct cpumask *cpu_cluster_mask(int cpu)
245−{
246− return topology_cluster_cpumask(cpu);
247−}
248−#endif
249−
250243 static inline const struct cpumask *cpu_cpu_mask(int cpu)
251244 {
252245 return cpumask_of_node(cpu_to_node(cpu));