[rt] Update to 4.19.37-rt19

This commit is contained in:
Romain Perier 2019-04-30 14:45:19 +02:00
parent e6b7661450
commit fd064d4e63
266 changed files with 1403 additions and 1383 deletions

3
debian/changelog vendored
View File

@ -1115,6 +1115,9 @@ linux (4.19.37-1) UNRELEASED; urgency=medium
* [mips] Fix indirect syscall tracing & seccomp filtering for big endian * [mips] Fix indirect syscall tracing & seccomp filtering for big endian
MIPS64 kernels with 32-bit userland. MIPS64 kernels with 32-bit userland.
[ Romain Perier ]
* [rt] Update to 4.19.37-rt19
-- Ben Hutchings <ben@decadent.org.uk> Mon, 18 Mar 2019 22:50:08 +0000 -- Ben Hutchings <ben@decadent.org.uk> Mon, 18 Mar 2019 22:50:08 +0000
linux (4.19.28-2) unstable; urgency=medium linux (4.19.28-2) unstable; urgency=medium

View File

@ -1,8 +1,8 @@
From a65d4f22e9030ffe94b74319c170821fb7bc2a81 Mon Sep 17 00:00:00 2001 From bc4d8f04b5bd123853531af90f1ec548d8ab61e4 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:18 +0200 Date: Thu, 13 Sep 2018 13:30:18 +0200
Subject: [PATCH 001/266] ARM: at91: add TCB registers definitions Subject: [PATCH 001/264] ARM: at91: add TCB registers definitions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Add registers and bits definitions for the timer counter blocks found on Add registers and bits definitions for the timer counter blocks found on
Atmel ARM SoCs. Atmel ARM SoCs.

View File

@ -1,9 +1,9 @@
From ec74d20d992913ef170482f3ad9afa7ddf59cdf4 Mon Sep 17 00:00:00 2001 From 1eef86c9b8aa09d8e57f4ee5684c7bfd28f6900f Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:19 +0200 Date: Thu, 13 Sep 2018 13:30:19 +0200
Subject: [PATCH 002/266] clocksource/drivers: Add a new driver for the Atmel Subject: [PATCH 002/264] clocksource/drivers: Add a new driver for the Atmel
ARM TC blocks ARM TC blocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Add a driver for the Atmel Timer Counter Blocks. This driver provides a Add a driver for the Atmel Timer Counter Blocks. This driver provides a
clocksource and two clockevent devices. clocksource and two clockevent devices.

View File

@ -1,9 +1,9 @@
From f303771b4daf883ace6cfd76268c38b280178d47 Mon Sep 17 00:00:00 2001 From f6803050ab0965a1255a3b407ca429a04c5cb230 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:20 +0200 Date: Thu, 13 Sep 2018 13:30:20 +0200
Subject: [PATCH 003/266] clocksource/drivers: timer-atmel-tcb: add clockevent Subject: [PATCH 003/264] clocksource/drivers: timer-atmel-tcb: add clockevent
device on separate channel device on separate channel
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Add an other clockevent device that uses a separate TCB channel when Add an other clockevent device that uses a separate TCB channel when
available. available.

View File

@ -1,8 +1,8 @@
From 89b749f497d850591d338a05290961a95c9a1e9e Mon Sep 17 00:00:00 2001 From 873075a203c574d322429e4a8cd0686541293903 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:21 +0200 Date: Thu, 13 Sep 2018 13:30:21 +0200
Subject: [PATCH 004/266] clocksource/drivers: atmel-pit: make option silent Subject: [PATCH 004/264] clocksource/drivers: atmel-pit: make option silent
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
To conform with the other option, make the ATMEL_PIT option silent so it To conform with the other option, make the ATMEL_PIT option silent so it
can be selected from the platform can be selected from the platform

View File

@ -1,8 +1,8 @@
From c508ebe2604e0acd904da4940c042924ed2f19a8 Mon Sep 17 00:00:00 2001 From e0dc436f11c998b38ee3dc4cd269d5075ea12b7e Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:22 +0200 Date: Thu, 13 Sep 2018 13:30:22 +0200
Subject: [PATCH 005/266] ARM: at91: Implement clocksource selection Subject: [PATCH 005/264] ARM: at91: Implement clocksource selection
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Allow selecting and unselecting the PIT clocksource driver so it doesn't Allow selecting and unselecting the PIT clocksource driver so it doesn't
have to be compile when unused. have to be compile when unused.

View File

@ -1,8 +1,8 @@
From d8964bb5d00d91ccdd8e3cd971ccb9e13dff91b4 Mon Sep 17 00:00:00 2001 From ca4a1c8ce5f7224d99ef6c2a6754468cb72ea4c3 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:23 +0200 Date: Thu, 13 Sep 2018 13:30:23 +0200
Subject: [PATCH 006/266] ARM: configs: at91: use new TCB timer driver Subject: [PATCH 006/264] ARM: configs: at91: use new TCB timer driver
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
timer-atmel-tcb. timer-atmel-tcb.

View File

@ -1,8 +1,8 @@
From bc6d50051826beac487e82f8187a8ef8e43f04df Mon Sep 17 00:00:00 2001 From 2c83222f4057f755febccd002f3720bbf73a6473 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:24 +0200 Date: Thu, 13 Sep 2018 13:30:24 +0200
Subject: [PATCH 007/266] ARM: configs: at91: unselect PIT Subject: [PATCH 007/264] ARM: configs: at91: unselect PIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The PIT is not required anymore to successfully boot and may actually harm The PIT is not required anymore to successfully boot and may actually harm
in case preempt-rt is used because the PIT interrupt is shared. in case preempt-rt is used because the PIT interrupt is shared.

View File

@ -1,9 +1,9 @@
From 63b24725baf9adfb75e97b162a7ed52025e132bb Mon Sep 17 00:00:00 2001 From bb357496d72d05e2841899655c8e709d7c369ab0 Mon Sep 17 00:00:00 2001
From: Marc Zyngier <marc.zyngier@arm.com> From: Marc Zyngier <marc.zyngier@arm.com>
Date: Fri, 27 Jul 2018 13:38:54 +0100 Date: Fri, 27 Jul 2018 13:38:54 +0100
Subject: [PATCH 008/266] irqchip/gic-v3-its: Move pending table allocation to Subject: [PATCH 008/264] irqchip/gic-v3-its: Move pending table allocation to
init time init time
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2 files changed, 53 insertions(+), 28 deletions(-) 2 files changed, 53 insertions(+), 28 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 78970cdf2ef6..163cef00a033 100644 index 65ab2c80529c..21681f0f85f4 100644
--- a/drivers/irqchip/irq-gic-v3-its.c --- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -179,6 +179,7 @@ static DEFINE_RAW_SPINLOCK(vmovp_lock); @@ -179,6 +179,7 @@ static DEFINE_RAW_SPINLOCK(vmovp_lock);

View File

@ -1,8 +1,8 @@
From 67a71e8bdd5bed22f28763f05687dc8afe3d028e Mon Sep 17 00:00:00 2001 From 9d8b1db47a7e355eb0c34a8af57f3613db6cb18c Mon Sep 17 00:00:00 2001
From: Julia Cartwright <julia@ni.com> From: Julia Cartwright <julia@ni.com>
Date: Fri, 28 Sep 2018 21:03:51 +0000 Date: Fri, 28 Sep 2018 21:03:51 +0000
Subject: [PATCH 009/266] kthread: convert worker lock to raw spinlock Subject: [PATCH 009/264] kthread: convert worker lock to raw spinlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
In order to enable the queuing of kthread work items from hardirq In order to enable the queuing of kthread work items from hardirq
context even when PREEMPT_RT_FULL is enabled, convert the worker context even when PREEMPT_RT_FULL is enabled, convert the worker

View File

@ -1,11 +1,11 @@
From b4cb1ff0cceb0ca014a49e47cb93a112574e6339 Mon Sep 17 00:00:00 2001 From b37ee7bd4ac42c97c3fce905634cf808345a25ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Horia=20Geant=C4=83?= <horia.geanta@nxp.com> From: =?UTF-8?q?Horia=20Geant=C4=83?= <horia.geanta@nxp.com>
Date: Mon, 8 Oct 2018 14:09:37 +0300 Date: Mon, 8 Oct 2018 14:09:37 +0300
Subject: [PATCH 010/266] crypto: caam/qi - simplify CGR allocation, freeing Subject: [PATCH 010/264] crypto: caam/qi - simplify CGR allocation, freeing
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6] [Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]

View File

