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
126 */126 */
127#define SCHED_DATA \127#define SCHED_DATA \
128 STRUCT_ALIGN(); \128 STRUCT_ALIGN(); \
129 __begin_sched_classes = .; \129 __sched_class_highest = .; \
130 *(__idle_sched_class) \
131 *(__fair_sched_class) \
132 *(__rt_sched_class) \
133 *(__dl_sched_class) \
134 *(__stop_sched_class) \130 *(__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 = .;
136 136
137/* The actual configuration determine if the init/exit sections137/* The actual configuration determine if the init/exit sections
138 * are handled as text/data or they can be discarded (which138 * 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
589asmlinkage void do_softirq(void);589asmlinkage void do_softirq(void);
590asmlinkage void __do_softirq(void);590asmlinkage void __do_softirq(void);
591 591
592#ifdef CONFIG_PREEMPT_RT
593extern void do_softirq_post_smp_call_flush(unsigned int was_pending);
594#else
595static inline void do_softirq_post_smp_call_flush(unsigned int unused)
596{
597 do_softirq();
598}
599#endif
600
592extern void open_softirq(int nr, void (*action)(struct softirq_action *));601extern void open_softirq(int nr, void (*action)(struct softirq_action *));
593extern void softirq_init(void);602extern void softirq_init(void);
594extern void __raise_softirq_irqoff(unsigned int nr);603extern 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
2382 2382
2383#endif2383#endif
2384 2384
2385const struct sched_avg *sched_trace_cfs_rq_avg(struct cfs_rq *cfs_rq);
2386char *sched_trace_cfs_rq_path(struct cfs_rq *cfs_rq, char *str, int len);
2387int sched_trace_cfs_rq_cpu(struct cfs_rq *cfs_rq);
2388
2389const struct sched_avg *sched_trace_rq_avg_rt(struct rq *rq);
2390const struct sched_avg *sched_trace_rq_avg_dl(struct rq *rq);
2391const struct sched_avg *sched_trace_rq_avg_irq(struct rq *rq);
2392
2393int sched_trace_rq_cpu(struct rq *rq);
2394int sched_trace_rq_cpu_capacity(struct rq *rq);
2395int sched_trace_rq_nr_running(struct rq *rq);
2396
2397const struct cpumask *sched_trace_rd_span(struct root_domain *rd);
2398
2399#ifdef CONFIG_SCHED_CORE2385#ifdef CONFIG_SCHED_CORE
2400extern void sched_core_free(struct task_struct *tsk);2386extern void sched_core_free(struct task_struct *tsk);
2401extern void sched_core_fork(struct task_struct *p);2387extern 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
2406static inline void sched_core_fork(struct task_struct *p) { }2392static inline void sched_core_fork(struct task_struct *p) { }
2407#endif2393#endif
2408 2394
2395extern void sched_set_stop_task(int cpu, struct task_struct *stop);
2396
2409#endif2397#endif
include/linux/topology.h+0−7
@@ -240,13 +240,6 @@ static inline const struct cpumask *cpu_smt_mask(int cpu) · 239 unmodified lines
240}240}
241#endif241#endif
242 242
243#if defined(CONFIG_SCHED_CLUSTER) && !defined(cpu_cluster_mask)
244static inline const struct cpumask *cpu_cluster_mask(int cpu)
245{
246 return topology_cluster_cpumask(cpu);
247}
248#endif
249
250static inline const struct cpumask *cpu_cpu_mask(int cpu)243static inline const struct cpumask *cpu_cpu_mask(int cpu)
251{244{
252 return cpumask_of_node(cpu_to_node(cpu));245 return cpumask_of_node(cpu_to_node(cpu));