Skip to content

Commit 32b2253

Browse files
committed
Merge tag 'sched-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar: "Core & fair scheduler changes: - Cancel the slice protection of the idle entity (Zihan Zhou) - Reduce the default slice to avoid tasks getting an extra tick (Zihan Zhou) - Force propagating min_slice of cfs_rq when {en,de}queue tasks (Tianchen Ding) - Refactor can_migrate_task() to elimate looping (I Hsin Cheng) - Add unlikey branch hints to several system calls (Colin Ian King) - Optimize current_clr_polling() on certain architectures (Yujun Dong) Deadline scheduler: (Juri Lelli) - Remove redundant dl_clear_root_domain call - Move dl_rebuild_rd_accounting to cpuset.h Uclamp: - Use the uclamp_is_used() helper instead of open-coding it (Xuewen Yan) - Optimize sched_uclamp_used static key enabling (Xuewen Yan) Scheduler topology support: (Juri Lelli) - Ignore special tasks when rebuilding domains - Add wrappers for sched_domains_mutex - Generalize unique visiting of root domains - Rebuild root domain accounting after every update - Remove partition_and_rebuild_sched_domains - Stop exposing partition_sched_domains_locked RSEQ: (Michael Jeanson) - Update kernel fields in lockstep with CONFIG_DEBUG_RSEQ=y - Fix segfault on registration when rseq_cs is non-zero - selftests: Add rseq syscall errors test - selftests: Ensure the rseq ABI TLS is actually 1024 bytes Membarriers: - Fix redundant load of membarrier_state (Nysal Jan K.A.) Scheduler debugging: - Introduce and use preempt_model_str() (Sebastian Andrzej Siewior) - Make CONFIG_SCHED_DEBUG unconditional (Ingo Molnar) Fixes and cleanups: - Always save/restore x86 TSC sched_clock() on suspend/resume (Guilherme G. Piccoli) - Misc fixes and cleanups (Thorsten Blum, Juri Lelli, Sebastian Andrzej Siewior)" * tag 'sched-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits) cpuidle, sched: Use smp_mb__after_atomic() in current_clr_polling() sched/debug: Remove CONFIG_SCHED_DEBUG sched/debug: Remove CONFIG_SCHED_DEBUG from self-test config files sched/debug, Documentation: Remove (most) CONFIG_SCHED_DEBUG references from documentation sched/debug: Make CONFIG_SCHED_DEBUG functionality unconditional sched/debug: Make 'const_debug' tunables unconditional __read_mostly sched/debug: Change SCHED_WARN_ON() to WARN_ON_ONCE() rseq/selftests: Fix namespace collision with rseq UAPI header include/{topology,cpuset}: Move dl_rebuild_rd_accounting to cpuset.h sched/topology: Stop exposing partition_sched_domains_locked cgroup/cpuset: Remove partition_and_rebuild_sched_domains sched/topology: Remove redundant dl_clear_root_domain call sched/deadline: Rebuild root domain accounting after every update sched/deadline: Generalize unique visiting of root domains sched/topology: Wrappers for sched_domains_mutex sched/deadline: Ignore special tasks when rebuilding domains tracing: Use preempt_model_str() xtensa: Rely on generic printing of preemption model x86: Rely on generic printing of preemption model s390: Rely on generic printing of preemption model ...
2 parents 5a658af + 3785c7d commit 32b2253

File tree

50 files changed

+589
-441
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+589
-441
lines changed

Documentation/scheduler/sched-debug.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Scheduler debugfs
33
=================
44

5-
Booting a kernel with CONFIG_SCHED_DEBUG=y will give access to
5+
Booting a kernel with debugfs enabled will give access to
66
scheduler specific debug files under /sys/kernel/debug/sched. Some of
77
those files are described below.
88

Documentation/scheduler/sched-design-CFS.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ picked and the current task is preempted.
9696
CFS uses nanosecond granularity accounting and does not rely on any jiffies or
9797
other HZ detail. Thus the CFS scheduler has no notion of "timeslices" in the
9898
way the previous scheduler had, and has no heuristics whatsoever. There is
99-
only one central tunable (you have to switch on CONFIG_SCHED_DEBUG):
99+
only one central tunable:
100100

101101
/sys/kernel/debug/sched/base_slice_ns
102102

Documentation/scheduler/sched-domains.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,8 @@ Architectures may override the generic domain builder and the default SD flags
7373
for a given topology level by creating a sched_domain_topology_level array and
7474
calling set_sched_topology() with this array as the parameter.
7575

76-
The sched-domains debugging infrastructure can be enabled by enabling
77-
CONFIG_SCHED_DEBUG and adding 'sched_verbose' to your cmdline. If you
78-
forgot to tweak your cmdline, you can also flip the
76+
The sched-domains debugging infrastructure can be enabled by 'sched_verbose'
77+
to your cmdline. If you forgot to tweak your cmdline, you can also flip the
7978
/sys/kernel/debug/sched/verbose knob. This enables an error checking parse of
8079
the sched domains which should catch most possible errors (described above). It
8180
also prints out the domain structure in a visual format.