@ -1,8 +1,8 @@
From a4524b7d31b9a9d9a25b35af08ee65b73d214893 Mon Sep 17 00:00:00 2001 From 78f68e44994c830d70aa92bb86a47b204ff605c6 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org> From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 7 Jan 2019 13:52:31 +0100 Date: Mon, 7 Jan 2019 13:52:31 +0100
Subject: [PATCH 011/266] sched/fair: Robustify CFS-bandwidth timer locking Subject: [PATCH 011/264] sched/fair: Robustify CFS-bandwidth timer locking
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Traditionally hrtimer callbacks were run with IRQs disabled, but with Traditionally hrtimer callbacks were run with IRQs disabled, but with
the introduction of HRTIMER_MODE_SOFT it is possible they run from the introduction of HRTIMER_MODE_SOFT it is possible they run from
@ -25,15 +25,15 @@ Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20190107125231.GE14122@hirez.programming.kicks-ass.net Link: https://lkml.kernel.org/r/20190107125231.GE14122@hirez.programming.kicks-ass.net
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[bwh: Adjusted to apply on top of commit c3edd427d538
"sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup"]
--- ---
kernel/sched/fair.c | 30 ++++++++++++++++-------------- kernel/sched/fair.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-) 1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 4aa8e7d90c25..53acadf72cd9 100644
--- a/kernel/sched/fair.c --- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c +++ b/kernel/sched/fair.c
@@ -4553,7 +4553,7 @@ static u64 distribute_cfs_runtime(struct @@ -4553,7 +4553,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
struct rq *rq = rq_of(cfs_rq); struct rq *rq = rq_of(cfs_rq);
struct rq_flags rf; struct rq_flags rf;
@ -42,7 +42,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (!cfs_rq_throttled(cfs_rq)) if (!cfs_rq_throttled(cfs_rq))
goto next; goto next;
@@ -4570,7 +4570,7 @@ static u64 distribute_cfs_runtime(struct @@ -4570,7 +4570,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
unthrottle_cfs_rq(cfs_rq); unthrottle_cfs_rq(cfs_rq);
next: next:
@ -51,7 +51,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (!remaining) if (!remaining)
break; break;
@@ -4586,7 +4586,7 @@ next: @@ -4586,7 +4586,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
* period the timer is deactivated until scheduling resumes; cfs_b->idle is * period the timer is deactivated until scheduling resumes; cfs_b->idle is
* used to track this state. * used to track this state.
*/ */
@ -60,7 +60,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
{ {
u64 runtime, runtime_expires; u64 runtime, runtime_expires;
int throttled; int throttled;
@@ -4628,11 +4628,11 @@ static int do_sched_cfs_period_timer(str @@ -4628,11 +4628,11 @@ static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun)
while (throttled && cfs_b->runtime > 0 && !cfs_b->distribute_running) { while (throttled && cfs_b->runtime > 0 && !cfs_b->distribute_running) {
runtime = cfs_b->runtime; runtime = cfs_b->runtime;
cfs_b->distribute_running = 1; cfs_b->distribute_running = 1;
@ -74,7 +74,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
cfs_b->distribute_running = 0; cfs_b->distribute_running = 0;
throttled = !list_empty(&cfs_b->throttled_cfs_rq); throttled = !list_empty(&cfs_b->throttled_cfs_rq);
@@ -4741,17 +4741,18 @@ static __always_inline void return_cfs_r @@ -4741,17 +4741,18 @@ static __always_inline void return_cfs_rq_runtime(struct cfs_rq *cfs_rq)
static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b) static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
{ {
u64 runtime = 0, slice = sched_cfs_bandwidth_slice(); u64 runtime = 0, slice = sched_cfs_bandwidth_slice();
@ -96,7 +96,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
return; return;
} }
@@ -4762,18 +4763,18 @@ static void do_sched_cfs_slack_timer(str @@ -4762,18 +4763,18 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
if (runtime) if (runtime)
cfs_b->distribute_running = 1; cfs_b->distribute_running = 1;
@ -118,7 +118,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
/* /*
@@ -4853,11 +4854,12 @@ static enum hrtimer_restart sched_cfs_pe @@ -4853,11 +4854,12 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
{ {
struct cfs_bandwidth *cfs_b = struct cfs_bandwidth *cfs_b =
container_of(timer, struct cfs_bandwidth, period_timer); container_of(timer, struct cfs_bandwidth, period_timer);
@ -132,7 +132,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
for (;;) { for (;;) {
overrun = hrtimer_forward_now(timer, cfs_b->period); overrun = hrtimer_forward_now(timer, cfs_b->period);
if (!overrun) if (!overrun)
@@ -4885,11 +4887,11 @@ static enum hrtimer_restart sched_cfs_pe @@ -4885,11 +4887,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
count = 0; count = 0;
} }
@ -146,3 +146,6 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
return idle ? HRTIMER_NORESTART : HRTIMER_RESTART; return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
} }
--
2.20.1

View File

@ -1,8 +1,8 @@
From 37261737c2ad09732c9131095b574191058afc92 Mon Sep 17 00:00:00 2001 From fa6e4c3d085352808073b23fdff79729db01930a Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com> From: Frank Rowand <frank.rowand@am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700 Date: Mon, 19 Sep 2011 14:51:14 -0700
Subject: [PATCH 012/266] arm: Convert arm boot_lock to raw Subject: [PATCH 012/264] arm: Convert arm boot_lock to raw
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The arm boot_lock is used by the secondary processor startup code. The locking The arm boot_lock is used by the secondary processor startup code. The locking
task is the idle thread, which has idle->sched_class == &idle_sched_class. task is the idle thread, which has idle->sched_class == &idle_sched_class.

View File

@ -1,9 +1,9 @@
From b7623467c5f4754d6461928696e789b3fa834b7a Mon Sep 17 00:00:00 2001 From 4debab2aa3d29fcdb5b9cd132416094c54e9361b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 17 Jul 2018 18:25:31 +0200 Date: Tue, 17 Jul 2018 18:25:31 +0200
Subject: [PATCH 013/266] x86/ioapic: Don't let setaffinity unmask threaded EOI Subject: [PATCH 013/264] x86/ioapic: Don't let setaffinity unmask threaded EOI
interrupt too early interrupt too early
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
There is an issue with threaded interrupts which are marked ONESHOT There is an issue with threaded interrupts which are marked ONESHOT
and using the fasteoi handler. and using the fasteoi handler.

View File

@ -1,8 +1,8 @@
From 8802563fe8efa798671fe55ab1417f3665f63cc7 Mon Sep 17 00:00:00 2001 From 1117688ac7606703683b1ac8cacdbf02d47b4adb Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 18:19:48 +0200 Date: Tue, 3 Jul 2018 18:19:48 +0200
Subject: [PATCH 016/266] cgroup: use irqsave in cgroup_rstat_flush_locked() Subject: [PATCH 014/264] cgroup: use irqsave in cgroup_rstat_flush_locked()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
either with spin_lock_irq() or spin_lock_irqsave(). either with spin_lock_irq() or spin_lock_irqsave().
@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 3 insertions(+), 2 deletions(-) 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c
index d503d1a9007c..63fc5e472c82 100644 index bb95a35e8c2d..3266a9781b4e 100644
--- a/kernel/cgroup/rstat.c --- a/kernel/cgroup/rstat.c
+++ b/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c
@@ -157,8 +157,9 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) @@ -159,8 +159,9 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep)
raw_spinlock_t *cpu_lock = per_cpu_ptr(&cgroup_rstat_cpu_lock, raw_spinlock_t *cpu_lock = per_cpu_ptr(&cgroup_rstat_cpu_lock,
cpu); cpu);
struct cgroup *pos = NULL; struct cgroup *pos = NULL;
@ -36,7 +36,7 @@ index d503d1a9007c..63fc5e472c82 100644
while ((pos = cgroup_rstat_cpu_pop_updated(pos, cgrp, cpu))) { while ((pos = cgroup_rstat_cpu_pop_updated(pos, cgrp, cpu))) {
struct cgroup_subsys_state *css; struct cgroup_subsys_state *css;
@@ -170,7 +171,7 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) @@ -172,7 +173,7 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep)
css->ss->css_rstat_flush(css, cpu); css->ss->css_rstat_flush(css, cpu);
rcu_read_unlock(); rcu_read_unlock();
} }

View File

@ -1,8 +1,8 @@
From e9ac49cf76873f8ca7a6868b1a467d3e4a126834 Mon Sep 17 00:00:00 2001 From 8cf7a5b4f03a2829c823971a12c1a206bcba069d Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com> From: Clark Williams <williams@redhat.com>
Date: Tue, 3 Jul 2018 13:34:30 -0500 Date: Tue, 3 Jul 2018 13:34:30 -0500
Subject: [PATCH 017/266] fscache: initialize cookie hash table raw spinlocks Subject: [PATCH 015/264] fscache: initialize cookie hash table raw spinlocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The
PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT

View File

@ -1,11 +1,11 @@
From 26295661cf99f6bcac999f0c1001001ae6ece3b1 Mon Sep 17 00:00:00 2001 From 841d8b9e20d17d7907421dc223346198287e81a1 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 29 Aug 2018 21:59:04 +0200 Date: Wed, 29 Aug 2018 21:59:04 +0200
Subject: [PATCH 018/266] Drivers: hv: vmbus: include header for get_irq_regs() Subject: [PATCH 016/264] Drivers: hv: vmbus: include header for get_irq_regs()
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
On !RT the header file get_irq_regs() gets pulled in via other header files. On On !RT the header file get_irq_regs() gets pulled in via other header files. On
RT it does not and the build fails: RT it does not and the build fails:

View File

@ -1,8 +1,8 @@
From 359af9f6304a32c08a0983076d636a524e1e8697 Mon Sep 17 00:00:00 2001 From d77a9b0754acbc89c7884b3505afdbb49677b36a Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 11 Oct 2018 16:39:59 +0200 Date: Thu, 11 Oct 2018 16:39:59 +0200
Subject: [PATCH 019/266] percpu: include irqflags.h for raw_local_irq_save() Subject: [PATCH 017/264] percpu: include irqflags.h for raw_local_irq_save()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The header percpu.h header file is using raw_local_irq_save() but does The header percpu.h header file is using raw_local_irq_save() but does
not include irqflags.h for its definition. It compiles because the not include irqflags.h for its definition. It compiles because the

View File

@ -1,8 +1,8 @@
From b83100f22895ed8f43d7f1ddc629ac5f378364cb Mon Sep 17 00:00:00 2001 From 10c47a6dadf91edee1d414002f91cc73bbe59c90 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:06:10 +0200 Date: Thu, 26 Jul 2018 15:06:10 +0200
Subject: [PATCH 020/266] efi: Allow efi=runtime Subject: [PATCH 018/264] efi: Allow efi=runtime
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
In case the option "efi=noruntime" is default at built-time, the user In case the option "efi=noruntime" is default at built-time, the user
could overwrite its sate by `efi=runtime' and allow it again. could overwrite its sate by `efi=runtime' and allow it again.

View File

@ -1,8 +1,8 @@
From a70a1ff87b4876681228007d218d34d59473ea36 Mon Sep 17 00:00:00 2001 From d1af306cedb5a02314565763b49992b10ce5d802 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 24 Jul 2018 14:48:55 +0200 Date: Tue, 24 Jul 2018 14:48:55 +0200
Subject: [PATCH 021/266] x86/efi: drop task_lock() from efi_switch_mm() Subject: [PATCH 019/264] x86/efi: drop task_lock() from efi_switch_mm()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
efi_switch_mm() is a wrapper around switch_mm() which saves current's efi_switch_mm() is a wrapper around switch_mm() which saves current's
->active_mm, sets the requests mm as ->active_mm and invokes ->active_mm, sets the requests mm as ->active_mm and invokes

View File

@ -1,9 +1,9 @@
From 9af14e5327e358a220624588caf607074b903d2e Mon Sep 17 00:00:00 2001 From 6d4ae829b2e8c46b1d730790bf2644e5a053cf14 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 09:13:42 +0200 Date: Thu, 26 Jul 2018 09:13:42 +0200
Subject: [PATCH 022/266] arm64: KVM: compute_layout before altenates are Subject: [PATCH 020/264] arm64: KVM: compute_layout before altenates are
applied applied
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
compute_layout() is invoked as part of an alternative fixup under compute_layout() is invoked as part of an alternative fixup under
stop_machine() and needs a sleeping lock as part of get_random_long(). stop_machine() and needs a sleeping lock as part of get_random_long().

View File

@ -1,9 +1,9 @@
From 620c41f6fc3705fe88d4ede270d434f2e8494e41 Mon Sep 17 00:00:00 2001 From 1ab1616de2aaaa7392ebb706a457af2fdcd2b82a Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 31 Aug 2018 14:16:30 +0200 Date: Fri, 31 Aug 2018 14:16:30 +0200
Subject: [PATCH 023/266] of: allocate / free phandle cache outside of the Subject: [PATCH 021/264] of: allocate / free phandle cache outside of the
devtree_lock devtree_lock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The phandle cache code allocates memory while holding devtree_lock which The phandle cache code allocates memory while holding devtree_lock which
is a raw_spinlock_t. Memory allocation (and free()) is not possible on is a raw_spinlock_t. Memory allocation (and free()) is not possible on

View File

@ -1,8 +1,8 @@
From 8a311199e1b8b0034e48f571a77dc0dba92493fc Mon Sep 17 00:00:00 2001 From a61c877f81f1f0b850090df19e08d51cf9465955 Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com> From: Clark Williams <williams@redhat.com>
Date: Tue, 18 Sep 2018 10:29:31 -0500 Date: Tue, 18 Sep 2018 10:29:31 -0500
Subject: [PATCH 024/266] mm/kasan: make quarantine_lock a raw_spinlock_t Subject: [PATCH 022/264] mm/kasan: make quarantine_lock a raw_spinlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The static lock quarantine_lock is used in quarantine.c to protect the The static lock quarantine_lock is used in quarantine.c to protect the
quarantine queue datastructures. It is taken inside quarantine queue quarantine queue datastructures. It is taken inside quarantine queue

View File

@ -1,9 +1,9 @@
From 383db1cd23d5f1b7583f5723fc8460c51ee469a8 Mon Sep 17 00:00:00 2001 From b710c9561c0a7ddf1c7fef8d3bd3bc6d9e140a4e Mon Sep 17 00:00:00 2001
From: "Paul E. McKenney" <paulmck@linux.ibm.com> From: "Paul E. McKenney" <paulmck@linux.ibm.com>
Date: Mon, 29 Oct 2018 11:53:01 +0100 Date: Mon, 29 Oct 2018 11:53:01 +0100
Subject: [PATCH 025/266] EXP rcu: Revert expedited GP parallelization Subject: [PATCH 023/264] EXP rcu: Revert expedited GP parallelization
cleverness cleverness
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu) (Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)

View File

@ -1,11 +1,11 @@
From dcf4a87ee4351ab504708b78c95b72551e34f774 Mon Sep 17 00:00:00 2001 From b32df881582f39cab5e57b894f554f8573170cf7 Mon Sep 17 00:00:00 2001
From: He Zhe <zhe.he@windriver.com> From: He Zhe <zhe.he@windriver.com>
Date: Wed, 19 Dec 2018 16:30:57 +0100 Date: Wed, 19 Dec 2018 16:30:57 +0100
Subject: [PATCH 026/266] kmemleak: Turn kmemleak_lock to raw spinlock on RT Subject: [PATCH 024/264] kmemleak: Turn kmemleak_lock to raw spinlock on RT
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and
causes the follow BUG. causes the follow BUG.

View File

@ -1,8 +1,8 @@
From 2392a2ef206d32260f9bf32e3f5041bb86920b15 Mon Sep 17 00:00:00 2001 From 82889085f9639d9aed51313cf8fd8e8ca32b8e8b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 28 Oct 2016 23:05:11 +0200 Date: Fri, 28 Oct 2016 23:05:11 +0200
Subject: [PATCH 027/266] NFSv4: replace seqcount_t with a seqlock_t Subject: [PATCH 025/264] NFSv4: replace seqcount_t with a seqlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
because it maps to preempt_disable() in -RT which I can't have at this because it maps to preempt_disable() in -RT which I can't have at this
@ -58,7 +58,7 @@ index 63287d911c08..2ae55eaa4a1e 100644
}; };
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index e7abcf7629b3..d95afb31b918 100644 index 580e37bc3fe2..9d010731f901 100644
--- a/fs/nfs/nfs4proc.c --- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c
@@ -2863,7 +2863,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, @@ -2863,7 +2863,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,

View File

@ -1,12 +1,12 @@
From 3550c358113e3e973671b39bbf26eacab512ef1c Mon Sep 17 00:00:00 2001 From 3ace22e122817ae9b6da2d0c49209a834f96375c Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 4 Apr 2017 12:50:16 +0200 Date: Tue, 4 Apr 2017 12:50:16 +0200
Subject: [PATCH 028/266] kernel: sched: Provide a pointer to the valid CPU Subject: [PATCH 026/264] kernel: sched: Provide a pointer to the valid CPU
mask mask
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed() In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
@ -271,7 +271,7 @@ index 0ceb3b6b37e7..ccfef702c771 100644
static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm) static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm)
diff --git a/include/linux/sched.h b/include/linux/sched.h diff --git a/include/linux/sched.h b/include/linux/sched.h
index 4abb5bd74b04..b347614b42f4 100644 index 5dc024e28397..fdb8ba398ea8 100644
--- a/include/linux/sched.h --- a/include/linux/sched.h
+++ b/include/linux/sched.h +++ b/include/linux/sched.h
@@ -660,7 +660,8 @@ struct task_struct { @@ -660,7 +660,8 @@ struct task_struct {
@ -334,10 +334,10 @@ index 64ef113e387e..bfe9c5c3eb88 100644
/* /*
* One for us, one for whoever does the "release_task()" (usually * One for us, one for whoever does the "release_task()" (usually
diff --git a/kernel/sched/core.c b/kernel/sched/core.c diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 152a0b0c91bb..c7377dcaf718 100644 index d7f409866cdf..80badc70c258 100644
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -877,7 +877,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p) @@ -878,7 +878,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p)
*/ */
static inline bool is_cpu_allowed(struct task_struct *p, int cpu) static inline bool is_cpu_allowed(struct task_struct *p, int cpu)
{ {
@ -346,7 +346,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
return false; return false;
if (is_per_cpu_kthread(p)) if (is_per_cpu_kthread(p))
@@ -972,7 +972,7 @@ static int migration_cpu_stop(void *data) @@ -973,7 +973,7 @@ static int migration_cpu_stop(void *data)
local_irq_disable(); local_irq_disable();
/* /*
* We need to explicitly wake pending tasks before running * We need to explicitly wake pending tasks before running
@ -355,7 +355,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
* during wakeups, see set_cpus_allowed_ptr()'s TASK_WAKING test. * during wakeups, see set_cpus_allowed_ptr()'s TASK_WAKING test.
*/ */
sched_ttwu_pending(); sched_ttwu_pending();
@@ -1003,7 +1003,7 @@ static int migration_cpu_stop(void *data) @@ -1004,7 +1004,7 @@ static int migration_cpu_stop(void *data)
*/ */
void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask) void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask)
{ {
@ -364,7 +364,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
p->nr_cpus_allowed = cpumask_weight(new_mask); p->nr_cpus_allowed = cpumask_weight(new_mask);
} }
@@ -1073,7 +1073,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, @@ -1074,7 +1074,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
goto out; goto out;
} }
@ -373,7 +373,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
goto out; goto out;
if (!cpumask_intersects(new_mask, cpu_valid_mask)) { if (!cpumask_intersects(new_mask, cpu_valid_mask)) {
@@ -1236,10 +1236,10 @@ static int migrate_swap_stop(void *data) @@ -1237,10 +1237,10 @@ static int migrate_swap_stop(void *data)
if (task_cpu(arg->src_task) != arg->src_cpu) if (task_cpu(arg->src_task) != arg->src_cpu)
goto unlock; goto unlock;
@ -386,7 +386,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
goto unlock; goto unlock;
__migrate_swap_task(arg->src_task, arg->dst_cpu); __migrate_swap_task(arg->src_task, arg->dst_cpu);
@@ -1281,10 +1281,10 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, @@ -1282,10 +1282,10 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p,
if (!cpu_active(arg.src_cpu) || !cpu_active(arg.dst_cpu)) if (!cpu_active(arg.src_cpu) || !cpu_active(arg.dst_cpu))
goto out; goto out;
@ -399,7 +399,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
goto out; goto out;
trace_sched_swap_numa(cur, arg.src_cpu, p, arg.dst_cpu); trace_sched_swap_numa(cur, arg.src_cpu, p, arg.dst_cpu);
@@ -1429,7 +1429,7 @@ void kick_process(struct task_struct *p) @@ -1430,7 +1430,7 @@ void kick_process(struct task_struct *p)
EXPORT_SYMBOL_GPL(kick_process); EXPORT_SYMBOL_GPL(kick_process);
/* /*
@ -408,7 +408,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
* *
* A few notes on cpu_active vs cpu_online: * A few notes on cpu_active vs cpu_online:
* *
@@ -1469,14 +1469,14 @@ static int select_fallback_rq(int cpu, struct task_struct *p) @@ -1470,14 +1470,14 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
for_each_cpu(dest_cpu, nodemask) { for_each_cpu(dest_cpu, nodemask) {
if (!cpu_active(dest_cpu)) if (!cpu_active(dest_cpu))
continue; continue;
@ -425,7 +425,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
if (!is_cpu_allowed(p, dest_cpu)) if (!is_cpu_allowed(p, dest_cpu))
continue; continue;
@@ -1520,7 +1520,7 @@ static int select_fallback_rq(int cpu, struct task_struct *p) @@ -1521,7 +1521,7 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
} }
/* /*
@ -434,7 +434,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
*/ */
static inline static inline
int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags)
@@ -1530,11 +1530,11 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) @@ -1531,11 +1531,11 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags)
if (p->nr_cpus_allowed > 1) if (p->nr_cpus_allowed > 1)
cpu = p->sched_class->select_task_rq(p, cpu, sd_flags, wake_flags); cpu = p->sched_class->select_task_rq(p, cpu, sd_flags, wake_flags);
else else
@ -448,7 +448,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
* CPU. * CPU.
* *
* Since this is common to all placement strategies, this lives here. * Since this is common to all placement strategies, this lives here.
@@ -2401,7 +2401,7 @@ void wake_up_new_task(struct task_struct *p) @@ -2402,7 +2402,7 @@ void wake_up_new_task(struct task_struct *p)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* /*
* Fork balancing, do it here and not earlier because: * Fork balancing, do it here and not earlier because:
@ -457,7 +457,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
* - any previously selected CPU might disappear through hotplug * - any previously selected CPU might disappear through hotplug
* *
* Use __set_task_cpu() to avoid calling sched_class::migrate_task_rq, * Use __set_task_cpu() to avoid calling sched_class::migrate_task_rq,
@@ -4274,7 +4274,7 @@ static int __sched_setscheduler(struct task_struct *p, @@ -4275,7 +4275,7 @@ static int __sched_setscheduler(struct task_struct *p,
* the entire root_domain to become SCHED_DEADLINE. We * the entire root_domain to become SCHED_DEADLINE. We
* will also fail if there's no bandwidth available. * will also fail if there's no bandwidth available.
*/ */
@ -466,7 +466,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
rq->rd->dl_bw.bw == 0) { rq->rd->dl_bw.bw == 0) {
task_rq_unlock(rq, p, &rf); task_rq_unlock(rq, p, &rf);
return -EPERM; return -EPERM;
@@ -4873,7 +4873,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask) @@ -4874,7 +4874,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask)
goto out_unlock; goto out_unlock;
raw_spin_lock_irqsave(&p->pi_lock, flags); raw_spin_lock_irqsave(&p->pi_lock, flags);
@ -475,7 +475,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
raw_spin_unlock_irqrestore(&p->pi_lock, flags); raw_spin_unlock_irqrestore(&p->pi_lock, flags);
out_unlock: out_unlock:
@@ -5453,7 +5453,7 @@ int task_can_attach(struct task_struct *p, @@ -5454,7 +5454,7 @@ int task_can_attach(struct task_struct *p,
* allowed nodes is unnecessary. Thus, cpusets are not * allowed nodes is unnecessary. Thus, cpusets are not
* applicable for such threads. This prevents checking for * applicable for such threads. This prevents checking for
* success of set_cpus_allowed_ptr() on all attached tasks * success of set_cpus_allowed_ptr() on all attached tasks
@ -484,7 +484,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
*/ */
if (p->flags & PF_NO_SETAFFINITY) { if (p->flags & PF_NO_SETAFFINITY) {
ret = -EINVAL; ret = -EINVAL;
@@ -5480,7 +5480,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu) @@ -5481,7 +5481,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
if (curr_cpu == target_cpu) if (curr_cpu == target_cpu)
return 0; return 0;
@ -493,7 +493,7 @@ index 152a0b0c91bb..c7377dcaf718 100644
return -EINVAL; return -EINVAL;
/* TODO: This is not properly updating schedstats */ /* TODO: This is not properly updating schedstats */
@@ -5618,7 +5618,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf) @@ -5619,7 +5619,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
put_prev_task(rq, next); put_prev_task(rq, next);
/* /*
@ -573,7 +573,7 @@ index 91e4202b0634..f927b1f45474 100644
!dl_task(task) || !dl_task(task) ||
!task_on_rq_queued(task))) { !task_on_rq_queued(task))) {
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 6afda059e882..09a1e32c366f 100644 index 53acadf72cd9..c17d63b06026 100644
--- a/kernel/sched/fair.c --- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c +++ b/kernel/sched/fair.c
@@ -1630,7 +1630,7 @@ static void task_numa_compare(struct task_numa_env *env, @@ -1630,7 +1630,7 @@ static void task_numa_compare(struct task_numa_env *env,
@ -594,7 +594,7 @@ index 6afda059e882..09a1e32c366f 100644
continue; continue;
env->dst_cpu = cpu; env->dst_cpu = cpu;
@@ -5712,7 +5712,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p, @@ -5737,7 +5737,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p,
/* Skip over this group if it has no CPUs allowed */ /* Skip over this group if it has no CPUs allowed */
if (!cpumask_intersects(sched_group_span(group), if (!cpumask_intersects(sched_group_span(group),
@ -603,7 +603,7 @@ index 6afda059e882..09a1e32c366f 100644
continue; continue;
local_group = cpumask_test_cpu(this_cpu, local_group = cpumask_test_cpu(this_cpu,
@@ -5844,7 +5844,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this @@ -5869,7 +5869,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this
return cpumask_first(sched_group_span(group)); return cpumask_first(sched_group_span(group));
/* Traverse only the allowed CPUs */ /* Traverse only the allowed CPUs */
@ -612,7 +612,7 @@ index 6afda059e882..09a1e32c366f 100644
if (available_idle_cpu(i)) { if (available_idle_cpu(i)) {
struct rq *rq = cpu_rq(i); struct rq *rq = cpu_rq(i);
struct cpuidle_state *idle = idle_get_state(rq); struct cpuidle_state *idle = idle_get_state(rq);
@@ -5884,7 +5884,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p @@ -5909,7 +5909,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p
{ {
int new_cpu = cpu; int new_cpu = cpu;
@ -621,7 +621,7 @@ index 6afda059e882..09a1e32c366f 100644
return prev_cpu; return prev_cpu;
/* /*
@@ -6001,7 +6001,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int @@ -6026,7 +6026,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
if (!test_idle_cores(target, false)) if (!test_idle_cores(target, false))
return -1; return -1;
@ -630,7 +630,7 @@ index 6afda059e882..09a1e32c366f 100644
for_each_cpu_wrap(core, cpus, target) { for_each_cpu_wrap(core, cpus, target) {
bool idle = true; bool idle = true;
@@ -6035,7 +6035,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t @@ -6060,7 +6060,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t
return -1; return -1;
for_each_cpu(cpu, cpu_smt_mask(target)) { for_each_cpu(cpu, cpu_smt_mask(target)) {
@ -639,7 +639,7 @@ index 6afda059e882..09a1e32c366f 100644
continue; continue;
if (available_idle_cpu(cpu)) if (available_idle_cpu(cpu))
return cpu; return cpu;
@@ -6098,7 +6098,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t @@ -6123,7 +6123,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
for_each_cpu_wrap(cpu, sched_domain_span(sd), target) { for_each_cpu_wrap(cpu, sched_domain_span(sd), target) {
if (!--nr) if (!--nr)
return -1; return -1;
@ -648,7 +648,7 @@ index 6afda059e882..09a1e32c366f 100644
continue; continue;
if (available_idle_cpu(cpu)) if (available_idle_cpu(cpu))
break; break;
@@ -6135,7 +6135,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) @@ -6160,7 +6160,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
recent_used_cpu != target && recent_used_cpu != target &&
cpus_share_cache(recent_used_cpu, target) && cpus_share_cache(recent_used_cpu, target) &&
available_idle_cpu(recent_used_cpu) && available_idle_cpu(recent_used_cpu) &&
@ -657,7 +657,7 @@ index 6afda059e882..09a1e32c366f 100644
/* /*
* Replace recent_used_cpu with prev as it is a potential * Replace recent_used_cpu with prev as it is a potential
* candidate for the next wake: * candidate for the next wake:
@@ -6353,7 +6353,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f @@ -6378,7 +6378,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f
if (sd_flag & SD_BALANCE_WAKE) { if (sd_flag & SD_BALANCE_WAKE) {
record_wakee(p); record_wakee(p);
want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu) want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu)
@ -666,7 +666,7 @@ index 6afda059e882..09a1e32c366f 100644
} }
rcu_read_lock(); rcu_read_lock();
@@ -7092,14 +7092,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) @@ -7117,14 +7117,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
/* /*
* We do not migrate tasks that are: * We do not migrate tasks that are:
* 1) throttled_lb_pair, or * 1) throttled_lb_pair, or
@ -683,7 +683,7 @@ index 6afda059e882..09a1e32c366f 100644
int cpu; int cpu;
schedstat_inc(p->se.statistics.nr_failed_migrations_affine); schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
@@ -7119,7 +7119,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) @@ -7144,7 +7144,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
/* Prevent to re-select dst_cpu via env's CPUs: */ /* Prevent to re-select dst_cpu via env's CPUs: */
for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) { for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) {
@ -692,7 +692,7 @@ index 6afda059e882..09a1e32c366f 100644
env->flags |= LBF_DST_PINNED; env->flags |= LBF_DST_PINNED;
env->new_dst_cpu = cpu; env->new_dst_cpu = cpu;
break; break;
@@ -7716,7 +7716,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd) @@ -7741,7 +7741,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd)
/* /*
* Group imbalance indicates (and tries to solve) the problem where balancing * Group imbalance indicates (and tries to solve) the problem where balancing
@ -701,7 +701,7 @@ index 6afda059e882..09a1e32c366f 100644
* *
* Imagine a situation of two groups of 4 CPUs each and 4 tasks each with a * Imagine a situation of two groups of 4 CPUs each and 4 tasks each with a
* cpumask covering 1 CPU of the first group and 3 CPUs of the second group. * cpumask covering 1 CPU of the first group and 3 CPUs of the second group.
@@ -8331,7 +8331,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env) @@ -8356,7 +8356,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env)
/* /*
* If the busiest group is imbalanced the below checks don't * If the busiest group is imbalanced the below checks don't
* work because they assume all things are equal, which typically * work because they assume all things are equal, which typically
@ -710,7 +710,7 @@ index 6afda059e882..09a1e32c366f 100644
*/ */
if (busiest->group_type == group_imbalanced) if (busiest->group_type == group_imbalanced)
goto force_balance; goto force_balance;
@@ -8727,7 +8727,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, @@ -8752,7 +8752,7 @@ static int load_balance(int this_cpu, struct rq *this_rq,
* if the curr task on busiest CPU can't be * if the curr task on busiest CPU can't be
* moved to this_cpu: * moved to this_cpu:
*/ */

View File

@ -1,8 +1,8 @@
From 6a012b467f25731ba6206a66f07c024a3b88a964 Mon Sep 17 00:00:00 2001 From 2fc8b5c9ca4ff2df7913d6e6d75a98bdece9b264 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200 Date: Sat, 27 May 2017 19:02:06 +0200
Subject: [PATCH 029/266] kernel/sched/core: add migrate_disable() Subject: [PATCH 027/264] kernel/sched/core: add migrate_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
--- ---
include/linux/preempt.h | 23 +++++++ include/linux/preempt.h | 23 +++++++
@ -54,7 +54,7 @@ index c01813c3fbe9..3196d0e76719 100644
#ifdef MODULE #ifdef MODULE
diff --git a/include/linux/sched.h b/include/linux/sched.h diff --git a/include/linux/sched.h b/include/linux/sched.h
index b347614b42f4..fad3583f0933 100644 index fdb8ba398ea8..df39ad5916e7 100644
--- a/include/linux/sched.h --- a/include/linux/sched.h
+++ b/include/linux/sched.h +++ b/include/linux/sched.h
@@ -662,6 +662,13 @@ struct task_struct { @@ -662,6 +662,13 @@ struct task_struct {
@ -86,10 +86,10 @@ index 9fb239e12b82..5801e516ba63 100644
* Callback to arch code if there's nosmp or maxcpus=0 on the * Callback to arch code if there's nosmp or maxcpus=0 on the
* boot command line: * boot command line:
diff --git a/kernel/sched/core.c b/kernel/sched/core.c diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index c7377dcaf718..77f3c4771a2b 100644 index 80badc70c258..3df110e8c6f9 100644
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -1007,7 +1007,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma @@ -1008,7 +1008,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
p->nr_cpus_allowed = cpumask_weight(new_mask); p->nr_cpus_allowed = cpumask_weight(new_mask);
} }
@ -106,7 +106,7 @@ index c7377dcaf718..77f3c4771a2b 100644
{ {
struct rq *rq = task_rq(p); struct rq *rq = task_rq(p);
bool queued, running; bool queued, running;
@@ -1036,6 +1044,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) @@ -1037,6 +1045,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
set_curr_task(rq, p); set_curr_task(rq, p);
} }
@ -127,7 +127,7 @@ index c7377dcaf718..77f3c4771a2b 100644
/* /*
* Change a given task's CPU affinity. Migrate the thread to a * Change a given task's CPU affinity. Migrate the thread to a
* proper CPU and schedule it away if the CPU it's executing on * proper CPU and schedule it away if the CPU it's executing on
@@ -1094,9 +1116,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, @@ -1095,9 +1117,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
} }
/* Can the task run on the task's current CPU? If so, we're done */ /* Can the task run on the task's current CPU? If so, we're done */
@ -145,7 +145,7 @@ index c7377dcaf718..77f3c4771a2b 100644
dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask); dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
if (task_running(rq, p) || p->state == TASK_WAKING) { if (task_running(rq, p) || p->state == TASK_WAKING) {
struct migration_arg arg = { p, dest_cpu }; struct migration_arg arg = { p, dest_cpu };
@@ -7059,3 +7088,100 @@ const u32 sched_prio_to_wmult[40] = { @@ -7060,3 +7089,100 @@ const u32 sched_prio_to_wmult[40] = {
}; };
#undef CREATE_TRACE_POINTS #undef CREATE_TRACE_POINTS
@ -247,10 +247,10 @@ index c7377dcaf718..77f3c4771a2b 100644
+EXPORT_SYMBOL(migrate_enable); +EXPORT_SYMBOL(migrate_enable);
+#endif +#endif
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 6383aa6a60ca..a719e44debdf 100644 index 141ea9ff210e..34c27afae009 100644
--- a/kernel/sched/debug.c --- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c +++ b/kernel/sched/debug.c
@@ -978,6 +978,10 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns, @@ -982,6 +982,10 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns,
P(dl.runtime); P(dl.runtime);
P(dl.deadline); P(dl.deadline);
} }

View File

@ -1,9 +1,9 @@
From 44ee5f4d373ec3180cec3b68f606a77be0ac2dfb Mon Sep 17 00:00:00 2001 From 0af010b771c642c17c33fbc991e183c04427af59 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 9 Oct 2018 17:34:50 +0200 Date: Tue, 9 Oct 2018 17:34:50 +0200
Subject: [PATCH 030/266] sched/migrate_disable: Add export_symbol_gpl for Subject: [PATCH 028/264] sched/migrate_disable: Add export_symbol_gpl for
__migrate_disabled __migrate_disabled
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Jonathan reported that lttng/modules can't use __migrate_disabled(). Jonathan reported that lttng/modules can't use __migrate_disabled().
This function is only used by sched/core itself and the tracing This function is only used by sched/core itself and the tracing
@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 77f3c4771a2b..f027ac73f1df 100644 index 3df110e8c6f9..9c4a9f0a627b 100644
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -1012,6 +1012,7 @@ int __migrate_disabled(struct task_struct *p) @@ -1013,6 +1013,7 @@ int __migrate_disabled(struct task_struct *p)
{ {
return p->migrate_disable; return p->migrate_disable;
} }

View File

@ -1,8 +1,8 @@
From 884ce05ebcdf5862f6b5a568ab9635db6bd7618b Mon Sep 17 00:00:00 2001 From 245bd7bd92ce193e01ef35fbdaae505d5eefd28b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 9 Mar 2016 10:51:06 +0100 Date: Wed, 9 Mar 2016 10:51:06 +0100
Subject: [PATCH 031/266] arm: at91: do not disable/enable clocks in a row Subject: [PATCH 029/264] arm: at91: do not disable/enable clocks in a row
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Currently the driver will disable the clock and enable it one line later Currently the driver will disable the clock and enable it one line later
if it is switching from periodic mode into one shot. if it is switching from periodic mode into one shot.

View File

@ -1,12 +1,12 @@
From 49d48ae23e845a4b2daeb6bfae37d5c8f5e3acbf Mon Sep 17 00:00:00 2001 From 7b123775c97399cd5ca5394392bf72c5d73f2808 Mon Sep 17 00:00:00 2001
From: Benedikt Spranger <b.spranger@linutronix.de> From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100 Date: Mon, 8 Mar 2010 18:57:04 +0100
Subject: [PATCH 032/266] clocksource: TCLIB: Allow higher clock rates for Subject: [PATCH 030/264] clocksource: TCLIB: Allow higher clock rates for
clock events clock events
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
As default the TCLIB uses the 32KiHz base clock rate for clock events. As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution. Add a compile time selection to allow higher clock resulution.

View File

@ -1,8 +1,8 @@
From 3ae267e2e8aab45de92b1aa5900c038e4dc41f50 Mon Sep 17 00:00:00 2001 From 5a0bfb35b3b826135a39a8e8744e9926b5be7607 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Feb 2013 22:36:59 +0100 Date: Thu, 14 Feb 2013 22:36:59 +0100
Subject: [PATCH 033/266] timekeeping: Split jiffies seqlock Subject: [PATCH 031/264] timekeeping: Split jiffies seqlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so
it can be taken in atomic context on RT. it can be taken in atomic context on RT.
@ -43,7 +43,7 @@ index 497719127bf9..62acb8914c9e 100644
} }
EXPORT_SYMBOL(get_jiffies_64); EXPORT_SYMBOL(get_jiffies_64);
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
index 14de3727b18e..7a87a4488a5e 100644 index a02e0f6b287c..32f5101f07ce 100644
--- a/kernel/time/tick-common.c --- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c
@@ -79,13 +79,15 @@ int tick_is_oneshot_available(void) @@ -79,13 +79,15 @@ int tick_is_oneshot_available(void)
@ -153,10 +153,10 @@ index 7846ce24ecc0..68cf97548cba 100644
update_wall_time(); update_wall_time();
} }
diff --git a/kernel/time/timekeeping.h b/kernel/time/timekeeping.h diff --git a/kernel/time/timekeeping.h b/kernel/time/timekeeping.h
index 7a9b4eb7a1d5..acdcf97c99b6 100644 index 141ab3ab0354..099737f6f10c 100644
--- a/kernel/time/timekeeping.h --- a/kernel/time/timekeeping.h
+++ b/kernel/time/timekeeping.h +++ b/kernel/time/timekeeping.h
@@ -18,7 +18,8 @@ extern void timekeeping_resume(void); @@ -25,7 +25,8 @@ static inline void sched_clock_resume(void) { }
extern void do_timer(unsigned long ticks); extern void do_timer(unsigned long ticks);
extern void update_wall_time(void); extern void update_wall_time(void);

View File

@ -1,8 +1,8 @@
From 2175ca2814836e7e7d495cf207d249a002d49ee0 Mon Sep 17 00:00:00 2001 From a9a18a8c88bd90bdac5f33690be17244dc22bd22 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 21 Sep 2011 19:57:12 +0200 Date: Wed, 21 Sep 2011 19:57:12 +0200
Subject: [PATCH 034/266] signal: Revert ptrace preempt magic Subject: [PATCH 032/264] signal: Revert ptrace preempt magic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more
than a bandaid around the ptrace design trainwreck. It's not a than a bandaid around the ptrace design trainwreck. It's not a

View File

@ -1,8 +1,8 @@
From df35af291276401c47cf6afbd0bc820042b377f6 Mon Sep 17 00:00:00 2001 From b1e277ed2b65bf647c2a6dc2d103ffe5aa2e4fa7 Mon Sep 17 00:00:00 2001
From: Marc Kleine-Budde <mkl@pengutronix.de> From: Marc Kleine-Budde <mkl@pengutronix.de>
Date: Wed, 5 Mar 2014 00:49:47 +0100 Date: Wed, 5 Mar 2014 00:49:47 +0100
Subject: [PATCH 035/266] net: sched: Use msleep() instead of yield() Subject: [PATCH 033/264] net: sched: Use msleep() instead of yield()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50 On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50
(by default). If a high priority userspace process tries to shut down a busy (by default). If a high priority userspace process tries to shut down a busy

View File

@ -1,8 +1,8 @@
From 8af534638743235393fc2e64e1c5733004109d9f Mon Sep 17 00:00:00 2001 From 812137beb49a5dea2e269ea9739d0ed291e27375 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 27 Mar 2018 16:24:15 +0200 Date: Tue, 27 Mar 2018 16:24:15 +0200
Subject: [PATCH 036/266] dm rq: remove BUG_ON(!irqs_disabled) check Subject: [PATCH 034/264] dm rq: remove BUG_ON(!irqs_disabled) check
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
In commit 052189a2ec95 ("dm: remove superfluous irq disablement in In commit 052189a2ec95 ("dm: remove superfluous irq disablement in
dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a

View File

@ -1,8 +1,8 @@
From c2f85857815236fb7367336e1a6f1edcc87b137b Mon Sep 17 00:00:00 2001 From e958966734633c26363abc8920eca9c38e5cd7ce Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Nov 2013 17:34:54 +0100 Date: Fri, 8 Nov 2013 17:34:54 +0100
Subject: [PATCH 037/266] usb: do no disable interrupts in giveback Subject: [PATCH 035/264] usb: do no disable interrupts in giveback
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") the USB code disables interrupts before invoking the complete context") the USB code disables interrupts before invoking the complete

View File

@ -1,8 +1,8 @@
From 667e1ce22caf422d9c7b4b05bdde2c47a2e74756 Mon Sep 17 00:00:00 2001 From 588e8fb01ec7915ef280606b80bd605f49c56915 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 12:39:57 +0200 Date: Fri, 17 Jun 2011 12:39:57 +0200
Subject: [PATCH 038/266] rt: Provide PREEMPT_RT_BASE config switch Subject: [PATCH 036/264] rt: Provide PREEMPT_RT_BASE config switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Introduce PREEMPT_RT_BASE which enables parts of Introduce PREEMPT_RT_BASE which enables parts of
PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT

View File

@ -1,8 +1,8 @@
From 18f9f1c6657f01598563025bf4d8c56bee127c3e Mon Sep 17 00:00:00 2001 From 9480b8b41cb649337466e43807eff3816a9530bc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100 Date: Wed, 14 Dec 2011 01:03:49 +0100
Subject: [PATCH 039/266] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT Subject: [PATCH 037/264] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
There are "valid" GFP_ATOMIC allocations such as There are "valid" GFP_ATOMIC allocations such as
@ -47,7 +47,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 2 insertions(+), 1 deletion(-) 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 44c6a82b7ce5..06c3ec0c9c12 100644 index e76d16ac2776..04a45d6d0167 100644
--- a/arch/x86/Kconfig --- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig +++ b/arch/x86/Kconfig
@@ -934,7 +934,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT @@ -934,7 +934,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT

View File

@ -1,8 +1,8 @@
From 285155bfdfd713f7a20b7b2607bebaa3b6e226d6 Mon Sep 17 00:00:00 2001 From d23a435dc809c84e3185683681ef735f2097fe57 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Jul 2015 17:14:48 +0200 Date: Wed, 8 Jul 2015 17:14:48 +0200
Subject: [PATCH 040/266] jump-label: disable if stop_machine() is used Subject: [PATCH 038/264] jump-label: disable if stop_machine() is used
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Some architectures are using stop_machine() while switching the opcode which Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes. leads to latency spikes.

View File

@ -1,9 +1,9 @@
From d751d981bb0b049a6d70770a570d844cc6d7d69f Mon Sep 17 00:00:00 2001 From 6c83d4802fcd91010b16a5a69456c7370cd10f9f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200 Date: Sun, 24 Jul 2011 12:11:43 +0200
Subject: [PATCH 041/266] kconfig: Disable config options which are not RT Subject: [PATCH 039/264] kconfig: Disable config options which are not RT
compatible compatible
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Disable stuff which is known to have issues on RT Disable stuff which is known to have issues on RT

View File

@ -1,11 +1,11 @@
From c0eb3a8fa85bf6f84e02e76fcb71c49ed95e08c3 Mon Sep 17 00:00:00 2001 From 968d103b4727308889b77f3fa556e149bba6d56c Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 17 Oct 2017 16:36:18 +0200 Date: Tue, 17 Oct 2017 16:36:18 +0200
Subject: [PATCH 042/266] lockdep: disable self-test Subject: [PATCH 040/264] lockdep: disable self-test
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The self-test wasn't always 100% accurate for RT. We disabled a few The self-test wasn't always 100% accurate for RT. We disabled a few
tests which failed because they had a different semantic for RT. Some tests which failed because they had a different semantic for RT. Some

View File

@ -1,8 +1,8 @@
From 3c67357f9ddd2cd3edc9e9703489fe065841c745 Mon Sep 17 00:00:00 2001 From 16680836f36c75ccaff96ab3155869144b0dd028 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:44:03 -0500 Date: Fri, 3 Jul 2009 08:44:03 -0500
Subject: [PATCH 043/266] mm: Allow only slub on RT Subject: [PATCH 041/264] mm: Allow only slub on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs. Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.

View File

@ -1,11 +1,11 @@
From da969770d426e1540fefe9ce5babeb38ed79736e Mon Sep 17 00:00:00 2001 From a506cf490ae3e346c6082877f109fcf34568f22d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:51:45 +0200 Date: Sun, 17 Jul 2011 21:51:45 +0200
Subject: [PATCH 044/266] locking: Disable spin on owner for RT Subject: [PATCH 042/264] locking: Disable spin on owner for RT
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Drop spin on owner for mutex / rwsem. We are most likely not using it Drop spin on owner for mutex / rwsem. We are most likely not using it
but… but…

View File

@ -1,8 +1,8 @@
From 7693a7d0ace9236acfc968d46960678bf81951a2 Mon Sep 17 00:00:00 2001 From 30987f403875e211eee90cac11127e04b1a27c73 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 28 Oct 2012 13:26:09 +0000 Date: Sun, 28 Oct 2012 13:26:09 +0000
Subject: [PATCH 045/266] rcu: Disable RCU_FAST_NO_HZ on RT Subject: [PATCH 043/264] rcu: Disable RCU_FAST_NO_HZ on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
This uses a timer_list timer from the irq disabled guts of the idle This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage. code. Disable it for now to prevent wreckage.

View File

@ -1,8 +1,8 @@
From 9663e4eb2ef8749e6888e179b36148a33b0903b6 Mon Sep 17 00:00:00 2001 From 709173f4678f7f2f0b834e508d8044821d1c2354 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Mar 2014 20:19:05 +0100 Date: Fri, 21 Mar 2014 20:19:05 +0100
Subject: [PATCH 046/266] rcu: make RCU_BOOST default on RT Subject: [PATCH 044/264] rcu: make RCU_BOOST default on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Since it is no longer invoked from the softirq people run into OOM more Since it is no longer invoked from the softirq people run into OOM more
often if the priority of the RCU thread is too low. Making boosting often if the priority of the RCU thread is too low. Making boosting

View File

@ -1,8 +1,8 @@
From 066901c0a5deb8707fb2288c085499a4c497b029 Mon Sep 17 00:00:00 2001 From 56d2f884391ba7e98721f6639f87698e46429c7f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:03:52 +0200 Date: Mon, 18 Jul 2011 17:03:52 +0200
Subject: [PATCH 047/266] sched: Disable CONFIG_RT_GROUP_SCHED on RT Subject: [PATCH 045/264] sched: Disable CONFIG_RT_GROUP_SCHED on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Carsten reported problems when running: Carsten reported problems when running:

View File

@ -1,11 +1,11 @@
From 41d940e10ea6260a89e82f3bc62428bca1a8373a Mon Sep 17 00:00:00 2001 From a5a9737c0c6edf17eecb16a923a936432f11019e Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200 Date: Sat, 27 May 2017 19:02:06 +0200
Subject: [PATCH 048/266] net/core: disable NET_RX_BUSY_POLL Subject: [PATCH 046/264] net/core: disable NET_RX_BUSY_POLL
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
sk_busy_loop() does preempt_disable() followed by a few operations which can sk_busy_loop() does preempt_disable() followed by a few operations which can
take sleeping locks and may get long. take sleeping locks and may get long.

View File

@ -1,8 +1,8 @@
From 971f370fb7433d4b34102c32dea2095776b569b1 Mon Sep 17 00:00:00 2001 From 0db6c523b2591dbf527c759ef1b3718f96bc3c29 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 1 Dec 2017 10:42:03 +0100 Date: Fri, 1 Dec 2017 10:42:03 +0100
Subject: [PATCH 049/266] arm*: disable NEON in kernel mode Subject: [PATCH 047/264] arm*: disable NEON in kernel mode
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
NEON in kernel mode is used by the crypto algorithms and raid6 code. NEON in kernel mode is used by the crypto algorithms and raid6 code.
While the raid6 code looks okay, the crypto algorithms do not: NEON While the raid6 code looks okay, the crypto algorithms do not: NEON

View File

@ -1,8 +1,8 @@
From 50ff216c2966385635b18c93bcbd6fc09bb6a942 Mon Sep 17 00:00:00 2001 From 24bc2177006a16588c79a438ba84122ec215135a Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200 Date: Tue, 14 Jul 2015 14:26:34 +0200
Subject: [PATCH 050/266] powerpc: Use generic rwsem on RT Subject: [PATCH 048/264] powerpc: Use generic rwsem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Use generic code which uses rtmutex Use generic code which uses rtmutex

View File

@ -1,9 +1,9 @@
From a87ef1b342f7eccaee4350f3b40f04cb8146563f Mon Sep 17 00:00:00 2001 From 86dd7e931e1f812e0fc9b44545ed1f9ffc80dcae Mon Sep 17 00:00:00 2001
From: Bogdan Purcareata <bogdan.purcareata@freescale.com> From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Date: Fri, 24 Apr 2015 15:53:13 +0000 Date: Fri, 24 Apr 2015 15:53:13 +0000
Subject: [PATCH 051/266] powerpc/kvm: Disable in-kernel MPIC emulation for Subject: [PATCH 049/264] powerpc/kvm: Disable in-kernel MPIC emulation for
PREEMPT_RT_FULL PREEMPT_RT_FULL
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
While converting the openpic emulation code to use a raw_spinlock_t enables While converting the openpic emulation code to use a raw_spinlock_t enables
guests to run on RT, there's still a performance issue. For interrupts sent in guests to run on RT, there's still a performance issue. For interrupts sent in

View File

@ -1,8 +1,8 @@
From 82b9e441c6737a2e2b23018ef6ee5e8ea70bea92 Mon Sep 17 00:00:00 2001 From f5b4401c967f9ead16662b347d2082f8f2743205 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:08:34 +0200 Date: Mon, 18 Jul 2011 17:08:34 +0200
Subject: [PATCH 052/266] powerpc: Disable highmem on RT Subject: [PATCH 050/264] powerpc: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The current highmem handling on -RT is not compatible and needs fixups. The current highmem handling on -RT is not compatible and needs fixups.

View File

@ -1,8 +1,8 @@
From 1f9a74c4a2b97a80e19078334933194464eea4e4 Mon Sep 17 00:00:00 2001 From 29b46bfd781d871ae857c940e6ef76454bf356c2 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:10:12 +0200 Date: Mon, 18 Jul 2011 17:10:12 +0200
Subject: [PATCH 053/266] mips: Disable highmem on RT Subject: [PATCH 051/264] mips: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The current highmem handling on -RT is not compatible and needs fixups. The current highmem handling on -RT is not compatible and needs fixups.

View File

@ -1,8 +1,8 @@
From 9090d6e680a6bc0177bc228d335f7185ae51a20b Mon Sep 17 00:00:00 2001 From 789344b11534d2799fbc807496846f21869124b5 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 26 Jul 2009 02:21:32 +0200 Date: Sun, 26 Jul 2009 02:21:32 +0200
Subject: [PATCH 054/266] x86: Use generic rwsem_spinlocks on -rt Subject: [PATCH 052/264] x86: Use generic rwsem_spinlocks on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Simplifies the separation of anon_rw_semaphores and rw_semaphores for Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt. -rt.
@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 4 insertions(+), 1 deletion(-) 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 06c3ec0c9c12..8c56260bdf84 100644 index 04a45d6d0167..1b05ae86bdde 100644
--- a/arch/x86/Kconfig --- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig +++ b/arch/x86/Kconfig
@@ -264,8 +264,11 @@ config ARCH_MAY_HAVE_PC_FDC @@ -264,8 +264,11 @@ config ARCH_MAY_HAVE_PC_FDC

View File

@ -1,8 +1,8 @@
From 6735813a67410ba9afbfa1a69797e4b21b41e5d6 Mon Sep 17 00:00:00 2001 From 7554227ac04319dadc334245535dd1d21d258de0 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 23 Jan 2014 14:45:59 +0100 Date: Thu, 23 Jan 2014 14:45:59 +0100
Subject: [PATCH 055/266] leds: trigger: disable CPU trigger on -RT Subject: [PATCH 053/264] leds: trigger: disable CPU trigger on -RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
as it triggers: as it triggers:
|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141

View File

@ -1,8 +1,8 @@
From 5c0e9974fc9f622e71e435b87ffad62998c6ab07 Mon Sep 17 00:00:00 2001 From 57c3607ed990ada1d1636542d00bd3ed95e243da Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 9 Apr 2015 15:23:01 +0200 Date: Thu, 9 Apr 2015 15:23:01 +0200
Subject: [PATCH 056/266] cpufreq: drop K8's driver from beeing selected Subject: [PATCH 054/264] cpufreq: drop K8's driver from beeing selected
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Ralf posted a picture of a backtrace from Ralf posted a picture of a backtrace from

View File

@ -1,11 +1,11 @@
From affa4221731e24ded417ce3ae0d456609f586437 Mon Sep 17 00:00:00 2001 From 53eb768ccfb675d61d67bd236402aa90434a6923 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 29 Aug 2013 11:48:57 +0200 Date: Thu, 29 Aug 2013 11:48:57 +0200
Subject: [PATCH 057/266] md: disable bcache Subject: [PATCH 055/264] md: disable bcache
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
It uses anon semaphores It uses anon semaphores
|drivers/md/bcache/request.c: In function cached_dev_write_complete: |drivers/md/bcache/request.c: In function cached_dev_write_complete:

View File

@ -1,8 +1,8 @@
From f6bac5f902f6e18278e4e5882195b993725d520b Mon Sep 17 00:00:00 2001 From 62309a1da779bde384a7645a7d3e2713520a76da Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:03:16 +0200 Date: Thu, 26 Jul 2018 15:03:16 +0200
Subject: [PATCH 058/266] efi: Disable runtime services on RT Subject: [PATCH 056/264] efi: Disable runtime services on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Based on meassurements the EFI functions get_variable / Based on meassurements the EFI functions get_variable /
get_next_variable take up to 2us which looks okay. get_next_variable take up to 2us which looks okay.

View File

@ -1,8 +1,8 @@
From db94b434e576549c696fa88efa6da37686c3105e Mon Sep 17 00:00:00 2001 From 09acfc4d67168f054485eb40955069fa2390a5ec Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 22 Jul 2011 17:58:40 +0200 Date: Fri, 22 Jul 2011 17:58:40 +0200
Subject: [PATCH 059/266] printk: Add a printk kill switch Subject: [PATCH 057/264] printk: Add a printk kill switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
it does not dead-lock with the early printk code. it does not dead-lock with the early printk code.

View File

@ -1,9 +1,9 @@
From d8d56f3a4ed8403b82e04725ee6de60304deb3a3 Mon Sep 17 00:00:00 2001 From 3dd75cbf0c1ddd8dc0a7c0492e86f7293a730145 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org> From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 2 Sep 2011 14:41:29 +0200 Date: Fri, 2 Sep 2011 14:41:29 +0200
Subject: [PATCH 060/266] printk: Add "force_early_printk" boot param to help Subject: [PATCH 058/264] printk: Add "force_early_printk" boot param to help
with debugging with debugging
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Gives me an option to screw printk and actually see what the machine Gives me an option to screw printk and actually see what the machine
says. says.

View File

@ -1,8 +1,8 @@
From 06d1d562d9934f5c0fa80e760657900af0dd35cd Mon Sep 17 00:00:00 2001 From 31772df387205be3a95e3d0bc21b7b81a244f6df Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jul 2009 12:38:56 +0200 Date: Fri, 24 Jul 2009 12:38:56 +0200
Subject: [PATCH 061/266] preempt: Provide preempt_*_(no)rt variants Subject: [PATCH 059/264] preempt: Provide preempt_*_(no)rt variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
RT needs a few preempt_disable/enable points which are not necessary RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery. otherwise. Implement variants to avoid #ifdeffery.

View File

@ -1,9 +1,9 @@
From fcac9e8e052ad0a523a1cf3096b7e506754fa454 Mon Sep 17 00:00:00 2001 From c78bd62f56b86aa7717ac7a79e288fa8b3978573 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Mar 2017 14:23:35 +0100 Date: Wed, 8 Mar 2017 14:23:35 +0100
Subject: [PATCH 062/266] futex: workaround migrate_disable/enable in different Subject: [PATCH 060/264] futex: workaround migrate_disable/enable in different
context context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
migrate_disable()/migrate_enable() takes a different path in atomic() vs migrate_disable()/migrate_enable() takes a different path in atomic() vs
!atomic() context. These little hacks ensure that we don't underflow / overflow !atomic() context. These little hacks ensure that we don't underflow / overflow
@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 19 insertions(+) 1 file changed, 19 insertions(+)
diff --git a/kernel/futex.c b/kernel/futex.c diff --git a/kernel/futex.c b/kernel/futex.c
index c5fca746edc4..cea098efd12e 100644 index 5a26d843a015..1bd0950bea4e 100644
--- a/kernel/futex.c --- a/kernel/futex.c
+++ b/kernel/futex.c +++ b/kernel/futex.c
@@ -2859,6 +2859,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, @@ -2859,6 +2859,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,

View File

@ -1,8 +1,8 @@
From f9239dc23086d9c032d0d537c9963abb576143ee Mon Sep 17 00:00:00 2001 From 5b811e266fa9c293395c73c7a21e7e5c5a51deb1 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 20 Jun 2011 09:03:47 +0200 Date: Mon, 20 Jun 2011 09:03:47 +0200
Subject: [PATCH 063/266] rt: Add local irq locks Subject: [PATCH 061/264] rt: Add local irq locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Introduce locallock. For !RT this maps to preempt_disable()/ Introduce locallock. For !RT this maps to preempt_disable()/
local_irq_disable() so there is not much that changes. For RT this will local_irq_disable() so there is not much that changes. For RT this will

View File

@ -1,8 +1,8 @@
From 9e4d01906d9d81f07d456fb83b1bdd5ff019047f Mon Sep 17 00:00:00 2001 From 251ca7087d744d8b174f8488d2f7ea42cedaccf3 Mon Sep 17 00:00:00 2001
From: Julia Cartwright <julia@ni.com> From: Julia Cartwright <julia@ni.com>
Date: Mon, 7 May 2018 08:58:56 -0500 Date: Mon, 7 May 2018 08:58:56 -0500
Subject: [PATCH 064/266] locallock: provide {get,put}_locked_ptr() variants Subject: [PATCH 062/264] locallock: provide {get,put}_locked_ptr() variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Provide a set of locallocked accessors for pointers to per-CPU data; Provide a set of locallocked accessors for pointers to per-CPU data;
this is useful for dynamically-allocated per-CPU regions, for example. this is useful for dynamically-allocated per-CPU regions, for example.

View File

@ -1,8 +1,8 @@
From 4fd0a81c1f1b284d3b3833169556b1476d2aa4e8 Mon Sep 17 00:00:00 2001 From bdf1c5db6f1c5d8fe706592f9373849948d65813 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:34 -0500 Date: Fri, 3 Jul 2009 08:44:34 -0500
Subject: [PATCH 065/266] mm/scatterlist: Do not disable irqs on RT Subject: [PATCH 063/264] mm/scatterlist: Do not disable irqs on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
For -RT it is enough to keep pagefault disabled (which is currently handled by For -RT it is enough to keep pagefault disabled (which is currently handled by
kmap_atomic()). kmap_atomic()).

View File

@ -1,8 +1,8 @@
From bacf069f1145a471fbdaafd0d2e75d1ca061c4e9 Mon Sep 17 00:00:00 2001 From d892f2116baf1643d4d3c792231c687fa49b71ce Mon Sep 17 00:00:00 2001
From: Oleg Nesterov <oleg@redhat.com> From: Oleg Nesterov <oleg@redhat.com>
Date: Tue, 14 Jul 2015 14:26:34 +0200 Date: Tue, 14 Jul 2015 14:26:34 +0200
Subject: [PATCH 066/266] signal/x86: Delay calling signals in atomic Subject: [PATCH 064/264] signal/x86: Delay calling signals in atomic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
On x86_64 we must disable preemption before we enable interrupts On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using for stack faults, int3 and debugging, because the current task is using
@ -80,7 +80,7 @@ index 33d3c88a7225..fb0438d06ca7 100644
typedef sigset_t compat_sigset_t; typedef sigset_t compat_sigset_t;
#endif #endif
diff --git a/include/linux/sched.h b/include/linux/sched.h diff --git a/include/linux/sched.h b/include/linux/sched.h
index fad3583f0933..daa99f3b7c78 100644 index df39ad5916e7..535e57775208 100644
--- a/include/linux/sched.h --- a/include/linux/sched.h
+++ b/include/linux/sched.h +++ b/include/linux/sched.h
@@ -881,6 +881,10 @@ struct task_struct { @@ -881,6 +881,10 @@ struct task_struct {

View File

@ -1,8 +1,8 @@
From fdbf4b87f2f3db9fbada1069ca5f38dc2384cec6 Mon Sep 17 00:00:00 2001 From 6828880f532efdf1ded1248f5e0ea555e9520eda Mon Sep 17 00:00:00 2001
From: Yang Shi <yang.shi@linaro.org> From: Yang Shi <yang.shi@linaro.org>
Date: Thu, 10 Dec 2015 10:58:51 -0800 Date: Thu, 10 Dec 2015 10:58:51 -0800
Subject: [PATCH 067/266] x86/signal: delay calling signals on 32bit Subject: [PATCH 065/264] x86/signal: delay calling signals on 32bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
When running some ptrace single step tests on x86-32 machine, the below problem When running some ptrace single step tests on x86-32 machine, the below problem
is triggered: is triggered:

View File

@ -1,8 +1,8 @@
From b46962ff96a6d54dd6173294d9ae9f48286b213e Mon Sep 17 00:00:00 2001 From 651a49976e8e481190cc465a5590940a6f6bbcf9 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100 Date: Fri, 18 Mar 2011 09:18:52 +0100
Subject: [PATCH 068/266] buffer_head: Replace bh_uptodate_lock for -rt Subject: [PATCH 066/264] buffer_head: Replace bh_uptodate_lock for -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Wrap the bit_spin_lock calls into a separate inline and add the RT Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock. replacements with a real spinlock.
@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
4 files changed, 46 insertions(+), 25 deletions(-) 4 files changed, 46 insertions(+), 25 deletions(-)
diff --git a/fs/buffer.c b/fs/buffer.c diff --git a/fs/buffer.c b/fs/buffer.c
index c083c4b3c1e7..b0ac4454b4a0 100644 index a550e0d8e965..a5b3a456dbff 100644
--- a/fs/buffer.c --- a/fs/buffer.c
+++ b/fs/buffer.c +++ b/fs/buffer.c
@@ -274,8 +274,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate) @@ -274,8 +274,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
@ -78,7 +78,7 @@ index c083c4b3c1e7..b0ac4454b4a0 100644
} }
EXPORT_SYMBOL(end_buffer_async_write); EXPORT_SYMBOL(end_buffer_async_write);
@@ -3361,6 +3353,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags) @@ -3368,6 +3360,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags)
struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags); struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags);
if (ret) { if (ret) {
INIT_LIST_HEAD(&ret->b_assoc_buffers); INIT_LIST_HEAD(&ret->b_assoc_buffers);

View File

@ -1,9 +1,9 @@
From 3c12ff53bd33aa4b2a87422ac8ae4a39ca3fd689 Mon Sep 17 00:00:00 2001 From 6107effb93a85ff7db4857dca4a0acc2ec4a7d5c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100 Date: Fri, 18 Mar 2011 10:11:25 +0100
Subject: [PATCH 069/266] fs: jbd/jbd2: Make state lock and journal head lock Subject: [PATCH 067/264] fs: jbd/jbd2: Make state lock and journal head lock
rt safe rt safe
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
bit_spin_locks break under RT. bit_spin_locks break under RT.

View File

@ -1,8 +1,8 @@
From 49c5f6e11359ffcdc8b0c3dd8bf22a629534760e Mon Sep 17 00:00:00 2001 From 44a67462ebab9e354cfa669144248912fa92ca24 Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <paul.gortmaker@windriver.com> From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Fri, 21 Jun 2013 15:07:25 -0400 Date: Fri, 21 Jun 2013 15:07:25 -0400
Subject: [PATCH 070/266] list_bl: Make list head locking RT safe Subject: [PATCH 068/264] list_bl: Make list head locking RT safe
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
As per changes in include/linux/jbd_common.h for avoiding the As per changes in include/linux/jbd_common.h for avoiding the
bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal

View File

@ -1,8 +1,8 @@
From 18baa05e062b4a3e349cc30313d665960c98d33c Mon Sep 17 00:00:00 2001 From 20f64514264a9d0ea1533f4743f542a1fb056a16 Mon Sep 17 00:00:00 2001
From: Josh Cartwright <joshc@ni.com> From: Josh Cartwright <joshc@ni.com>
Date: Thu, 31 Mar 2016 00:04:25 -0500 Date: Thu, 31 Mar 2016 00:04:25 -0500
Subject: [PATCH 071/266] list_bl: fixup bogus lockdep warning Subject: [PATCH 069/264] list_bl: fixup bogus lockdep warning
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
At first glance, the use of 'static inline' seems appropriate for At first glance, the use of 'static inline' seems appropriate for
INIT_HLIST_BL_HEAD(). INIT_HLIST_BL_HEAD().

View File

@ -1,8 +1,8 @@
From 2f7ec5b079ec9ac3bff29d542d21e5ecd6f14d0f Mon Sep 17 00:00:00 2001 From 7520cd851f5733f5e69fe73008893f4be48506f9 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500 Date: Fri, 3 Jul 2009 08:29:57 -0500
Subject: [PATCH 072/266] genirq: Disable irqpoll on -rt Subject: [PATCH 070/264] genirq: Disable irqpoll on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Creates long latencies for no value Creates long latencies for no value

View File

@ -1,8 +1,8 @@
From a21ce2ad1b7d3e1927e69f5ff85f00035cc31e43 Mon Sep 17 00:00:00 2001 From 22860bd2c33dc3abc1b0aa695f8f455595762a93 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 3 Apr 2011 11:57:29 +0200 Date: Sun, 3 Apr 2011 11:57:29 +0200
Subject: [PATCH 073/266] genirq: Force interrupt thread on RT Subject: [PATCH 071/264] genirq: Force interrupt thread on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Force threaded_irqs and optimize the code (force_irqthreads) in regard Force threaded_irqs and optimize the code (force_irqthreads) in regard
to this. to this.

View File

@ -1,9 +1,9 @@
From 6993ab71f072edd10b4f3e076c474cea6290b9da Mon Sep 17 00:00:00 2001 From 3c22477fe8ef4919a3fb0314834751ad2e2134d8 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org> From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:20 +0200 Date: Mon, 28 May 2018 15:24:20 +0200
Subject: [PATCH 074/266] Split IRQ-off and zone->lock while freeing pages from Subject: [PATCH 072/264] Split IRQ-off and zone->lock while freeing pages from
PCP list #1 PCP list #1
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Split the IRQ-off section while accessing the PCP list from zone->lock Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages. while freeing pages.
@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 52 insertions(+), 30 deletions(-) 1 file changed, 52 insertions(+), 30 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index ef99971c13dd..a84ac7af753d 100644 index 8e6932a140b8..8c10f34364c0 100644
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -1095,7 +1095,7 @@ static inline void prefetch_buddy(struct page *page) @@ -1095,7 +1095,7 @@ static inline void prefetch_buddy(struct page *page)

View File

@ -1,9 +1,9 @@
From 51ba31edfd57dc313746febb2897e6b0735300c6 Mon Sep 17 00:00:00 2001 From e4639c8f6abcfb4b8b26aa296089349739103578 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org> From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:21 +0200 Date: Mon, 28 May 2018 15:24:21 +0200
Subject: [PATCH 075/266] Split IRQ-off and zone->lock while freeing pages from Subject: [PATCH 073/264] Split IRQ-off and zone->lock while freeing pages from
PCP list #2 PCP list #2
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Split the IRQ-off section while accessing the PCP list from zone->lock Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages. while freeing pages.
@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 50 insertions(+), 10 deletions(-) 1 file changed, 50 insertions(+), 10 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index a84ac7af753d..8a96b1e6f4f4 100644 index 8c10f34364c0..4d630aebd84f 100644
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -1105,8 +1105,8 @@ static inline void prefetch_buddy(struct page *page) @@ -1105,8 +1105,8 @@ static inline void prefetch_buddy(struct page *page)

View File

@ -1,8 +1,8 @@
From b143284103a8a0d48389a1335bdef9311113921d Mon Sep 17 00:00:00 2001 From 21da9341b8a6c5d9308bf0c2fa3fe4647749f125 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 28 May 2018 15:24:22 +0200 Date: Mon, 28 May 2018 15:24:22 +0200
Subject: [PATCH 076/266] mm/SLxB: change list_lock to raw_spinlock_t Subject: [PATCH 074/264] mm/SLxB: change list_lock to raw_spinlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t
otherwise the interrupts won't be disabled on -RT. The locking rules remain otherwise the interrupts won't be disabled on -RT. The locking rules remain
@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 73 insertions(+), 73 deletions(-) 3 files changed, 73 insertions(+), 73 deletions(-)
diff --git a/mm/slab.c b/mm/slab.c diff --git a/mm/slab.c b/mm/slab.c
index fad6839e8eab..a7ab3957282b 100644 index b8e0ec74330f..21fe15fb9624 100644
--- a/mm/slab.c --- a/mm/slab.c
+++ b/mm/slab.c +++ b/mm/slab.c
@@ -233,7 +233,7 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent) @@ -233,7 +233,7 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
@ -43,7 +43,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
@@ -730,7 +730,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep, @@ -731,7 +731,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep,
struct kmem_cache_node *n = get_node(cachep, node); struct kmem_cache_node *n = get_node(cachep, node);
if (ac->avail) { if (ac->avail) {
@ -52,7 +52,7 @@ index fad6839e8eab..a7ab3957282b 100644
/* /*
* Stuff objects into the remote nodes shared array first. * Stuff objects into the remote nodes shared array first.
* That way we could avoid the overhead of putting the objects * That way we could avoid the overhead of putting the objects
@@ -741,7 +741,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep, @@ -742,7 +742,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep,
free_block(cachep, ac->entry, ac->avail, node, list); free_block(cachep, ac->entry, ac->avail, node, list);
ac->avail = 0; ac->avail = 0;
@ -61,7 +61,7 @@ index fad6839e8eab..a7ab3957282b 100644
} }
} }
@@ -814,9 +814,9 @@ static int __cache_free_alien(struct kmem_cache *cachep, void *objp, @@ -815,9 +815,9 @@ static int __cache_free_alien(struct kmem_cache *cachep, void *objp,
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} else { } else {
n = get_node(cachep, page_node); n = get_node(cachep, page_node);
@ -73,7 +73,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
return 1; return 1;
@@ -857,10 +857,10 @@ static int init_cache_node(struct kmem_cache *cachep, int node, gfp_t gfp) @@ -858,10 +858,10 @@ static int init_cache_node(struct kmem_cache *cachep, int node, gfp_t gfp)
*/ */
n = get_node(cachep, node); n = get_node(cachep, node);
if (n) { if (n) {
@ -86,7 +86,7 @@ index fad6839e8eab..a7ab3957282b 100644
return 0; return 0;
} }
@@ -939,7 +939,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep, @@ -940,7 +940,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep,
goto fail; goto fail;
n = get_node(cachep, node); n = get_node(cachep, node);
@ -95,7 +95,7 @@ index fad6839e8eab..a7ab3957282b 100644
if (n->shared && force_change) { if (n->shared && force_change) {
free_block(cachep, n->shared->entry, free_block(cachep, n->shared->entry,
n->shared->avail, node, &list); n->shared->avail, node, &list);
@@ -957,7 +957,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep, @@ -958,7 +958,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep,
new_alien = NULL; new_alien = NULL;
} }
@ -104,7 +104,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
/* /*
@@ -996,7 +996,7 @@ static void cpuup_canceled(long cpu) @@ -997,7 +997,7 @@ static void cpuup_canceled(long cpu)
if (!n) if (!n)
continue; continue;
@ -113,7 +113,7 @@ index fad6839e8eab..a7ab3957282b 100644
/* Free limit for this kmem_cache_node */ /* Free limit for this kmem_cache_node */
n->free_limit -= cachep->batchcount; n->free_limit -= cachep->batchcount;
@@ -1009,7 +1009,7 @@ static void cpuup_canceled(long cpu) @@ -1010,7 +1010,7 @@ static void cpuup_canceled(long cpu)
} }
if (!cpumask_empty(mask)) { if (!cpumask_empty(mask)) {
@ -122,7 +122,7 @@ index fad6839e8eab..a7ab3957282b 100644
goto free_slab; goto free_slab;
} }
@@ -1023,7 +1023,7 @@ static void cpuup_canceled(long cpu) @@ -1024,7 +1024,7 @@ static void cpuup_canceled(long cpu)
alien = n->alien; alien = n->alien;
n->alien = NULL; n->alien = NULL;
@ -131,7 +131,7 @@ index fad6839e8eab..a7ab3957282b 100644
kfree(shared); kfree(shared);
if (alien) { if (alien) {
@@ -1207,7 +1207,7 @@ static void __init init_list(struct kmem_cache *cachep, struct kmem_cache_node * @@ -1208,7 +1208,7 @@ static void __init init_list(struct kmem_cache *cachep, struct kmem_cache_node *
/* /*
* Do not assume that spinlocks can be initialized via memcpy: * Do not assume that spinlocks can be initialized via memcpy:
*/ */
@ -140,7 +140,7 @@ index fad6839e8eab..a7ab3957282b 100644
MAKE_ALL_LISTS(cachep, ptr, nodeid); MAKE_ALL_LISTS(cachep, ptr, nodeid);
cachep->node[nodeid] = ptr; cachep->node[nodeid] = ptr;
@@ -1378,11 +1378,11 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid) @@ -1379,11 +1379,11 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid)
for_each_kmem_cache_node(cachep, node, n) { for_each_kmem_cache_node(cachep, node, n) {
unsigned long total_slabs, free_slabs, free_objs; unsigned long total_slabs, free_slabs, free_objs;
@ -154,7 +154,7 @@ index fad6839e8eab..a7ab3957282b 100644
pr_warn(" node %d: slabs: %ld/%ld, objs: %ld/%ld\n", pr_warn(" node %d: slabs: %ld/%ld, objs: %ld/%ld\n",
node, total_slabs - free_slabs, total_slabs, node, total_slabs - free_slabs, total_slabs,
@@ -2175,7 +2175,7 @@ static void check_spinlock_acquired(struct kmem_cache *cachep) @@ -2178,7 +2178,7 @@ static void check_spinlock_acquired(struct kmem_cache *cachep)
{ {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
check_irq_off(); check_irq_off();
@ -163,7 +163,7 @@ index fad6839e8eab..a7ab3957282b 100644
#endif #endif
} }
@@ -2183,7 +2183,7 @@ static void check_spinlock_acquired_node(struct kmem_cache *cachep, int node) @@ -2186,7 +2186,7 @@ static void check_spinlock_acquired_node(struct kmem_cache *cachep, int node)
{ {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
check_irq_off(); check_irq_off();
@ -172,7 +172,7 @@ index fad6839e8eab..a7ab3957282b 100644
#endif #endif
} }
@@ -2223,9 +2223,9 @@ static void do_drain(void *arg) @@ -2226,9 +2226,9 @@ static void do_drain(void *arg)
check_irq_off(); check_irq_off();
ac = cpu_cache_get(cachep); ac = cpu_cache_get(cachep);
n = get_node(cachep, node); n = get_node(cachep, node);
@ -184,7 +184,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
ac->avail = 0; ac->avail = 0;
} }
@@ -2243,9 +2243,9 @@ static void drain_cpu_caches(struct kmem_cache *cachep) @@ -2246,9 +2246,9 @@ static void drain_cpu_caches(struct kmem_cache *cachep)
drain_alien_cache(cachep, n->alien); drain_alien_cache(cachep, n->alien);
for_each_kmem_cache_node(cachep, node, n) { for_each_kmem_cache_node(cachep, node, n) {
@ -196,7 +196,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
@@ -2267,10 +2267,10 @@ static int drain_freelist(struct kmem_cache *cache, @@ -2270,10 +2270,10 @@ static int drain_freelist(struct kmem_cache *cache,
nr_freed = 0; nr_freed = 0;
while (nr_freed < tofree && !list_empty(&n->slabs_free)) { while (nr_freed < tofree && !list_empty(&n->slabs_free)) {
@ -209,7 +209,7 @@ index fad6839e8eab..a7ab3957282b 100644
goto out; goto out;
} }
@@ -2283,7 +2283,7 @@ static int drain_freelist(struct kmem_cache *cache, @@ -2286,7 +2286,7 @@ static int drain_freelist(struct kmem_cache *cache,
* to the cache. * to the cache.
*/ */
n->free_objects -= cache->num; n->free_objects -= cache->num;
@ -218,7 +218,7 @@ index fad6839e8eab..a7ab3957282b 100644
slab_destroy(cache, page); slab_destroy(cache, page);
nr_freed++; nr_freed++;
} }
@@ -2731,7 +2731,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page) @@ -2734,7 +2734,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page)
INIT_LIST_HEAD(&page->lru); INIT_LIST_HEAD(&page->lru);
n = get_node(cachep, page_to_nid(page)); n = get_node(cachep, page_to_nid(page));
@ -227,7 +227,7 @@ index fad6839e8eab..a7ab3957282b 100644
n->total_slabs++; n->total_slabs++;
if (!page->active) { if (!page->active) {
list_add_tail(&page->lru, &(n->slabs_free)); list_add_tail(&page->lru, &(n->slabs_free));
@@ -2741,7 +2741,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page) @@ -2744,7 +2744,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page)
STATS_INC_GROWN(cachep); STATS_INC_GROWN(cachep);
n->free_objects += cachep->num - page->active; n->free_objects += cachep->num - page->active;
@ -236,7 +236,7 @@ index fad6839e8eab..a7ab3957282b 100644
fixup_objfreelist_debug(cachep, &list); fixup_objfreelist_debug(cachep, &list);
} }
@@ -2909,7 +2909,7 @@ static struct page *get_first_slab(struct kmem_cache_node *n, bool pfmemalloc) @@ -2912,7 +2912,7 @@ static struct page *get_first_slab(struct kmem_cache_node *n, bool pfmemalloc)
{ {
struct page *page; struct page *page;
@ -245,7 +245,7 @@ index fad6839e8eab..a7ab3957282b 100644
page = list_first_entry_or_null(&n->slabs_partial, struct page, lru); page = list_first_entry_or_null(&n->slabs_partial, struct page, lru);
if (!page) { if (!page) {
n->free_touched = 1; n->free_touched = 1;
@@ -2935,10 +2935,10 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep, @@ -2938,10 +2938,10 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep,
if (!gfp_pfmemalloc_allowed(flags)) if (!gfp_pfmemalloc_allowed(flags))
return NULL; return NULL;
@ -258,7 +258,7 @@ index fad6839e8eab..a7ab3957282b 100644
return NULL; return NULL;
} }
@@ -2947,7 +2947,7 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep, @@ -2950,7 +2950,7 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep,
fixup_slab_list(cachep, n, page, &list); fixup_slab_list(cachep, n, page, &list);
@ -267,7 +267,7 @@ index fad6839e8eab..a7ab3957282b 100644
fixup_objfreelist_debug(cachep, &list); fixup_objfreelist_debug(cachep, &list);
return obj; return obj;
@@ -3006,7 +3006,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) @@ -3009,7 +3009,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags)
if (!n->free_objects && (!shared || !shared->avail)) if (!n->free_objects && (!shared || !shared->avail))
goto direct_grow; goto direct_grow;
@ -276,7 +276,7 @@ index fad6839e8eab..a7ab3957282b 100644
shared = READ_ONCE(n->shared); shared = READ_ONCE(n->shared);
/* See if we can refill from the shared array */ /* See if we can refill from the shared array */
@@ -3030,7 +3030,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) @@ -3033,7 +3033,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags)
must_grow: must_grow:
n->free_objects -= ac->avail; n->free_objects -= ac->avail;
alloc_done: alloc_done:
@ -285,7 +285,7 @@ index fad6839e8eab..a7ab3957282b 100644
fixup_objfreelist_debug(cachep, &list); fixup_objfreelist_debug(cachep, &list);
direct_grow: direct_grow:
@@ -3255,7 +3255,7 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, @@ -3258,7 +3258,7 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags,
BUG_ON(!n); BUG_ON(!n);
check_irq_off(); check_irq_off();
@ -294,7 +294,7 @@ index fad6839e8eab..a7ab3957282b 100644
page = get_first_slab(n, false); page = get_first_slab(n, false);
if (!page) if (!page)
goto must_grow; goto must_grow;
@@ -3273,12 +3273,12 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, @@ -3276,12 +3276,12 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags,
fixup_slab_list(cachep, n, page, &list); fixup_slab_list(cachep, n, page, &list);
@ -309,7 +309,7 @@ index fad6839e8eab..a7ab3957282b 100644
page = cache_grow_begin(cachep, gfp_exact_node(flags), nodeid); page = cache_grow_begin(cachep, gfp_exact_node(flags), nodeid);
if (page) { if (page) {
/* This slab isn't counted yet so don't update free_objects */ /* This slab isn't counted yet so don't update free_objects */
@@ -3454,7 +3454,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) @@ -3457,7 +3457,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
check_irq_off(); check_irq_off();
n = get_node(cachep, node); n = get_node(cachep, node);
@ -318,7 +318,7 @@ index fad6839e8eab..a7ab3957282b 100644
if (n->shared) { if (n->shared) {
struct array_cache *shared_array = n->shared; struct array_cache *shared_array = n->shared;
int max = shared_array->limit - shared_array->avail; int max = shared_array->limit - shared_array->avail;
@@ -3483,7 +3483,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) @@ -3486,7 +3486,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
STATS_SET_FREEABLE(cachep, i); STATS_SET_FREEABLE(cachep, i);
} }
#endif #endif
@ -327,7 +327,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
ac->avail -= batchcount; ac->avail -= batchcount;
memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail); memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail);
@@ -3893,9 +3893,9 @@ static int __do_tune_cpucache(struct kmem_cache *cachep, int limit, @@ -3896,9 +3896,9 @@ static int __do_tune_cpucache(struct kmem_cache *cachep, int limit,
node = cpu_to_mem(cpu); node = cpu_to_mem(cpu);
n = get_node(cachep, node); n = get_node(cachep, node);
@ -339,7 +339,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
free_percpu(prev); free_percpu(prev);
@@ -4020,9 +4020,9 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_cache_node *n, @@ -4023,9 +4023,9 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_cache_node *n,
return; return;
} }
@ -351,7 +351,7 @@ index fad6839e8eab..a7ab3957282b 100644
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
@@ -4106,7 +4106,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo) @@ -4109,7 +4109,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo)
for_each_kmem_cache_node(cachep, node, n) { for_each_kmem_cache_node(cachep, node, n) {
check_irq_on(); check_irq_on();
@ -360,7 +360,7 @@ index fad6839e8eab..a7ab3957282b 100644
total_slabs += n->total_slabs; total_slabs += n->total_slabs;
free_slabs += n->free_slabs; free_slabs += n->free_slabs;
@@ -4115,7 +4115,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo) @@ -4118,7 +4118,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo)
if (n->shared) if (n->shared)
shared_avail += n->shared->avail; shared_avail += n->shared->avail;
@ -369,7 +369,7 @@ index fad6839e8eab..a7ab3957282b 100644
} }
num_objs = total_slabs * cachep->num; num_objs = total_slabs * cachep->num;
active_slabs = total_slabs - free_slabs; active_slabs = total_slabs - free_slabs;
@@ -4330,13 +4330,13 @@ static int leaks_show(struct seq_file *m, void *p) @@ -4333,13 +4333,13 @@ static int leaks_show(struct seq_file *m, void *p)
for_each_kmem_cache_node(cachep, node, n) { for_each_kmem_cache_node(cachep, node, n) {
check_irq_on(); check_irq_on();
@ -386,10 +386,10 @@ index fad6839e8eab..a7ab3957282b 100644
} while (!is_store_user_clean(cachep)); } while (!is_store_user_clean(cachep));
diff --git a/mm/slab.h b/mm/slab.h diff --git a/mm/slab.h b/mm/slab.h
index 58c6c1c2a78e..e904021207f1 100644 index 9632772e14be..d6b01d61f768 100644
--- a/mm/slab.h --- a/mm/slab.h
+++ b/mm/slab.h +++ b/mm/slab.h
@@ -453,7 +453,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, gfp_t flags, @@ -454,7 +454,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, gfp_t flags,
* The slab lists for all objects. * The slab lists for all objects.
*/ */
struct kmem_cache_node { struct kmem_cache_node {
@ -399,7 +399,7 @@ index 58c6c1c2a78e..e904021207f1 100644
#ifdef CONFIG_SLAB #ifdef CONFIG_SLAB
struct list_head slabs_partial; /* partial list first, better asm code */ struct list_head slabs_partial; /* partial list first, better asm code */
diff --git a/mm/slub.c b/mm/slub.c diff --git a/mm/slub.c b/mm/slub.c
index 8da34a8af53d..298cd7d368de 100644 index 09c0e24a06d8..9450fb6da89f 100644
--- a/mm/slub.c --- a/mm/slub.c
+++ b/mm/slub.c +++ b/mm/slub.c
@@ -1167,7 +1167,7 @@ static noinline int free_debug_processing( @@ -1167,7 +1167,7 @@ static noinline int free_debug_processing(
@ -545,7 +545,7 @@ index 8da34a8af53d..298cd7d368de 100644
INIT_LIST_HEAD(&n->partial); INIT_LIST_HEAD(&n->partial);
#ifdef CONFIG_SLUB_DEBUG #ifdef CONFIG_SLUB_DEBUG
atomic_long_set(&n->nr_slabs, 0); atomic_long_set(&n->nr_slabs, 0);
@@ -3653,7 +3653,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) @@ -3656,7 +3656,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n)
struct page *page, *h; struct page *page, *h;
BUG_ON(irqs_disabled()); BUG_ON(irqs_disabled());
@ -554,7 +554,7 @@ index 8da34a8af53d..298cd7d368de 100644
list_for_each_entry_safe(page, h, &n->partial, lru) { list_for_each_entry_safe(page, h, &n->partial, lru) {
if (!page->inuse) { if (!page->inuse) {
remove_partial(n, page); remove_partial(n, page);
@@ -3663,7 +3663,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) @@ -3666,7 +3666,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n)
"Objects remaining in %s on __kmem_cache_shutdown()"); "Objects remaining in %s on __kmem_cache_shutdown()");
} }
} }
@ -563,7 +563,7 @@ index 8da34a8af53d..298cd7d368de 100644
list_for_each_entry_safe(page, h, &discard, lru) list_for_each_entry_safe(page, h, &discard, lru)
discard_slab(s, page); discard_slab(s, page);
@@ -3936,7 +3936,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) @@ -3939,7 +3939,7 @@ int __kmem_cache_shrink(struct kmem_cache *s)
for (i = 0; i < SHRINK_PROMOTE_MAX; i++) for (i = 0; i < SHRINK_PROMOTE_MAX; i++)
INIT_LIST_HEAD(promote + i); INIT_LIST_HEAD(promote + i);
@ -572,7 +572,7 @@ index 8da34a8af53d..298cd7d368de 100644
/* /*
* Build lists of slabs to discard or promote. * Build lists of slabs to discard or promote.
@@ -3967,7 +3967,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) @@ -3970,7 +3970,7 @@ int __kmem_cache_shrink(struct kmem_cache *s)
for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--) for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--)
list_splice(promote + i, &n->partial); list_splice(promote + i, &n->partial);
@ -581,7 +581,7 @@ index 8da34a8af53d..298cd7d368de 100644
/* Release empty slabs */ /* Release empty slabs */
list_for_each_entry_safe(page, t, &discard, lru) list_for_each_entry_safe(page, t, &discard, lru)
@@ -4381,7 +4381,7 @@ static int validate_slab_node(struct kmem_cache *s, @@ -4384,7 +4384,7 @@ static int validate_slab_node(struct kmem_cache *s,
struct page *page; struct page *page;
unsigned long flags; unsigned long flags;
@ -590,7 +590,7 @@ index 8da34a8af53d..298cd7d368de 100644
list_for_each_entry(page, &n->partial, lru) { list_for_each_entry(page, &n->partial, lru) {
validate_slab_slab(s, page, map); validate_slab_slab(s, page, map);
@@ -4403,7 +4403,7 @@ static int validate_slab_node(struct kmem_cache *s, @@ -4406,7 +4406,7 @@ static int validate_slab_node(struct kmem_cache *s,
s->name, count, atomic_long_read(&n->nr_slabs)); s->name, count, atomic_long_read(&n->nr_slabs));
out: out:
@ -599,7 +599,7 @@ index 8da34a8af53d..298cd7d368de 100644
return count; return count;
} }
@@ -4593,12 +4593,12 @@ static int list_locations(struct kmem_cache *s, char *buf, @@ -4596,12 +4596,12 @@ static int list_locations(struct kmem_cache *s, char *buf,
if (!atomic_long_read(&n->nr_slabs)) if (!atomic_long_read(&n->nr_slabs))
continue; continue;

View File

@ -1,9 +1,9 @@
From 1fa02c36b05b392724988ddda8806f6cbf674446 Mon Sep 17 00:00:00 2001 From 7950585d96adfc3a0b99a639041dbaed50e2a496 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jun 2018 17:29:19 +0200 Date: Thu, 21 Jun 2018 17:29:19 +0200
Subject: [PATCH 077/266] mm/SLUB: delay giving back empty slubs to IRQ enabled Subject: [PATCH 075/264] mm/SLUB: delay giving back empty slubs to IRQ enabled
regions regions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
__free_slab() is invoked with disabled interrupts which increases the __free_slab() is invoked with disabled interrupts which increases the
irq-off time while __free_pages() is doing the work. irq-off time while __free_pages() is doing the work.
@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 69 insertions(+), 5 deletions(-) 1 file changed, 69 insertions(+), 5 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c diff --git a/mm/slub.c b/mm/slub.c
index 298cd7d368de..224f79ee6b39 100644 index 9450fb6da89f..7fd47a914f61 100644
--- a/mm/slub.c --- a/mm/slub.c
+++ b/mm/slub.c +++ b/mm/slub.c
@@ -1330,6 +1330,12 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node, @@ -1330,6 +1330,12 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node,
@ -205,7 +205,7 @@ index 298cd7d368de..224f79ee6b39 100644
slab_post_alloc_hook(s, flags, i, p); slab_post_alloc_hook(s, flags, i, p);
__kmem_cache_free_bulk(s, i, p); __kmem_cache_free_bulk(s, i, p);
return 0; return 0;
@@ -4180,6 +4238,12 @@ void __init kmem_cache_init(void) @@ -4183,6 +4241,12 @@ void __init kmem_cache_init(void)
{ {
static __initdata struct kmem_cache boot_kmem_cache, static __initdata struct kmem_cache boot_kmem_cache,
boot_kmem_cache_node; boot_kmem_cache_node;

View File

@ -1,8 +1,8 @@
From 8cf680defa2721e8a3636f0d81f0ae698b532200 Mon Sep 17 00:00:00 2001 From 31695882006c45fad86890ceff90dd7d65ea5dd3 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:37 -0500 Date: Fri, 3 Jul 2009 08:29:37 -0500
Subject: [PATCH 078/266] mm: page_alloc: rt-friendly per-cpu pages Subject: [PATCH 076/264] mm: page_alloc: rt-friendly per-cpu pages
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method. method into a preemptible, explicit-per-cpu-locks method.
@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 43 insertions(+), 20 deletions(-) 1 file changed, 43 insertions(+), 20 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 8a96b1e6f4f4..bfbd1d6abb54 100644 index 4d630aebd84f..4d11ec179aa7 100644
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -60,6 +60,7 @@ @@ -60,6 +60,7 @@

View File

@ -1,8 +1,8 @@
From 3e69b8c10ef337ad55294b386473175604fac7ae Mon Sep 17 00:00:00 2001 From 25ce0ae0ad1ef1ed724757c0137241db28a8208d Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:51 -0500 Date: Fri, 3 Jul 2009 08:29:51 -0500
Subject: [PATCH 079/266] mm/swap: Convert to percpu locked Subject: [PATCH 077/264] mm/swap: Convert to percpu locked
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Replace global locks (get_cpu + local_irq_save) with "local_locks()". Replace global locks (get_cpu + local_irq_save) with "local_locks()".
Currently there is one of for "rotate" and one for "swap". Currently there is one of for "rotate" and one for "swap".
@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
4 files changed, 30 insertions(+), 19 deletions(-) 4 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/include/linux/swap.h b/include/linux/swap.h diff --git a/include/linux/swap.h b/include/linux/swap.h
index 77221c16733a..6819766b93aa 100644 index 7bd0a6f2ac2b..e643672fa802 100644
--- a/include/linux/swap.h --- a/include/linux/swap.h
+++ b/include/linux/swap.h +++ b/include/linux/swap.h
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
@ -56,7 +56,7 @@ index faca45ebe62d..f8ccb9d9daa3 100644
cc->last_migrated_pfn = 0; cc->last_migrated_pfn = 0;
} }
diff --git a/mm/page_alloc.c b/mm/page_alloc.c diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index bfbd1d6abb54..5af1cdd1b923 100644 index 4d11ec179aa7..a01c15fdb723 100644
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -7205,8 +7205,9 @@ void __init free_area_init(unsigned long *zones_size) @@ -7205,8 +7205,9 @@ void __init free_area_init(unsigned long *zones_size)

View File

@ -1,8 +1,8 @@
From ac3ff5ace2c5405df8a46847cd66757ae63d5477 Mon Sep 17 00:00:00 2001 From c6e0c51ac7fe1d0892449e41e6792babe4d7c3fa Mon Sep 17 00:00:00 2001
From: Luiz Capitulino <lcapitulino@redhat.com> From: Luiz Capitulino <lcapitulino@redhat.com>
Date: Fri, 27 May 2016 15:03:28 +0200 Date: Fri, 27 May 2016 15:03:28 +0200
Subject: [PATCH 080/266] mm: perform lru_add_drain_all() remotely Subject: [PATCH 078/264] mm: perform lru_add_drain_all() remotely
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run
on all CPUs that have non-empty LRU pagevecs and then waiting for on all CPUs that have non-empty LRU pagevecs and then waiting for

View File

@ -1,9 +1,9 @@
From 97d2d31ce45e742af6dc423c28ab0658114264dc Mon Sep 17 00:00:00 2001 From b0971a2847fd9cd9f59eb19e6761f6800a33150d Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:13 -0500 Date: Fri, 3 Jul 2009 08:30:13 -0500
Subject: [PATCH 081/266] mm/vmstat: Protect per cpu variables with preempt Subject: [PATCH 079/264] mm/vmstat: Protect per cpu variables with preempt
disable on RT disable on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Disable preemption on -RT for the vmstat code. On vanila the code runs in Disable preemption on -RT for the vmstat code. On vanila the code runs in
IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the
@ -41,7 +41,7 @@ index f25cef84b41d..febee8649220 100644
static inline void count_vm_events(enum vm_event_item item, long delta) static inline void count_vm_events(enum vm_event_item item, long delta)
diff --git a/mm/vmstat.c b/mm/vmstat.c diff --git a/mm/vmstat.c b/mm/vmstat.c
index 7878da76abf2..2cfaa5075c72 100644 index 4a387937f9f5..0cd11c5e3999 100644
--- a/mm/vmstat.c --- a/mm/vmstat.c
+++ b/mm/vmstat.c +++ b/mm/vmstat.c
@@ -320,6 +320,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, @@ -320,6 +320,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,

View File

@ -1,9 +1,9 @@
From c4a52a68ff41c185a61d501c061b08ce81a2506e Mon Sep 17 00:00:00 2001 From 1062ea19aa6e1c3dacb44d07747c89b4f66dadc2 Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com> From: Frank Rowand <frank.rowand@am.sony.com>
Date: Sat, 1 Oct 2011 18:58:13 -0700 Date: Sat, 1 Oct 2011 18:58:13 -0700
Subject: [PATCH 082/266] ARM: Initialize split page table locks for vector Subject: [PATCH 080/264] ARM: Initialize split page table locks for vector
page page
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
PREEMPT_RT_FULL=y because vectors_user_mapping() creates a PREEMPT_RT_FULL=y because vectors_user_mapping() creates a

View File

@ -1,8 +1,8 @@
From e438a74270d17d8f9d68d4278b14497bc2671a07 Mon Sep 17 00:00:00 2001 From 7bd789a93c5b97d553b15fd8e446228d23456aff Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 25 Oct 2012 10:32:35 +0100 Date: Thu, 25 Oct 2012 10:32:35 +0100
Subject: [PATCH 083/266] mm: Enable SLUB for RT Subject: [PATCH 081/264] mm: Enable SLUB for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Avoid the memory allocation in IRQ section Avoid the memory allocation in IRQ section
@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 6 insertions(+) 1 file changed, 6 insertions(+)
diff --git a/mm/slub.c b/mm/slub.c diff --git a/mm/slub.c b/mm/slub.c
index 224f79ee6b39..154c0eb7c28b 100644 index 7fd47a914f61..efd441e79e6f 100644
--- a/mm/slub.c --- a/mm/slub.c
+++ b/mm/slub.c +++ b/mm/slub.c
@@ -3677,6 +3677,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, @@ -3680,6 +3680,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
const char *text) const char *text)
{ {
#ifdef CONFIG_SLUB_DEBUG #ifdef CONFIG_SLUB_DEBUG
@ -29,7 +29,7 @@ index 224f79ee6b39..154c0eb7c28b 100644
void *addr = page_address(page); void *addr = page_address(page);
void *p; void *p;
unsigned long *map = kcalloc(BITS_TO_LONGS(page->objects), unsigned long *map = kcalloc(BITS_TO_LONGS(page->objects),
@@ -3698,6 +3703,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, @@ -3701,6 +3706,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
slab_unlock(page); slab_unlock(page);
kfree(map); kfree(map);
#endif #endif

View File

@ -1,8 +1,8 @@
From 605ec36d61e9293b08da52f9fd7edabe92f45940 Mon Sep 17 00:00:00 2001 From 11224977de88f7f3ddc92b29390c44fdf9a85820 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 9 Jan 2013 12:08:15 +0100 Date: Wed, 9 Jan 2013 12:08:15 +0100
Subject: [PATCH 084/266] slub: Enable irqs for __GFP_WAIT Subject: [PATCH 082/264] slub: Enable irqs for __GFP_WAIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
SYSTEM_RUNNING might be too late for enabling interrupts. Allocations SYSTEM_RUNNING might be too late for enabling interrupts. Allocations
with GFP_WAIT can happen before that. So use this as an indicator. with GFP_WAIT can happen before that. So use this as an indicator.
@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 8 insertions(+), 1 deletion(-) 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/mm/slub.c b/mm/slub.c diff --git a/mm/slub.c b/mm/slub.c
index 154c0eb7c28b..bcc176415952 100644 index efd441e79e6f..2240b51a0549 100644
--- a/mm/slub.c --- a/mm/slub.c
+++ b/mm/slub.c +++ b/mm/slub.c
@@ -1570,10 +1570,17 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) @@ -1570,10 +1570,17 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)

View File

@ -1,8 +1,8 @@
From 41a8d11daef3a3ccbdc5af850a2de8ef30bf59f2 Mon Sep 17 00:00:00 2001 From b8b912f1bb257eb44228b3bdb7652c4d6dcda56b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 15 Apr 2015 19:00:47 +0200 Date: Wed, 15 Apr 2015 19:00:47 +0200
Subject: [PATCH 085/266] slub: Disable SLUB_CPU_PARTIAL Subject: [PATCH 083/264] slub: Disable SLUB_CPU_PARTIAL
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915
|in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7 |in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7

View File

@ -1,9 +1,9 @@
From 69dc67df10975fa926d4d2a2bb0184b60f539002 Mon Sep 17 00:00:00 2001 From 107eee1a14857d0aecad3c1f56f8b4cabbadcf89 Mon Sep 17 00:00:00 2001
From: Yang Shi <yang.shi@windriver.com> From: Yang Shi <yang.shi@windriver.com>
Date: Wed, 30 Oct 2013 11:48:33 -0700 Date: Wed, 30 Oct 2013 11:48:33 -0700
Subject: [PATCH 086/266] mm/memcontrol: Don't call schedule_work_on in Subject: [PATCH 084/264] mm/memcontrol: Don't call schedule_work_on in
preemption disabled context preemption disabled context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The following trace is triggered when running ltp oom test cases: The following trace is triggered when running ltp oom test cases:
@ -49,10 +49,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 9518aefd8cbb..5ae52e587528 100644 index 7e7cc0cd89fe..174329de4779 100644
--- a/mm/memcontrol.c --- a/mm/memcontrol.c
+++ b/mm/memcontrol.c +++ b/mm/memcontrol.c
@@ -2052,7 +2052,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) @@ -2063,7 +2063,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
* as well as workers from this path always operate on the local * as well as workers from this path always operate on the local
* per-cpu data. CPU up doesn't touch memcg_stock at all. * per-cpu data. CPU up doesn't touch memcg_stock at all.
*/ */
@ -61,7 +61,7 @@ index 9518aefd8cbb..5ae52e587528 100644
for_each_online_cpu(cpu) { for_each_online_cpu(cpu) {
struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu); struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu);
struct mem_cgroup *memcg; struct mem_cgroup *memcg;
@@ -2072,7 +2072,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) @@ -2083,7 +2083,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
} }
css_put(&memcg->css); css_put(&memcg->css);
} }

