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.

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Ingo Molnar.

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: Fix incorrect usage of for_each_cpu_mask() in select_fallback_rq()
sched: Fix __schedule_bug() output when called from an interrupt
sched/arch: Introduce the finish_arch_post_lock_switch() scheduler callback

+7 -9
+4 -9
kernel/sched/core.c
··· 1270 1270 int dest_cpu; 1271 1271 1272 1272 /* Look for allowed, online CPU in same node. */ 1273 - for_each_cpu_mask(dest_cpu, *nodemask) { 1273 + for_each_cpu(dest_cpu, nodemask) { 1274 1274 if (!cpu_online(dest_cpu)) 1275 1275 continue; 1276 1276 if (!cpu_active(dest_cpu)) ··· 1281 1281 1282 1282 for (;;) { 1283 1283 /* Any allowed, online CPU? */ 1284 - for_each_cpu_mask(dest_cpu, *tsk_cpus_allowed(p)) { 1284 + for_each_cpu(dest_cpu, tsk_cpus_allowed(p)) { 1285 1285 if (!cpu_online(dest_cpu)) 1286 1286 continue; 1287 1287 if (!cpu_active(dest_cpu)) ··· 1964 1964 local_irq_enable(); 1965 1965 #endif /* __ARCH_WANT_INTERRUPTS_ON_CTXSW */ 1966 1966 finish_lock_switch(rq, prev); 1967 + finish_arch_post_lock_switch(); 1967 1968 1968 1969 fire_sched_in_preempt_notifiers(current); 1969 1970 if (mm) ··· 3102 3101 */ 3103 3102 static noinline void __schedule_bug(struct task_struct *prev) 3104 3103 { 3105 - struct pt_regs *regs = get_irq_regs(); 3106 - 3107 3104 if (oops_in_progress) 3108 3105 return; 3109 3106 ··· 3112 3113 print_modules(); 3113 3114 if (irqs_disabled()) 3114 3115 print_irqtrace_events(prev); 3115 - 3116 - if (regs) 3117 - show_regs(regs); 3118 - else 3119 - dump_stack(); 3116 + dump_stack(); 3120 3117 } 3121 3118 3122 3119 /*
+3
kernel/sched/sched.h
··· 681 681 #ifndef finish_arch_switch 682 682 # define finish_arch_switch(prev) do { } while (0) 683 683 #endif 684 + #ifndef finish_arch_post_lock_switch 685 + # define finish_arch_post_lock_switch() do { } while (0) 686 + #endif 684 687 685 688 #ifndef __ARCH_WANT_UNLOCKED_CTXSW 686 689 static inline void prepare_lock_switch(struct rq *rq, struct task_struct *next)