summaryrefslogtreecommitdiffstats
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2016-06-27 11:35:02 +0200
committerIngo Molnar <mingo@kernel.org>2016-06-27 11:35:02 +0200
commit630741fb60ac4e286f5396403c0d864d924c02bc (patch)
tree16eb952c3653386c6d1ad99e369615dfe65e4d67 /kernel/sched/core.c
parent807e5b80687c06715d62df51a5473b231e3e8b15 (diff)
parentea1dc6fc6242f991656e35e2ed3d90ec1cd13418 (diff)
downloadop-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.c10
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();
OpenPOWER on IntegriCloud