View File

@ -1,9 +1,9 @@
From a400b856179528a4ed99bc3e9ab62c9b9f4299e3 Mon Sep 17 00:00:00 2001 From b1fa5897c72583b68655f7eeca2e598dbfa8a0b5 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 28 Jan 2015 17:14:16 +0100 Date: Wed, 28 Jan 2015 17:14:16 +0100
Subject: [PATCH 087/266] mm/memcontrol: Replace local_irq_disable with local Subject: [PATCH 085/264] mm/memcontrol: Replace local_irq_disable with local
locks locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
There are a few local_irq_disable() which then take sleeping locks. This There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks. patch converts them local locks.
@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 16 insertions(+), 8 deletions(-) 1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 5ae52e587528..d0ea4e74d6fc 100644 index 174329de4779..d0f245d80f93 100644
--- a/mm/memcontrol.c --- a/mm/memcontrol.c
+++ b/mm/memcontrol.c +++ b/mm/memcontrol.c
@@ -69,6 +69,7 @@ @@ -69,6 +69,7 @@
@ -34,7 +34,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
/* Whether legacy memory+swap accounting is active */ /* Whether legacy memory+swap accounting is active */
static bool do_memsw_account(void) static bool do_memsw_account(void)
{ {
@@ -4859,12 +4862,12 @@ static int mem_cgroup_move_account(struct page *page, @@ -4884,12 +4887,12 @@ static int mem_cgroup_move_account(struct page *page,
ret = 0; ret = 0;
@ -49,7 +49,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
out_unlock: out_unlock:
unlock_page(page); unlock_page(page);
out: out:
@@ -5983,10 +5986,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, @@ -6008,10 +6011,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
commit_charge(page, memcg, lrucare); commit_charge(page, memcg, lrucare);
@ -62,7 +62,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
if (do_memsw_account() && PageSwapCache(page)) { if (do_memsw_account() && PageSwapCache(page)) {
swp_entry_t entry = { .val = page_private(page) }; swp_entry_t entry = { .val = page_private(page) };
@@ -6055,7 +6058,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) @@ -6080,7 +6083,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
memcg_oom_recover(ug->memcg); memcg_oom_recover(ug->memcg);
} }
@ -71,7 +71,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
__mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon);
__mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file);
__mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge);
@@ -6063,7 +6066,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) @@ -6088,7 +6091,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
__count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout);
__this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages); __this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages);
memcg_check_events(ug->memcg, ug->dummy_page); memcg_check_events(ug->memcg, ug->dummy_page);
@ -80,7 +80,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
if (!mem_cgroup_is_root(ug->memcg)) if (!mem_cgroup_is_root(ug->memcg))
css_put_many(&ug->memcg->css, nr_pages); css_put_many(&ug->memcg->css, nr_pages);
@@ -6226,10 +6229,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage) @@ -6251,10 +6254,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
commit_charge(newpage, memcg, false); commit_charge(newpage, memcg, false);
@ -93,7 +93,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
} }
DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key); DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key);
@@ -6421,6 +6424,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) @@ -6446,6 +6449,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
struct mem_cgroup *memcg, *swap_memcg; struct mem_cgroup *memcg, *swap_memcg;
unsigned int nr_entries; unsigned int nr_entries;
unsigned short oldid; unsigned short oldid;
@ -101,7 +101,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644
VM_BUG_ON_PAGE(PageLRU(page), page); VM_BUG_ON_PAGE(PageLRU(page), page);
VM_BUG_ON_PAGE(page_count(page), page); VM_BUG_ON_PAGE(page_count(page), page);
@@ -6466,13 +6470,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) @@ -6491,13 +6495,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
* important here to have the interrupts disabled because it is the * important here to have the interrupts disabled because it is the
* only synchronisation we have for updating the per-CPU variables. * only synchronisation we have for updating the per-CPU variables.
*/ */

