From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org,
linux-rt-users <linux-rt-users@vger.kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Carsten Emde <C.Emde@osadl.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
John Kacur <jkacur@redhat.com>,
Paul Gortmaker <paul.gortmaker@windriver.com>,
Julia Cartwright <julia@ni.com>,
Daniel Wagner <daniel.wagner@siemens.com>,
tom.zanussi@linux.intel.com, stable-rt@vger.kernel.org,
Mike Galbraith <efault@gmx.de>
Subject: [PATCH RT 21/24] sched: Allow pinned user tasks to be awakened to the CPU they pinned
Date: Fri, 07 Sep 2018 16:59:18 -0400 [thread overview]
Message-ID: <20180907205933.227671780@goodmis.org> (raw)
In-Reply-To: 20180907205857.262840394@goodmis.org
4.14.63-rt41-rc2 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Mike Galbraith <efault@gmx.de>
[ Upstream commit cd4d35ef89948221f7cd1751cee453943967364c ]
Since commit 7af443ee16976 ("sched/core: Require cpu_active() in
select_task_rq(), for user tasks") select_fallback_rq() will BUG() if
the CPU to which a task has pinned itself and pinned becomes
!cpu_active() while it slept.
The task will continue running on the to-be-removed CPU and will remove
itself from the CPU during takedown_cpu() (while cpuhp_pin_lock will be
acquired) and move to another CPU based on its mask after the
migrate_disable() section has been left.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
kernel/sched/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index a5ce37b90fca..6e6bd5262f23 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -980,7 +980,7 @@ static inline bool is_cpu_allowed(struct task_struct *p, int cpu)
if (!cpumask_test_cpu(cpu, p->cpus_ptr))
return false;
- if (is_per_cpu_kthread(p))
+ if (is_per_cpu_kthread(p) || __migrate_disabled(p))
return cpu_online(cpu);
return cpu_active(cpu);
--
2.18.0
next prev parent reply other threads:[~2018-09-07 20:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 20:58 [PATCH RT 00/24] Linux 4.14.63-rt41-rc2 Steven Rostedt
2018-09-07 20:58 ` [PATCH RT 01/24] sched/fair: Fix CFS bandwidth control lockdep DEADLOCK report Steven Rostedt
2018-09-07 20:58 ` [PATCH RT 02/24] locallock: provide {get,put}_locked_ptr() variants Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 03/24] squashfs: make use of local lock in multi_cpu decompressor Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 04/24] PM / suspend: Prevent might sleep splats (updated) Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 05/24] PM / wakeup: Make events_lock a RAW_SPINLOCK Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 06/24] PM / s2idle: Make s2idle_wait_head swait based Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 07/24] seqlock: provide the same ordering semantics as mainline Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 08/24] Revert "x86: UV: raw_spinlock conversion" Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 09/24] Revert "timer: delay waking softirqs from the jiffy tick" Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 10/24] irqchip/gic-v3-its: Make its_lock a raw_spin_lock_t Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 11/24] sched/migrate_disable: fallback to preempt_disable() instead barrier() Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 12/24] irqchip/gic-v3-its: Move ITS ->pend_page allocation into an early CPU up hook Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 13/24] irqchip/gic-v3-its: Move pending table allocation to init time Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 14/24] x86/ioapic: Dont let setaffinity unmask threaded EOI interrupt too early Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 15/24] efi: Allow efi=runtime Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 16/24] efi: Disable runtime services on RT Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 17/24] crypto: cryptd - add a lock instead preempt_disable/local_bh_disable Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 18/24] crypto: scompress - serialize RT percpu scratch buffer access with a local lock Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 19/24] sched/core: Avoid __schedule() being called twice in a row Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 20/24] Revert "arm64/xen: Make XEN depend on !RT" Steven Rostedt
2018-09-07 20:59 ` Steven Rostedt [this message]
2018-09-07 20:59 ` [PATCH RT 23/24] Revert "softirq: keep the softirq pending check RT-only" Steven Rostedt
2018-09-07 20:59 ` [PATCH RT 24/24] Linux 4.14.63-rt41-rc2 Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180907205933.227671780@goodmis.org \
--to=rostedt@goodmis.org \
--cc=C.Emde@osadl.org \
--cc=bigeasy@linutronix.de \
--cc=daniel.wagner@siemens.com \
--cc=efault@gmx.de \
--cc=jkacur@redhat.com \
--cc=julia@ni.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=paul.gortmaker@windriver.com \
--cc=stable-rt@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tom.zanussi@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.