Documentation/scheduler/sched-ext.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ detailed information:
107107
nr_rejected : 0
108108
enable_seq : 1
109109
110-
If ``CONFIG_SCHED_DEBUG`` is set, whether a given task is on sched_ext can
111-
be determined as follows:
110+
Whether a given task is on sched_ext can be determined as follows:
112111

113112
.. code-block:: none
114113

Documentation/scheduler/sched-stats.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ One of these is produced per domain for each cpu described. (Note that if
8888
CONFIG_SMP is not defined, *no* domains are utilized and these lines
8989
will not appear in the output. <name> is an extension to the domain field
9090
that prints the name of the corresponding sched domain. It can appear in
91-
schedstat version 17 and above, and requires CONFIG_SCHED_DEBUG.)
91+
schedstat version 17 and above.
9292

9393
domain<N> <name> <cpumask> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
9494

Documentation/translations/sp_SP/scheduler/sched-design-CFS.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ CFS usa una granularidad de nanosegundos y no depende de ningún
112112
jiffy o detalles como HZ. De este modo, el gestor de tareas CFS no tiene
113113
noción de "ventanas de tiempo" de la forma en que tenía el gestor de
114114
tareas previo, y tampoco tiene heurísticos. Únicamente hay un parámetro
115-
central ajustable (se ha de cambiar en CONFIG_SCHED_DEBUG):
115+
central ajustable:
116116

117117
/sys/kernel/debug/sched/base_slice_ns
118118

arch/arm/kernel/traps.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -258,13 +258,6 @@ void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
258258
barrier();
259259
}
260260

261-
#ifdef CONFIG_PREEMPT
262-
#define S_PREEMPT " PREEMPT"
263-
#elif defined(CONFIG_PREEMPT_RT)
264-
#define S_PREEMPT " PREEMPT_RT"
265-
#else
266-
#define S_PREEMPT ""
267-
#endif
268261
#ifdef CONFIG_SMP
269262
#define S_SMP " SMP"
270263
#else
@@ -282,8 +275,8 @@ static int __die(const char *str, int err, struct pt_regs *regs)
282275
static int die_counter;
283276
int ret;
284277

285-
pr_emerg("Internal error: %s: %x [#%d]" S_PREEMPT S_SMP S_ISA "\n",
286-
str, err, ++die_counter);
278+
pr_emerg("Internal error: %s: %x [#%d]" S_SMP S_ISA "\n",
279+
str, err, ++die_counter);
287280

288281
/* trap and error numbers are mostly meaningless on ARM */
289282
ret = notify_die(DIE_OOPS, str, regs, err, tsk->thread.trap_no, SIGSEGV);

arch/arm64/kernel/traps.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,22 +172,14 @@ static void dump_kernel_instr(const char *lvl, struct pt_regs *regs)
172172
printk("%sCode: %s\n", lvl, str);
173173
}
174174

175-
#ifdef CONFIG_PREEMPT
176-
#define S_PREEMPT " PREEMPT"
177-
#elif defined(CONFIG_PREEMPT_RT)
178-
#define S_PREEMPT " PREEMPT_RT"
179-
#else
180-
#define S_PREEMPT ""
181-
#endif
182-
183175
#define S_SMP " SMP"
184176

185177
static int __die(const char *str, long err, struct pt_regs *regs)
186178
{
187179
static int die_counter;
188180
int ret;
189181

190-
pr_emerg("Internal error: %s: %016lx [#%d]" S_PREEMPT S_SMP "\n",
182+
pr_emerg("Internal error: %s: %016lx [#%d] " S_SMP "\n",
191183
str, err, ++die_counter);
192184

193185
/* trap and error numbers are mostly meaningless on ARM */

arch/powerpc/kernel/traps.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,9 @@ static int __die(const char *str, struct pt_regs *regs, long err)
263263
{
264264
printk("Oops: %s, sig: %ld [#%d]\n", str, err, ++die_counter);
265265

266-
printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s %s\n",
266+
printk("%s PAGE_SIZE=%luK%s %s%s%s%s %s\n",
267267
IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN) ? "LE" : "BE",
268268
PAGE_SIZE / 1024, get_mmu_str(),
269-
IS_ENABLED(CONFIG_PREEMPT) ? " PREEMPT" : "",
270269
IS_ENABLED(CONFIG_SMP) ? " SMP" : "",
271270
IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "",
272271
debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "",

arch/s390/kernel/dumpstack.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,13 +198,8 @@ void __noreturn die(struct pt_regs *regs, const char *str)
198198
console_verbose();
199199
spin_lock_irq(&die_lock);
200200
bust_spinlocks(1);
201-
printk("%s: %04x ilc:%d [#%d] ", str, regs->int_code & 0xffff,
201+
printk("%s: %04x ilc:%d [#%d]", str, regs->int_code & 0xffff,
202202
regs->int_code >> 17, ++die_counter);
203-
#ifdef CONFIG_PREEMPT
204-
pr_cont("PREEMPT ");
205-
#elif defined(CONFIG_PREEMPT_RT)
206-
pr_cont("PREEMPT_RT ");
207-
#endif
208203
pr_cont("SMP ");
209204
if (debug_pagealloc_enabled())
210205
pr_cont("DEBUG_PAGEALLOC");

0 commit comments

Comments
 (0)