View File

@ -1,8 +1,8 @@
From e96c261e79fc523e023aedf55130eea2b4026dfb Mon Sep 17 00:00:00 2001 From 83e42c20f52f70e65d03b214fd9c8579b0128f47 Mon Sep 17 00:00:00 2001
From: Mike Galbraith <umgwanakikbuti@gmail.com> From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Tue, 22 Mar 2016 11:16:09 +0100 Date: Tue, 22 Mar 2016 11:16:09 +0100
Subject: [PATCH 088/266] mm/zsmalloc: copy with get_cpu_var() and locking Subject: [PATCH 086/264] mm/zsmalloc: copy with get_cpu_var() and locking
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
get_cpu_var() disables preemption and triggers a might_sleep() splat later. get_cpu_var() disables preemption and triggers a might_sleep() splat later.
This is replaced with get_locked_var(). This is replaced with get_locked_var().

View File

@ -1,9 +1,9 @@
From 245b526fa55247c1866beef0e28326ccc11214c8 Mon Sep 17 00:00:00 2001 From 2543c80b6aadc59c70c6b6e912ed1e6a9965b3c0 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 11 Dec 2018 21:53:43 +0100 Date: Tue, 11 Dec 2018 21:53:43 +0100
Subject: [PATCH 089/266] x86/mm/pat: disable preemption __split_large_page() Subject: [PATCH 087/264] x86/mm/pat: disable preemption __split_large_page()
after spin_lock() after spin_lock()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a
warning if __flush_tlb_all() is invoked in preemptible context. On !RT warning if __flush_tlb_all() is invoked in preemptible context. On !RT

