mirror of
https://github.com/suyu-emu/horinux.git
synced 2026-09-21 14:15:21 -07:00
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler changes for v3.4 from Ingo Molnar * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits) printk: Make it compile with !CONFIG_PRINTK sched/x86: Fix overflow in cyc2ns_offset sched: Fix nohz load accounting -- again! sched: Update yield() docs printk/sched: Introduce special printk_sched() for those awkward moments sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer sched: Cleanup cpu_active madness sched: Fix load-balance wreckage sched: Clean up parameter passing of proc_sched_autogroup_set_nice() sched: Ditch per cgroup task lists for load-balancing sched: Rename load-balancing fields sched: Move load-balancing arguments into helper struct sched/rt: Do not submit new work when PI-blocked sched/rt: Prevent idle task boosting sched/wait: Add __wake_up_all_locked() API sched/rt: Document scheduler related skip-resched-check sites sched/rt: Use schedule_preempt_disabled() sched/rt: Add schedule_preempt_disabled() sched/rt: Do not throttle when PI boosting sched/rt: Keep period timer ticking when rt throttling is active ...
This commit is contained in:
@@ -38,7 +38,8 @@ First field is a sched_yield() statistic:
|
||||
1) # of times sched_yield() was called
|
||||
|
||||
Next three are schedule() statistics:
|
||||
2) # of times we switched to the expired queue and reused it
|
||||
2) This field is a legacy array expiration count field used in the O(1)
|
||||
scheduler. We kept it for ABI compatibility, but it is always set to zero.
|
||||
3) # of times schedule() was called
|
||||
4) # of times schedule() left the processor idle
|
||||
|
||||
|
||||
@@ -239,9 +239,7 @@ void cpu_idle(void)
|
||||
leds_event(led_idle_end);
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -295,13 +295,6 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
|
||||
*/
|
||||
percpu_timer_setup();
|
||||
|
||||
while (!cpu_active(cpu))
|
||||
cpu_relax();
|
||||
|
||||
/*
|
||||
* cpu_active bit is set, so it's safe to enalbe interrupts
|
||||
* now.
|
||||
*/
|
||||
local_irq_enable();
|
||||
local_fiq_enable();
|
||||
|
||||
|
||||
@@ -40,9 +40,7 @@ void cpu_idle(void)
|
||||
cpu_idle_sleep();
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,9 +94,7 @@ void cpu_idle(void)
|
||||
idle();
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -115,9 +115,7 @@ void cpu_idle (void)
|
||||
idle = default_idle;
|
||||
idle();
|
||||
}
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -92,9 +92,7 @@ void cpu_idle(void)
|
||||
idle();
|
||||
}
|
||||
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -81,9 +81,7 @@ void cpu_idle(void)
|
||||
while (1) {
|
||||
while (!need_resched())
|
||||
idle();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -179,8 +179,6 @@ void __cpuinit start_secondary(void)
|
||||
printk(KERN_INFO "%s cpu %d\n", __func__, current_thread_info()->cpu);
|
||||
|
||||
set_cpu_online(cpu, true);
|
||||
while (!cpumask_test_cpu(cpu, cpu_active_mask))
|
||||
cpu_relax();
|
||||
local_irq_enable();
|
||||
|
||||
cpu_idle();
|
||||
|
||||
@@ -330,9 +330,7 @@ cpu_idle (void)
|
||||
normal_xtp();
|
||||
#endif
|
||||
}
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
check_pgt_cache();
|
||||
if (cpu_is_offline(cpu))
|
||||
play_dead();
|
||||
|
||||
@@ -90,9 +90,7 @@ void cpu_idle (void)
|
||||
|
||||
idle();
|
||||
}
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -78,9 +78,7 @@ void cpu_idle(void)
|
||||
while (1) {
|
||||
while (!need_resched())
|
||||
idle();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -73,9 +73,7 @@ void cpu_idle(void)
|
||||
/* endless idle loop with no priority at all */
|
||||
while (1) {
|
||||
idle();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -110,9 +110,7 @@ void cpu_idle(void)
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
check_pgt_cache();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,9 +80,7 @@ void __noreturn cpu_idle(void)
|
||||
#endif
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -123,9 +123,7 @@ void cpu_idle(void)
|
||||
idle();
|
||||
}
|
||||
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,9 +71,7 @@ void cpu_idle(void)
|
||||
while (1) {
|
||||
while (!need_resched())
|
||||
barrier();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
check_pgt_cache();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,11 +101,11 @@ void cpu_idle(void)
|
||||
ppc64_runlatch_on();
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
preempt_enable_no_resched();
|
||||
if (cpu_should_die())
|
||||
if (cpu_should_die()) {
|
||||
sched_preempt_enable_no_resched();
|
||||
cpu_die();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
}
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -584,9 +584,7 @@ static void iseries_shared_idle(void)
|
||||
if (hvlpevent_is_pending())
|
||||
process_iSeries_events();
|
||||
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -615,9 +613,7 @@ static void iseries_dedicated_idle(void)
|
||||
ppc64_runlatch_on();
|
||||
rcu_idle_exit();
|
||||
tick_nohz_idle_exit();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -97,9 +97,7 @@ void cpu_idle(void)
|
||||
tick_nohz_idle_exit();
|
||||
if (test_thread_flag(TIF_MCCK_PENDING))
|
||||
s390_handle_mcck();
|
||||
preempt_enable_no_resched();
|
||||
schedule();
|
||||
preempt_disable();
|
||||
schedule_preempt_disabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user