linux/kernel/sched
Chen Liang a6afe518a8 sched/fair: fix bug: remove printk while schedule is in progress
It will cause deadlock and while(1) if call printk while schedule
is in progress. The block state like as below:

cpu0(hold the console sem):
printk->console_unlock->up_sem->spin_lock(&sem->lock)->wake_up_process(cpu1)
->try_to_wake_up(cpu1)->while(p->on_cpu).

cpu1(request console sem):
console_lock->down_sem->schedule->idle_banlance->update_cpu_capacity->
printk->console_trylock->spin_lock(&sem->lock).

p->on_cpu will be 1 forever, because the task is still running on cpu1,
so cpu0 is blocked in while(p->on_cpu), but cpu1 could not get
spin_lock(&sem->lock), it is blocked too, it means the task will running
on cpu1 forever.

Change-Id: I60d02d8c957273872f97939632bdd235accdad4e
Signed-off-by: Chen Liang <cl@rock-chips.com>
2019-02-27 20:45:07 +08:00
..
autogroup.c ANDROID: sched/autogroup: Define autogroup_path() for !CONFIG_SCHED_DEBUG 2018-10-26 12:44:03 +01:00
autogroup.h
clock.c sched/clock: Disable interrupts when calling generic_sched_clock_init() 2018-07-30 19:33:35 +02:00
completion.c sched/Documentation: Update wake_up() & co. memory-barrier guarantees 2018-07-17 09:30:34 +02:00
core.c This is the 4.19.11 stable release 2018-12-19 19:30:07 +01:00
cpuacct.c
cpudeadline.c
cpudeadline.h
cpufreq_schedutil.c ANDROID: sched: Align EAS with upstream 2019-01-04 09:17:54 +00:00
cpufreq.c
cpupri.c
cpupri.h
cputime.c
deadline.c FROMLIST: sched/fair: Use wake_q length as a hint for wake_wide 2018-10-26 12:15:52 +01:00
debug.c sched/debug: Fix potential deadlock when writing to sched_features 2018-09-10 10:13:45 +02:00
fair.c sched/fair: fix bug: remove printk while schedule is in progress 2019-02-27 20:45:07 +08:00
features.h ANDROID: Add hold functionality to schedtune CPU boost 2018-10-26 12:44:06 +01:00
idle.c FROMLIST: sched/fair: Use wake_q length as a hint for wake_wide 2018-10-26 12:15:52 +01:00
isolation.c
loadavg.c
Makefile ANDROID: sched: fair/tune: Add schedtune with cgroups interface 2018-10-26 11:57:46 +01:00
membarrier.c
pelt.c This is the 4.19.11 stable release 2018-12-19 19:30:07 +01:00
pelt.h sched/pelt: Fix warning and clean up IRQ PELT config 2018-12-19 19:19:49 +01:00
rt.c ANDROID: sched/rt: Add schedtune accounting to rt task enqueue/dequeue 2018-10-26 12:44:06 +01:00
sched-pelt.h
sched.h This is the 4.19.11 stable release 2018-12-19 19:30:07 +01:00
stats.c
stats.h
stop_task.c FROMLIST: sched/fair: Use wake_q length as a hint for wake_wide 2018-10-26 12:15:52 +01:00
swait.c sched/swait: Rename to exclusive 2018-06-20 11:35:56 +02:00
topology.c Revert "FROMLIST: sched: Introduce a sysctl for Energy Aware Scheduling" 2019-01-04 09:17:55 +00:00
tune.c ANDROID: Add hold functionality to schedtune CPU boost 2018-10-26 12:44:06 +01:00
tune.h ANDROID: sched/rt: Add schedtune accounting to rt task enqueue/dequeue 2018-10-26 12:44:06 +01:00
wait_bit.c
wait.c sched/wait: assert the wait_queue_head lock is held in __wake_up_common 2018-08-22 10:52:47 -07:00