View File

@ -1,8 +1,8 @@
From 6e49e380bae22fbdbbc8ad1beaeb2b68f18bbcab Mon Sep 17 00:00:00 2001 From 11c1fef6d646f26007271dd7486fe14176d6e6f6 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 25 Jan 2017 16:34:27 +0100 Date: Wed, 25 Jan 2017 16:34:27 +0100
Subject: [PATCH 090/266] radix-tree: use local locks Subject: [PATCH 088/264] radix-tree: use local locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The preload functionality uses per-CPU variables and preempt-disable to The preload functionality uses per-CPU variables and preempt-disable to
ensure that it does not switch CPUs during its usage. This patch adds ensure that it does not switch CPUs during its usage. This patch adds

View File

@ -1,8 +1,8 @@
From 08b09c27edd97bc659d7c41867e01fe9daa71125 Mon Sep 17 00:00:00 2001 From 558451a44923dab908e500200b3f6f02fd6e4fae Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu> From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500 Date: Fri, 3 Jul 2009 08:29:34 -0500
Subject: [PATCH 091/266] timers: Prepare for full preemption Subject: [PATCH 089/264] timers: Prepare for full preemption
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
When softirqs can be preempted we need to make sure that cancelling When softirqs can be preempted we need to make sure that cancelling
the timer from the active thread can not deadlock vs. a running timer the timer from the active thread can not deadlock vs. a running timer
@ -30,10 +30,10 @@ index 7b066fd38248..54627d046b3a 100644
#else #else
# define del_timer_sync(t) del_timer(t) # define del_timer_sync(t) del_timer(t)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f027ac73f1df..8250701ecfd7 100644 index 9c4a9f0a627b..ddf6282d9780 100644
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -497,11 +497,14 @@ void resched_cpu(int cpu) @@ -498,11 +498,14 @@ void resched_cpu(int cpu)
*/ */
int get_nohz_timer_target(void) int get_nohz_timer_target(void)
{ {
@ -50,7 +50,7 @@ index f027ac73f1df..8250701ecfd7 100644
rcu_read_lock(); rcu_read_lock();
for_each_domain(cpu, sd) { for_each_domain(cpu, sd) {
@@ -520,6 +523,8 @@ int get_nohz_timer_target(void) @@ -521,6 +524,8 @@ int get_nohz_timer_target(void)
cpu = housekeeping_any_cpu(HK_FLAG_TIMER); cpu = housekeeping_any_cpu(HK_FLAG_TIMER);
unlock: unlock:
rcu_read_unlock(); rcu_read_unlock();

View File

@ -1,8 +1,8 @@
From 72511f2c697b25d19b0a4dd298c2f7987d7cc386 Mon Sep 17 00:00:00 2001 From ea0ad5586875098798cbf5d53bb21f2a5b82e537 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 6 Nov 2011 12:26:18 +0100 Date: Sun, 6 Nov 2011 12:26:18 +0100
Subject: [PATCH 092/266] x86: kvm Require const tsc for RT Subject: [PATCH 090/264] x86: kvm Require const tsc for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Non constant TSC is a nightmare on bare metal already, but with Non constant TSC is a nightmare on bare metal already, but with
virtualization it becomes a complete disaster because the workarounds virtualization it becomes a complete disaster because the workarounds
@ -15,10 +15,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 7 insertions(+) 1 file changed, 7 insertions(+)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 6181ec19bed2..10681ac91866 100644 index 4a61e1609c97..0b4fd313b626 100644
--- a/arch/x86/kvm/x86.c --- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c
@@ -6698,6 +6698,13 @@ int kvm_arch_init(void *opaque) @@ -6725,6 +6725,13 @@ int kvm_arch_init(void *opaque)
goto out; goto out;
} }

View File

@ -1,8 +1,8 @@
From 7fbdd307f3cf05c50b493ea0a31f68dbd0a3ed50 Mon Sep 17 00:00:00 2001 From 8d76a7f3ba4284defc688a9131aa96e66eb1310a Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 4 Oct 2017 10:24:23 +0200 Date: Wed, 4 Oct 2017 10:24:23 +0200
Subject: [PATCH 093/266] pci/switchtec: Don't use completion's wait queue Subject: [PATCH 091/264] pci/switchtec: Don't use completion's wait queue
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The poll callback is using completion's wait_queue_head_t member and The poll callback is using completion's wait_queue_head_t member and
puts it in poll_wait() so the poll() caller gets a wakeup after command puts it in poll_wait() so the poll() caller gets a wakeup after command

View File

@ -1,11 +1,11 @@
From b22255c793ef483f700e31323610af55e947782b Mon Sep 17 00:00:00 2001 From f8a4f74be5bbce9f9664ebf005bb35f26875858f Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 28 Oct 2013 12:19:57 +0100 Date: Mon, 28 Oct 2013 12:19:57 +0100
Subject: [PATCH 094/266] wait.h: include atomic.h Subject: [PATCH 092/264] wait.h: include atomic.h
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
| CC init/main.o | CC init/main.o
|In file included from include/linux/mmzone.h:9:0, |In file included from include/linux/mmzone.h:9:0,

View File

@ -1,8 +1,8 @@
From c8edd94ddadba2df66391d879cc3f73ddac3fb1d Mon Sep 17 00:00:00 2001 From 7cf55f71248f4f3c603383a84c73c5e44bfb9229 Mon Sep 17 00:00:00 2001
From: Daniel Wagner <daniel.wagner@bmw-carit.de> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
Date: Fri, 11 Jul 2014 15:26:11 +0200 Date: Fri, 11 Jul 2014 15:26:11 +0200
Subject: [PATCH 095/266] work-simple: Simple work queue implemenation Subject: [PATCH 093/264] work-simple: Simple work queue implemenation
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Provides a framework for enqueuing callbacks from irq context Provides a framework for enqueuing callbacks from irq context
PREEMPT_RT_FULL safe. The callbacks are executed in kthread context. PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.

View File

@ -1,9 +1,9 @@
From 9b018413a45c8182c7ddfe274e127f723ceb35d8 Mon Sep 17 00:00:00 2001 From ba25a567c5891e2b1acd586212b0fd92ce755e71 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 10 Sep 2018 18:00:31 +0200 Date: Mon, 10 Sep 2018 18:00:31 +0200
Subject: [PATCH 096/266] work-simple: drop a shit statement in Subject: [PATCH 094/264] work-simple: drop a shit statement in
SWORK_EVENT_PENDING SWORK_EVENT_PENDING
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Dan Carpenter reported Dan Carpenter reported
| smatch warnings: | smatch warnings:

View File

@ -1,8 +1,8 @@
From c2beaeff146ca9f454afd0da8cadea8fbfdf6c84 Mon Sep 17 00:00:00 2001 From d24dfe04ec75d5329d870c0d20f56f2cba4563ec Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 11 Jan 2013 11:23:51 +0100 Date: Fri, 11 Jan 2013 11:23:51 +0100
Subject: [PATCH 097/266] completion: Use simple wait queues Subject: [PATCH 095/264] completion: Use simple wait queues
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Completions have no long lasting callbacks and therefor do not need Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the the complex waitqueue variant. Use simple waitqueues which reduces the
@ -55,10 +55,10 @@ index 94ad6fe29e69..52a49f0bbc19 100644
break; break;
default: default:
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index 31e8bf3578c8..4d6741a54dd0 100644 index aa15593a3ac4..5e9269cd14fa 100644
--- a/drivers/usb/gadget/function/f_fs.c --- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c
@@ -1623,7 +1623,7 @@ static void ffs_data_put(struct ffs_data *ffs) @@ -1624,7 +1624,7 @@ static void ffs_data_put(struct ffs_data *ffs)
pr_info("%s(): freeing\n", __func__); pr_info("%s(): freeing\n", __func__);
ffs_data_clear(ffs); ffs_data_clear(ffs);
BUG_ON(waitqueue_active(&ffs->ev.waitq) || BUG_ON(waitqueue_active(&ffs->ev.waitq) ||
@ -320,10 +320,10 @@ index a1ad5b7d5521..755a58084978 100644
} }
EXPORT_SYMBOL(completion_done); EXPORT_SYMBOL(completion_done);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 8250701ecfd7..714f5617fe1f 100644 index ddf6282d9780..8272d920b749 100644
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -7108,7 +7108,10 @@ void migrate_disable(void) @@ -7109,7 +7109,10 @@ void migrate_disable(void)
return; return;
} }
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG
@ -335,7 +335,7 @@ index 8250701ecfd7..714f5617fe1f 100644
#endif #endif
if (p->migrate_disable) { if (p->migrate_disable) {
@@ -7138,7 +7141,10 @@ void migrate_enable(void) @@ -7139,7 +7142,10 @@ void migrate_enable(void)
} }
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG

