[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191216173416.2dcmfis4xza2dqf5@linutronix.de>
Date: Mon, 16 Dec 2019 18:34:16 +0100
From: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>,
linux-rt-users <linux-rt-users@...r.kernel.org>,
Steven Rostedt <rostedt@...dmis.org>
Subject: [ANNOUNCE] v5.2.21-rt15
Dear RT folks!
I'm pleased to announce the v5.2.21-rt15 patch set.
Changes since v5.2.21-rt14:
- Since the migrate_disable() rework, the kernel did not build on UP
or without RT enabled. Patch by Daniel Wagner.
- Since the migrate_disable() rework, with heave changing of the
task's affinity mask the kernel could issue a warning in
migrate_enable() and crash later.
Known issues
- None
The delta patch against v5.2.21-rt14 is appended below and can be found here:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.2/incr/patch-5.2.21-rt14-rt15.patch.xz
You can get this release via the git tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v5.2.21-rt15
The RT patch against v5.2.21 can be found here:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patch-5.2.21-rt15.patch.xz
The split quilt queue is available at:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.21-rt15.tar.xz
Sebastian
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index ef9621815f37e..ab04f5c48787d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7399,7 +7399,7 @@ void migrate_enable(void)
WARN_ON(smp_processor_id() != cpu);
if (!is_cpu_allowed(p, cpu)) {
- struct migration_arg arg = { p };
+ struct migration_arg arg = { .task = p };
struct cpu_stop_work work;
struct rq_flags rf;
@@ -7411,7 +7411,10 @@ void migrate_enable(void)
stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop,
&arg, &work);
__schedule(true);
- WARN_ON_ONCE(!arg.done && !work.disabled);
+ if (!work.disabled) {
+ while (!arg.done)
+ cpu_relax();
+ }
}
out:
diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c
index 5f2618d346c42..c2f5b0f8cacd0 100644
--- a/lib/smp_processor_id.c
+++ b/lib/smp_processor_id.c
@@ -23,8 +23,10 @@ unsigned int check_preemption_disabled(const char *what1, const char *what2)
* Kernel threads bound to a single CPU can safely use
* smp_processor_id():
*/
+#if defined(CONFIG_PREEMPT_RT_BASE) && (defined(CONFIG_SMP) || defined(CONFIG_SCHED_DEBUG))
if (current->migrate_disable)
goto out;
+#endif
if (current->nr_cpus_allowed == 1)
goto out;
diff --git a/localversion-rt b/localversion-rt
index 08b3e75841adc..18777ec0c27d4 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt14
+-rt15
Powered by blists - more mailing lists