diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-06-27 11:35:02 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-06-27 11:35:02 +0200 |
commit | 630741fb60ac4e286f5396403c0d864d924c02bc (patch) | |
tree | 16eb952c3653386c6d1ad99e369615dfe65e4d67 /kernel/sched/core.c | |
parent | 807e5b80687c06715d62df51a5473b231e3e8b15 (diff) | |
parent | ea1dc6fc6242f991656e35e2ed3d90ec1cd13418 (diff) | |
download | op-kernel-dev-630741fb60ac4e286f5396403c0d864d924c02bc.zip op-kernel-dev-630741fb60ac4e286f5396403c0d864d924c02bc.tar.gz |
Merge branch 'sched/urgent' into sched/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r-- | kernel/sched/core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index c1b537b..e406ba0 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1536,7 +1536,9 @@ static int select_fallback_rq(int cpu, struct task_struct *p) for (;;) { /* Any allowed, online CPU? */ for_each_cpu(dest_cpu, tsk_cpus_allowed(p)) { - if (!cpu_active(dest_cpu)) + if (!(p->flags & PF_KTHREAD) && !cpu_active(dest_cpu)) + continue; + if (!cpu_online(dest_cpu)) continue; goto out; } @@ -5147,14 +5149,16 @@ void show_state_filter(unsigned long state_filter) /* * reset the NMI-timeout, listing all files on a slow * console might take a lot of time: + * Also, reset softlockup watchdogs on all CPUs, because + * another CPU might be blocked waiting for us to process + * an IPI. */ touch_nmi_watchdog(); + touch_all_softlockup_watchdogs(); if (!state_filter || (p->state & state_filter)) sched_show_task(p); } - touch_all_softlockup_watchdogs(); - #ifdef CONFIG_SCHED_DEBUG if (!state_filter) sysrq_sched_debug_show(); |