View File

@ -1,8 +1,8 @@
From afe56dc247199dfab44e763d2b7d384b8a27a028 Mon Sep 17 00:00:00 2001 From 39010d30f3244de6b51646a0325b6292d8c84282 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 16 Feb 2015 18:49:10 +0100 Date: Mon, 16 Feb 2015 18:49:10 +0100
Subject: [PATCH 098/266] fs/aio: simple simple work Subject: [PATCH 096/264] fs/aio: simple simple work
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768 |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2 |in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2

View File

@ -1,9 +1,9 @@
From 2241ac7c8cc88110d42529596fd90f272387fd00 Mon Sep 17 00:00:00 2001 From 2010005b28eea662f9390937d92563ea1c466e24 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 21 Aug 2013 17:48:46 +0200 Date: Wed, 21 Aug 2013 17:48:46 +0200
Subject: [PATCH 099/266] genirq: Do not invoke the affinity callback via a Subject: [PATCH 097/264] genirq: Do not invoke the affinity callback via a
workqueue on RT workqueue on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
Joe Korty reported, that __irq_set_affinity_locked() schedules a Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep() workqueue while holding a rawlock which results in a might_sleep()

View File

@ -1,9 +1,9 @@
From d14b54f5a857ad006ce9a339e8ddea5b0580db2b Mon Sep 17 00:00:00 2001 From 49622b7282a6c10c5a70f3987df4ccfe3a32c92b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 15 Nov 2017 17:29:51 +0100 Date: Wed, 15 Nov 2017 17:29:51 +0100
Subject: [PATCH 100/266] time/hrtimer: avoid schedule_work() with interrupts Subject: [PATCH 098/264] time/hrtimer: avoid schedule_work() with interrupts
disabled disabled
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
The NOHZ code tries to schedule a workqueue with interrupts disabled. The NOHZ code tries to schedule a workqueue with interrupts disabled.
Since this does not work -RT I am switching it to swork instead. Since this does not work -RT I am switching it to swork instead.

View File

@ -1,9 +1,9 @@
From 5a01e5b6e3930af282fc1ad4c52348c2863b6d80 Mon Sep 17 00:00:00 2001 From 7223736bbeccbb731d509b603b15adcbf36bdade Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 11:25:41 +0200 Date: Tue, 3 Jul 2018 11:25:41 +0200
Subject: [PATCH 101/266] hrtimer: consolidate hrtimer_init() + Subject: [PATCH 099/264] hrtimer: consolidate hrtimer_init() +
hrtimer_init_sleeper() calls hrtimer_init_sleeper() calls
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz
hrtimer_init_sleeper() calls require a prior initialisation of the hrtimer_init_sleeper() calls require a prior initialisation of the
hrtimer object with hrtimer_init(). Lets make the initialisation of hrtimer object with hrtimer_init(). Lets make the initialisation of
@ -126,7 +126,7 @@ index 2b5ef8e94d19..94bd2e841de6 100644
hrtimer_start_range_ns(&__t.timer, timeout, \ hrtimer_start_range_ns(&__t.timer, timeout, \
current->timer_slack_ns, \ current->timer_slack_ns, \
diff --git a/kernel/futex.c b/kernel/futex.c diff --git a/kernel/futex.c b/kernel/futex.c
index cea098efd12e..2b3eb43ba3fd 100644 index 1bd0950bea4e..fadd9bff6e3c 100644
--- a/kernel/futex.c --- a/kernel/futex.c
+++ b/kernel/futex.c +++ b/kernel/futex.c
@@ -2684,10 +2684,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val, @@ -2684,10 +2684,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,

Some files were not shown because too many files have changed in this diff Show More