[rt] Update to 4.19.115-rt48

Refresh patch "pci/switchtec: Don't use completion's wait queue" which was
already done as well in previous rt patchset, due to context changes in
4.19.116 caused by 12ce9fd7fc87 ("PCI/switchtec: Fix init_completion race
condition with poll_wait()").
This commit is contained in:
Salvatore Bonaccorso 2020-04-21 22:13:52 +02:00
parent 6440db7ed1
commit 6431292225
330 changed files with 1736 additions and 2057 deletions

1
debian/changelog vendored
View File

@ -1798,6 +1798,7 @@ linux (4.19.117-1) UNRELEASED; urgency=medium
* [rt] Refresh "workqueue: rework" for context changes in 4.19.114 * [rt] Refresh "workqueue: rework" for context changes in 4.19.114
* [rt] Refresh "pci/switchtec: Don't use completion's wait queue" for * [rt] Refresh "pci/switchtec: Don't use completion's wait queue" for
context changes in 4.19.116 context changes in 4.19.116
* [rt] Update to 4.19.115-rt48
[ Ben Hutchings ] [ Ben Hutchings ]
* [x86] Drop "Add a SysRq option to lift kernel lockdown" (Closes: #947021) * [x86] Drop "Add a SysRq option to lift kernel lockdown" (Closes: #947021)

View File

@ -1,8 +1,8 @@
From d831f2ac120e802a4ff642f48f6b88e543665514 Mon Sep 17 00:00:00 2001 From 119971df8e4c3a8550b9b7479e5e409dc03f07b6 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/328] ARM: at91: add TCB registers definitions Subject: [PATCH 001/325] ARM: at91: add TCB registers definitions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 a8f6e3cf352d669d8b870469ab3bff8fc64c3367 Mon Sep 17 00:00:00 2001 From aba8ef8111b7a69621be5dd2358f8163dc4a2263 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/328] clocksource/drivers: Add a new driver for the Atmel Subject: [PATCH 002/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f2e0ea85054574af7f632ca36991c5c1a25a7bfd Mon Sep 17 00:00:00 2001 From 8cbcac5c2b1a35f8c81134219ef264b8c9f9e9d7 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/328] clocksource/drivers: timer-atmel-tcb: add clockevent Subject: [PATCH 003/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 23ef2fe8b6933933fb81af9decf35cfae8c14571 Mon Sep 17 00:00:00 2001 From 5e34b2461c24c7ec974e6c5f33e4431a3260b2c1 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/328] clocksource/drivers: atmel-pit: make option silent Subject: [PATCH 004/325] clocksource/drivers: atmel-pit: make option silent
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 56d1624c2b43a84717f237d3c2d58ac52cb37b33 Mon Sep 17 00:00:00 2001 From 7c8bbf08ffe494d923710239c313474054189139 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/328] ARM: at91: Implement clocksource selection Subject: [PATCH 005/325] ARM: at91: Implement clocksource selection
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 9591e618026011c31f7275edd0643d390e185e38 Mon Sep 17 00:00:00 2001 From 546eacc7d54dbf5c6b35cea154d82a1aa2611af1 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/328] ARM: configs: at91: use new TCB timer driver Subject: [PATCH 006/325] ARM: configs: at91: use new TCB timer driver
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f58179ebd23db67a287e5267a5cbc2c1ae5d75d9 Mon Sep 17 00:00:00 2001 From 44a288d26c969a743059392f799ee270bd87e9bb 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/328] ARM: configs: at91: unselect PIT Subject: [PATCH 007/325] ARM: configs: at91: unselect PIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f5fc79f507ee8c22a6f18709552cecbada48d328 Mon Sep 17 00:00:00 2001 From d70eac98c1314f780bfe229544f829b50453ae2b 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/328] irqchip/gic-v3-its: Move pending table allocation to Subject: [PATCH 008/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 bf7b69449b43..f93b8cd5eea2 100644 index f9b73336a39e..0387399054b7 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 89b3ba99261e5321ba2276305f817b5c0c9817ad Mon Sep 17 00:00:00 2001 From 3cf0fcd0004434877a5db97439d4b56e78837a4f 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/328] kthread: convert worker lock to raw spinlock Subject: [PATCH 009/325] kthread: convert worker lock to raw spinlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 1e7f9f15b5cb5088ac28a0919a2fcc74bfc5f5c7 Mon Sep 17 00:00:00 2001 From 222023498c02fbc8c0143bb3237a0e0a674175e5 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/328] crypto: caam/qi - simplify CGR allocation, freeing Subject: [PATCH 010/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6] [Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]

View File

@ -1,8 +1,8 @@
From 2a9fed89a7bea6fbe31e717ab5f277405e20826e Mon Sep 17 00:00:00 2001 From 698e9d4aa2337745a67cdb0d0130df1851dd9a25 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/328] sched/fair: Robustify CFS-bandwidth timer locking Subject: [PATCH 011/325] sched/fair: Robustify CFS-bandwidth timer locking
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -30,10 +30,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
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 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 7f4f4ab5bfef..0f1ba3d72336 100644 index 86ccaaf0c1bf..ded41daf0d73 100644
--- a/kernel/sched/fair.c --- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c +++ b/kernel/sched/fair.c
@@ -4576,7 +4576,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining) @@ -4597,7 +4597,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
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 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
if (!cfs_rq_throttled(cfs_rq)) if (!cfs_rq_throttled(cfs_rq))
goto next; goto next;
@@ -4595,7 +4595,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining) @@ -4616,7 +4616,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
unthrottle_cfs_rq(cfs_rq); unthrottle_cfs_rq(cfs_rq);
next: next:
@ -51,7 +51,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
if (!remaining) if (!remaining)
break; break;
@@ -4611,7 +4611,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining) @@ -4632,7 +4632,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
* 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 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
{ {
u64 runtime; u64 runtime;
int throttled; int throttled;
@@ -4651,10 +4651,10 @@ static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun) @@ -4672,10 +4672,10 @@ 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;
@ -73,7 +73,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
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);
@@ -4762,16 +4762,17 @@ static __always_inline void return_cfs_rq_runtime(struct cfs_rq *cfs_rq) @@ -4783,16 +4783,17 @@ 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();
@ -94,7 +94,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
return; return;
} }
@@ -4781,17 +4782,17 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b) @@ -4802,17 +4803,17 @@ 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;
@ -115,7 +115,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
} }
/* /*
@@ -4871,11 +4872,12 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) @@ -4892,11 +4893,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);
@ -129,7 +129,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644
for (;;) { for (;;) {
overrun = hrtimer_forward_now(timer, cfs_b->period); overrun = hrtimer_forward_now(timer, cfs_b->period);
if (!overrun) if (!overrun)
@@ -4911,11 +4913,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) @@ -4932,11 +4934,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
count = 0; count = 0;
} }

View File

@ -1,8 +1,8 @@
From 7c89d978bdfea369853567288ced4880deddd0b1 Mon Sep 17 00:00:00 2001 From a5adb64cd4a86c6fa8bc3b35141ade2fa82d3d27 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/328] arm: Convert arm boot_lock to raw Subject: [PATCH 012/325] arm: Convert arm boot_lock to raw
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 9ecaf2a8f433399cc3fabcfb9fbce9a88fe6f200 Mon Sep 17 00:00:00 2001 From 21f4cc8e461111c6918c67c907cb4a8ae8afa936 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/328] x86/ioapic: Don't let setaffinity unmask threaded EOI Subject: [PATCH 013/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 759e6d7c318bbcff7507641d5a9fb6b5074b2a87 Mon Sep 17 00:00:00 2001 From d92527bb24ae4fa57d587ae040d61e04458f59ac 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 014/328] cgroup: use irqsave in cgroup_rstat_flush_locked() Subject: [PATCH 014/325] cgroup: use irqsave in cgroup_rstat_flush_locked()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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().

View File

@ -1,8 +1,8 @@
From 934128f28dd37073d6513a37f0433df6399c7953 Mon Sep 17 00:00:00 2001 From 79bc9b1cb45fe96b437ac97ffbbb28c1f02523a9 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 015/328] fscache: initialize cookie hash table raw spinlocks Subject: [PATCH 015/325] fscache: initialize cookie hash table raw spinlocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 2a2f1a8c287a6b6fb14a4a1b5583e043d5897df4 Mon Sep 17 00:00:00 2001 From 19172d30b8e9f6e2c70d3170a75da4aac327cb9b 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 016/328] Drivers: hv: vmbus: include header for get_irq_regs() Subject: [PATCH 016/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 d487edd01d698abf2b4f3ea4e3f27897b227250c Mon Sep 17 00:00:00 2001 From ea486c7cc32c9056a03180db47f3710c7fc2052f 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 017/328] percpu: include irqflags.h for raw_local_irq_save() Subject: [PATCH 017/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 5c77a75aaa23c5fc32b5485897d0d14e66fafd37 Mon Sep 17 00:00:00 2001 From 2d27283a8f76ac017050287c1a62c14cddaf11d4 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 018/328] efi: Allow efi=runtime Subject: [PATCH 018/325] efi: Allow efi=runtime
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 af50891c552632469b09b7b97abd197545aec804 Mon Sep 17 00:00:00 2001 From 91fec13b5fdf4dce19d23cd229ecfdafcc6f6d22 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 019/328] x86/efi: drop task_lock() from efi_switch_mm() Subject: [PATCH 019/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -24,10 +24,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 4 insertions(+), 6 deletions(-) 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
index 6db8f3598c80..c9ccaef8df57 100644 index 2a9a703ef4a0..f104c9f2998d 100644
--- a/arch/x86/platform/efi/efi_64.c --- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c +++ b/arch/x86/platform/efi/efi_64.c
@@ -620,18 +620,16 @@ void __init efi_dump_pagetable(void) @@ -617,18 +617,16 @@ void __init efi_dump_pagetable(void)
/* /*
* Makes the calling thread switch to/from efi_mm context. Can be used * Makes the calling thread switch to/from efi_mm context. Can be used

View File

@ -1,9 +1,9 @@
From c96c598b9bc12e2909dcec0a1bf8f4a1b846107e Mon Sep 17 00:00:00 2001 From 83b8acc7de0d3e2798ec54ba770e14b691202d69 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 020/328] arm64: KVM: compute_layout before altenates are Subject: [PATCH 020/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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().
@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 8 insertions(+), 6 deletions(-) 3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h
index 887a8512bf10..376561351bae 100644 index 1a7ba3de7079..d011309e7ad0 100644
--- a/arch/arm64/include/asm/alternative.h --- a/arch/arm64/include/asm/alternative.h
+++ b/arch/arm64/include/asm/alternative.h +++ b/arch/arm64/include/asm/alternative.h
@@ -35,6 +35,12 @@ void apply_alternatives_module(void *start, size_t length); @@ -35,6 +35,12 @@ void apply_alternatives_module(void *start, size_t length);

View File

@ -1,9 +1,9 @@
From 8779fdd5686d1f9be670c7ee5ea6dfaece9e37d8 Mon Sep 17 00:00:00 2001 From 63891871ac6a67c1bae2aa15b3a3aef0f4060b58 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 021/328] of: allocate / free phandle cache outside of the Subject: [PATCH 021/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 7841950d4460ea93ee4ddd6a400ad67cfacee592 Mon Sep 17 00:00:00 2001 From 2cc8c4e626119389ae39665998b3dede468665e6 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 022/328] mm/kasan: make quarantine_lock a raw_spinlock_t Subject: [PATCH 022/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 c7753a6fd996fcaa0285c1c8285fde721d519a0a Mon Sep 17 00:00:00 2001 From ef814d6ef67f5228fd470d84ad33515c6a1efa57 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 023/328] EXP rcu: Revert expedited GP parallelization Subject: [PATCH 023/325] EXP rcu: Revert expedited GP parallelization
cleverness cleverness
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu) (Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)

View File

@ -1,11 +1,11 @@
From 4b0c7eda4403c5a7146714857bd1abffd2b080f8 Mon Sep 17 00:00:00 2001 From 28341f3661c5c3dac734d973251ad13a637fb0bd 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 024/328] kmemleak: Turn kmemleak_lock to raw spinlock on RT Subject: [PATCH 024/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 7cb617c6dac1356dfe57b1c4a976ec78ead046a0 Mon Sep 17 00:00:00 2001 From 89760c7945fc386046ef15f564d7e91990f88ed8 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 025/328] NFSv4: replace seqcount_t with a seqlock_t Subject: [PATCH 025/325] NFSv4: replace seqcount_t with a seqlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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

View File

@ -1,12 +1,12 @@
From 4906d6c574d916416e92a9de0b959c4d0ed0bc17 Mon Sep 17 00:00:00 2001 From afc9cd313faee6faecfc1ab87693f143c9206536 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 026/328] kernel: sched: Provide a pointer to the valid CPU Subject: [PATCH 026/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -573,10 +573,10 @@ index ebec37cb3be9..4b13df38c069 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 0f1ba3d72336..27f9f9a785c1 100644 index ded41daf0d73..fe58e95484cf 100644
--- a/kernel/sched/fair.c --- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c +++ b/kernel/sched/fair.c
@@ -1678,7 +1678,7 @@ static void task_numa_compare(struct task_numa_env *env, @@ -1691,7 +1691,7 @@ static void task_numa_compare(struct task_numa_env *env,
* be incurred if the tasks were swapped. * be incurred if the tasks were swapped.
*/ */
/* Skip this swap candidate if cannot move to the source cpu */ /* Skip this swap candidate if cannot move to the source cpu */
@ -585,7 +585,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644
goto unlock; goto unlock;
/* /*
@@ -1776,7 +1776,7 @@ static void task_numa_find_cpu(struct task_numa_env *env, @@ -1789,7 +1789,7 @@ static void task_numa_find_cpu(struct task_numa_env *env,
for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) { for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) {
/* Skip this CPU if the source task cannot migrate */ /* Skip this CPU if the source task cannot migrate */
@ -594,7 +594,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644
continue; continue;
env->dst_cpu = cpu; env->dst_cpu = cpu;
@@ -5782,7 +5782,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p, @@ -5803,7 +5803,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 0f1ba3d72336..27f9f9a785c1 100644
continue; continue;
local_group = cpumask_test_cpu(this_cpu, local_group = cpumask_test_cpu(this_cpu,
@@ -5914,7 +5914,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this @@ -5935,7 +5935,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 0f1ba3d72336..27f9f9a785c1 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);
@@ -5954,7 +5954,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p @@ -5975,7 +5975,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 0f1ba3d72336..27f9f9a785c1 100644
return prev_cpu; return prev_cpu;
/* /*
@@ -6071,7 +6071,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int @@ -6092,7 +6092,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 0f1ba3d72336..27f9f9a785c1 100644
for_each_cpu_wrap(core, cpus, target) { for_each_cpu_wrap(core, cpus, target) {
bool idle = true; bool idle = true;
@@ -6105,7 +6105,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t @@ -6126,7 +6126,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 0f1ba3d72336..27f9f9a785c1 100644
continue; continue;
if (available_idle_cpu(cpu)) if (available_idle_cpu(cpu))
return cpu; return cpu;
@@ -6168,7 +6168,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t @@ -6189,7 +6189,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 0f1ba3d72336..27f9f9a785c1 100644
continue; continue;
if (available_idle_cpu(cpu)) if (available_idle_cpu(cpu))
break; break;
@@ -6205,7 +6205,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) @@ -6226,7 +6226,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 0f1ba3d72336..27f9f9a785c1 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:
@@ -6423,7 +6423,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f @@ -6444,7 +6444,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 0f1ba3d72336..27f9f9a785c1 100644
} }
rcu_read_lock(); rcu_read_lock();
@@ -7162,14 +7162,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) @@ -7183,14 +7183,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 0f1ba3d72336..27f9f9a785c1 100644
int cpu; int cpu;
schedstat_inc(p->se.statistics.nr_failed_migrations_affine); schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
@@ -7189,7 +7189,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) @@ -7210,7 +7210,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 0f1ba3d72336..27f9f9a785c1 100644
env->flags |= LBF_DST_PINNED; env->flags |= LBF_DST_PINNED;
env->new_dst_cpu = cpu; env->new_dst_cpu = cpu;
break; break;
@@ -7786,7 +7786,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd) @@ -7827,7 +7827,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 0f1ba3d72336..27f9f9a785c1 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.
@@ -8401,7 +8401,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env) @@ -8442,7 +8442,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 0f1ba3d72336..27f9f9a785c1 100644
*/ */
if (busiest->group_type == group_imbalanced) if (busiest->group_type == group_imbalanced)
goto force_balance; goto force_balance;
@@ -8797,7 +8797,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, @@ -8838,7 +8838,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 9f9cd889fa22fc1e25802f565f7210b271d136a2 Mon Sep 17 00:00:00 2001 From 8ad94df28becac218184cd246b017a0141a46247 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 027/328] kernel/sched/core: add migrate_disable() Subject: [PATCH 027/325] kernel/sched/core: add migrate_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
--- ---
include/linux/preempt.h | 23 +++++++ include/linux/preempt.h | 23 +++++++

View File

@ -1,9 +1,9 @@
From db2220843fd1c19c7b89db5f6e20382b5622fa05 Mon Sep 17 00:00:00 2001 From 8a5a5668c864f35ac4028c8c775918b8bd4fca1c 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 028/328] sched/migrate_disable: Add export_symbol_gpl for Subject: [PATCH 028/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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

View File

@ -1,8 +1,8 @@
From b978b0a313d26ed5e51a9120c8744385a99e541a Mon Sep 17 00:00:00 2001 From 097c224348ebf8f796c6f6cd0c2eacf0b63a347b 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 029/328] arm: at91: do not disable/enable clocks in a row Subject: [PATCH 029/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 8549d4577f0573dddbc34e310c4310920a6bb714 Mon Sep 17 00:00:00 2001 From b5661f6c782e92843b5e1d081ab704dd3fb79a61 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 030/328] clocksource: TCLIB: Allow higher clock rates for Subject: [PATCH 030/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 4948d026b217faebc43bfe4a21cb3c5e781508ad Mon Sep 17 00:00:00 2001 From 22522352d905d453f9bdc5271ca567d5fafdad16 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 031/328] timekeeping: Split jiffies seqlock Subject: [PATCH 031/325] timekeeping: Split jiffies seqlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.

View File

@ -1,8 +1,8 @@
From dad624b7531ae0a0275cab3c82ea0d7c6a29cc7c Mon Sep 17 00:00:00 2001 From 4e6ea3956be0848c8a5771c159c7fe513e2dd745 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 032/328] signal: Revert ptrace preempt magic Subject: [PATCH 032/325] signal: Revert ptrace preempt magic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 8 deletions(-) 1 file changed, 8 deletions(-)
diff --git a/kernel/signal.c b/kernel/signal.c diff --git a/kernel/signal.c b/kernel/signal.c
index 08911bb6fe9a..5e278f1540ad 100644 index c42eaf39b572..feeae7177ee1 100644
--- a/kernel/signal.c --- a/kernel/signal.c
+++ b/kernel/signal.c +++ b/kernel/signal.c
@@ -2103,15 +2103,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info) @@ -2108,15 +2108,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
if (gstop_done && ptrace_reparented(current)) if (gstop_done && ptrace_reparented(current))
do_notify_parent_cldstop(current, false, why); do_notify_parent_cldstop(current, false, why);

View File

@ -1,8 +1,8 @@
From 5b974aebb7a0797ecc4c47dda6158e8c6788d50b Mon Sep 17 00:00:00 2001 From 8eed50e0a7fd1ea99c11d47421ca4ea0266c829f 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 033/328] net: sched: Use msleep() instead of yield() Subject: [PATCH 033/325] net: sched: Use msleep() instead of yield()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 38dbd44808bcdd34f0b973698b0f9bd65d2f2db5 Mon Sep 17 00:00:00 2001 From fada05aa298813af2111a2118e1c1af72332e628 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 034/328] dm rq: remove BUG_ON(!irqs_disabled) check Subject: [PATCH 034/325] dm rq: remove BUG_ON(!irqs_disabled) check
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f31d5f36bfd80c261ba37fe3b8849f2be819c088 Mon Sep 17 00:00:00 2001 From 1e7b0ed8d23d5a93afc426a2701805787cb7459a 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 035/328] usb: do no disable interrupts in giveback Subject: [PATCH 035/325] usb: do no disable interrupts in giveback
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f93f63735dec865d4013677969324e66da7f02c4 Mon Sep 17 00:00:00 2001 From ac2295358559dac261e20522d82cc3896bd63e97 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 036/328] rt: Provide PREEMPT_RT_BASE config switch Subject: [PATCH 036/325] rt: Provide PREEMPT_RT_BASE config switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 824fc9b2ae92b317da3e2a42406a49f330e20a6d Mon Sep 17 00:00:00 2001 From 267b99f0dfc2274075fc4d4652995fe24311f05b 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 037/328] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT Subject: [PATCH 037/325] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
There are "valid" GFP_ATOMIC allocations such as There are "valid" GFP_ATOMIC allocations such as

View File

@ -1,8 +1,8 @@
From feb8e4e9bfee1c054ec0c83ae2a12897d85da9b3 Mon Sep 17 00:00:00 2001 From d6d2f824df497fe197e5d2bc268eb4e086935778 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 038/328] jump-label: disable if stop_machine() is used Subject: [PATCH 038/325] jump-label: disable if stop_machine() is used
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 521872fd8b19b111a7001f6388912ab9d506f741 Mon Sep 17 00:00:00 2001 From b922a824955d554c93823ba2547095def5b87842 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 039/328] kconfig: Disable config options which are not RT Subject: [PATCH 039/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 464fd34dd6dc53c357221cff371377ca19601e14 Mon Sep 17 00:00:00 2001 From d503eb089b47efb99b62cfd52744ae0e8522ba67 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 040/328] lockdep: disable self-test Subject: [PATCH 040/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 bb8c948b260e99e7c7ad2dc38ea03a958be18769 Mon Sep 17 00:00:00 2001 From bf1579f9280b4c92ce6b02c3f014d40eff596b86 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 041/328] mm: Allow only slub on RT Subject: [PATCH 041/325] mm: Allow only slub on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 6bbedb933d43f1bc2283d96523412298d765b8a2 Mon Sep 17 00:00:00 2001 From f90c261f0738ea136c59392132ba130bad2c03b4 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 042/328] locking: Disable spin on owner for RT Subject: [PATCH 042/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 0942d8d1880802a3a19df4dfdff1ec5769d92fe3 Mon Sep 17 00:00:00 2001 From df00a54df3c3cf8857d0f2836e313a11d3c38180 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 043/328] rcu: Disable RCU_FAST_NO_HZ on RT Subject: [PATCH 043/325] rcu: Disable RCU_FAST_NO_HZ on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 b784c987142020d5cc32de03823004d362b390ec Mon Sep 17 00:00:00 2001 From 1b6c39d11d3f8f75251ccbaa4dbbf2db13892023 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 044/328] rcu: make RCU_BOOST default on RT Subject: [PATCH 044/325] rcu: make RCU_BOOST default on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 648e8c04474df9ed71c649af1d1e5a161cddaf41 Mon Sep 17 00:00:00 2001 From f9726e45c479872aa7380cd7f5190cebcac02c70 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 045/328] sched: Disable CONFIG_RT_GROUP_SCHED on RT Subject: [PATCH 045/325] sched: Disable CONFIG_RT_GROUP_SCHED on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
Carsten reported problems when running: Carsten reported problems when running:

View File

@ -1,11 +1,11 @@
From 0b90609a04c39529c4ff712a4786aecde55a0733 Mon Sep 17 00:00:00 2001 From 996a1b580a6cc76c1463f9f69662448d34ebb398 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 046/328] net/core: disable NET_RX_BUSY_POLL Subject: [PATCH 046/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 af731f1e8edb7e93c5977a0da70bd61c5d9fa7b1 Mon Sep 17 00:00:00 2001 From fe0a55f724947832043b3e9dce548b136de75da7 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 047/328] arm*: disable NEON in kernel mode Subject: [PATCH 047/325] arm*: disable NEON in kernel mode
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 c90bc1f0bbce77f2baf2b4213125fb5b7870fc20 Mon Sep 17 00:00:00 2001 From f66e42e47b6d784455711d775e0e896078112788 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 048/328] powerpc: Use generic rwsem on RT Subject: [PATCH 048/325] powerpc: Use generic rwsem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
Use generic code which uses rtmutex Use generic code which uses rtmutex

View File

@ -1,9 +1,9 @@
From 3460880af8146f0e3e05acd590e7e52d450bbf80 Mon Sep 17 00:00:00 2001 From a0922c5ef203ce1bf241a3189fd9bf2475f7871e 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 049/328] powerpc/kvm: Disable in-kernel MPIC emulation for Subject: [PATCH 049/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 13e6a60aad3edc7b4efd2168abcca0447ff20763 Mon Sep 17 00:00:00 2001 From 05259869f3f330c74c6647e1bcceda4f6a17996d 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 050/328] powerpc: Disable highmem on RT Subject: [PATCH 050/325] powerpc: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 55ff21a4418f35a443f2c210779a9ff4dee33e93 Mon Sep 17 00:00:00 2001 From 2724f222d99a9ed81df4fa565d6cf82d34259d69 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 051/328] mips: Disable highmem on RT Subject: [PATCH 051/325] mips: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 d0b5d43931b3de89c64c8a697256eb60eb9c0ebb Mon Sep 17 00:00:00 2001 From 78bb51d4c679626974498c8ae3af2866d451c48b 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 052/328] x86: Use generic rwsem_spinlocks on -rt Subject: [PATCH 052/325] x86: Use generic rwsem_spinlocks on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.

View File

@ -1,8 +1,8 @@
From 9c164cac4dbebd9bf5376428113db97b366625a0 Mon Sep 17 00:00:00 2001 From 88db50cf7dd13e56c63f264a6bb3763f59ed0795 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 053/328] leds: trigger: disable CPU trigger on -RT Subject: [PATCH 053/325] leds: trigger: disable CPU trigger on -RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 fa67192faa15cd98f554bcf82f0ecc40a26d9165 Mon Sep 17 00:00:00 2001 From d8c10b642fecafbf8fdcc70eb887ac2b1b2010de 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 054/328] cpufreq: drop K8's driver from beeing selected Subject: [PATCH 054/325] cpufreq: drop K8's driver from beeing selected
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 274246f0cc33aabdc562929c114eae24541eb9a3 Mon Sep 17 00:00:00 2001 From 248d9794b36b5701308e7a624204d116f681240f 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 055/328] md: disable bcache Subject: [PATCH 055/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 b453602d0f02b94edf714d46e6293b037ea94b67 Mon Sep 17 00:00:00 2001 From 1bfed58b8d4d1812c80dbd9d096d5e1e011ca0fc 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 056/328] efi: Disable runtime services on RT Subject: [PATCH 056/325] efi: Disable runtime services on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 dc16c6a47edf44cb0f69ff6124d6a85ee6dd3dcc Mon Sep 17 00:00:00 2001 From b19916a6a05bf459669c0666d128f744d601c728 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 057/328] printk: Add a printk kill switch Subject: [PATCH 057/325] printk: Add a printk kill switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 bfe8e0affbc2a1d3f23e9aec43198b31d1115f3d Mon Sep 17 00:00:00 2001 From 435cedf56c779ff8b0aff154014fac752d0cfc53 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 058/328] printk: Add "force_early_printk" boot param to help Subject: [PATCH 058/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f3b0b7d6dafcddd6bed43f78535a5494b0e09aa8 Mon Sep 17 00:00:00 2001 From 0f4ab1168734c622efbc4fd6b4def90ab992be6b 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 059/328] preempt: Provide preempt_*_(no)rt variants Subject: [PATCH 059/325] preempt: Provide preempt_*_(no)rt variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 a2a505f1e5d127a2c3b1ee184d27d0f402dcdf63 Mon Sep 17 00:00:00 2001 From f9c934a2065deec2a867e69c90d82e5f01a0031a 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 060/328] futex: workaround migrate_disable/enable in different Subject: [PATCH 060/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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,10 +17,10 @@ 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 e75ad30aa7bc..5c8053098fc8 100644 index 920d853a8e9e..32f9e3fa8c46 100644
--- a/kernel/futex.c --- a/kernel/futex.c
+++ b/kernel/futex.c +++ b/kernel/futex.c
@@ -2879,6 +2879,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, @@ -2896,6 +2896,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
* before __rt_mutex_start_proxy_lock() is done. * before __rt_mutex_start_proxy_lock() is done.
*/ */
raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock); raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
@ -35,7 +35,7 @@ index e75ad30aa7bc..5c8053098fc8 100644
spin_unlock(q.lock_ptr); spin_unlock(q.lock_ptr);
/* /*
* __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
@@ -2887,6 +2895,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, @@ -2904,6 +2912,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
*/ */
ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current); ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current);
raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock); raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock);
@ -43,7 +43,7 @@ index e75ad30aa7bc..5c8053098fc8 100644
if (ret) { if (ret) {
if (ret == 1) if (ret == 1)
@@ -3035,11 +3044,21 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) @@ -3052,11 +3061,21 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
* rt_waiter. Also see the WARN in wake_futex_pi(). * rt_waiter. Also see the WARN in wake_futex_pi().
*/ */
raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);

View File

@ -1,8 +1,8 @@
From 4db63a0605ac780bf1525c6a90667aef3f897dc1 Mon Sep 17 00:00:00 2001 From e14e89e35c111f053cf74355bdc468577cdddf32 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 061/328] rt: Add local irq locks Subject: [PATCH 061/325] rt: Add local irq locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 0e057064ed654b5f7fa22cc5f159ed67eeb332dc Mon Sep 17 00:00:00 2001 From 0dc8625af525103cb6b43e7f73288315aa9182c2 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 062/328] locallock: provide {get,put}_locked_ptr() variants Subject: [PATCH 062/325] locallock: provide {get,put}_locked_ptr() variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 a132d9a98679bcc505c36c80270ddaa741c15cbc Mon Sep 17 00:00:00 2001 From 9977834321f77cd9919949417d7aff598ed71023 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 063/328] mm/scatterlist: Do not disable irqs on RT Subject: [PATCH 063/325] mm/scatterlist: Do not disable irqs on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 f95acea987d23816f8094d7db13ae2afb94136ce Mon Sep 17 00:00:00 2001 From f2ef7528019291f9ad8d4cf90b57d315f8accd38 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 064/328] signal/x86: Delay calling signals in atomic Subject: [PATCH 064/325] signal/x86: Delay calling signals in atomic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -95,10 +95,10 @@ index 0489d3e0e78c..e4af260f81c5 100644
size_t sas_ss_size; size_t sas_ss_size;
unsigned int sas_ss_flags; unsigned int sas_ss_flags;
diff --git a/kernel/signal.c b/kernel/signal.c diff --git a/kernel/signal.c b/kernel/signal.c
index 5e278f1540ad..d5e764bb2444 100644 index feeae7177ee1..d1fa3c405784 100644
--- a/kernel/signal.c --- a/kernel/signal.c
+++ b/kernel/signal.c +++ b/kernel/signal.c
@@ -1277,8 +1277,8 @@ int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p, @@ -1282,8 +1282,8 @@ int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p,
* We don't want to have recursive SIGSEGV's etc, for example, * We don't want to have recursive SIGSEGV's etc, for example,
* that is why we also clear SIGNAL_UNKILLABLE. * that is why we also clear SIGNAL_UNKILLABLE.
*/ */
@ -109,7 +109,7 @@ index 5e278f1540ad..d5e764bb2444 100644
{ {
unsigned long int flags; unsigned long int flags;
int ret, blocked, ignored; int ret, blocked, ignored;
@@ -1307,6 +1307,39 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t) @@ -1312,6 +1312,39 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
return ret; return ret;
} }

View File

@ -1,8 +1,8 @@
From 44575d6c7e6fb548a6bf67f427d151301cd1dfd8 Mon Sep 17 00:00:00 2001 From ad228035652dbf96f3ee14ca10e14e85fb4e5b3c 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 065/328] x86/signal: delay calling signals on 32bit Subject: [PATCH 065/325] x86/signal: delay calling signals on 32bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 6b9121d4d6cf25eabc1b638027345308486f88b1 Mon Sep 17 00:00:00 2001 From 9c2e7dffa272d9112c453d37bf48c92bb1b4d287 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 066/328] buffer_head: Replace bh_uptodate_lock for -rt Subject: [PATCH 066/325] buffer_head: Replace bh_uptodate_lock for -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.

View File

@ -1,9 +1,9 @@
From 72ca6594764d9a6523352dc609644bea68a3a74b Mon Sep 17 00:00:00 2001 From c6247543e73c08256490bf6ccd225a3476eefd3a 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 067/328] fs: jbd/jbd2: Make state lock and journal head lock Subject: [PATCH 067/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
bit_spin_locks break under RT. bit_spin_locks break under RT.

View File

@ -1,8 +1,8 @@
From eb37c3d2df6895d5c86504fdb1a509d075414f52 Mon Sep 17 00:00:00 2001 From ffb1cb4821d5ac6ec3e2f69dc118584321113848 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 068/328] list_bl: Make list head locking RT safe Subject: [PATCH 068/325] list_bl: Make list head locking RT safe
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 a294373c35c31ae762358146f49c3c48f1429526 Mon Sep 17 00:00:00 2001 From bdcdc6774f7346b9302a7cf88c2c6ad00afe3459 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 069/328] list_bl: fixup bogus lockdep warning Subject: [PATCH 069/325] list_bl: fixup bogus lockdep warning
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 974bfebe6d809861b9a25af561668633ef3168a7 Mon Sep 17 00:00:00 2001 From 7cebafc45724ddb601b485b97c0c931378a7d60d 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 070/328] genirq: Disable irqpoll on -rt Subject: [PATCH 070/325] genirq: Disable irqpoll on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
Creates long latencies for no value Creates long latencies for no value

View File

@ -1,8 +1,8 @@
From 056e2667682c7afa14f71cb6d97ccf2217c0c08b Mon Sep 17 00:00:00 2001 From 7dca342c202dd085c2ed2817d5bf9bdfb8d9fd4b 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 071/328] genirq: Force interrupt thread on RT Subject: [PATCH 071/325] genirq: Force interrupt thread on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.
@ -30,7 +30,7 @@ index eeceac3376fc..315f852b4981 100644
#define force_irqthreads (0) #define force_irqthreads (0)
#endif #endif
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 23bcfa71077f..3c26d0708709 100644 index efcb54ee0922..0809bf7743af 100644
--- a/kernel/irq/manage.c --- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c +++ b/kernel/irq/manage.c
@@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@

View File

@ -1,9 +1,9 @@
From 4c6015fdf87fb7f0f38ce92c85d5630d79c6ae23 Mon Sep 17 00:00:00 2001 From 2e4f0bf4e4b7f98603bec063dc960b95fd97fbce 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 072/328] Split IRQ-off and zone->lock while freeing pages from Subject: [PATCH 072/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.

View File

@ -1,9 +1,9 @@
From dba8e6d7ab200ab5fe544af8c6093bcb3d215320 Mon Sep 17 00:00:00 2001 From e2fc0821dfc12bc01f49756080b4563f0fc2c45c 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 073/328] Split IRQ-off and zone->lock while freeing pages from Subject: [PATCH 073/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.

View File

@ -1,8 +1,8 @@
From abbdf6516e6ac19a92a3c08fc7a2f1ecc66c2bc6 Mon Sep 17 00:00:00 2001 From 32c26f054fbd92f8fe27eba2443d9d7490232aa3 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 074/328] mm/SLxB: change list_lock to raw_spinlock_t Subject: [PATCH 074/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -399,7 +399,7 @@ index 9632772e14be..d6b01d61f768 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 9c3937c5ce38..ba20c68a9cfd 100644 index 9b7b989273d4..a3b4c5c04ffe 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(
@ -438,7 +438,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
return object; return object;
} }
@@ -2073,7 +2073,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page, @@ -2071,7 +2071,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page,
* that acquire_slab() will see a slab page that * that acquire_slab() will see a slab page that
* is frozen * is frozen
*/ */
@ -447,7 +447,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
} }
} else { } else {
m = M_FULL; m = M_FULL;
@@ -2084,7 +2084,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page, @@ -2082,7 +2082,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page,
* slabs from diagnostic functions will not see * slabs from diagnostic functions will not see
* any frozen slabs. * any frozen slabs.
*/ */
@ -456,7 +456,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
} }
} }
@@ -2119,7 +2119,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page, @@ -2117,7 +2117,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page,
goto redo; goto redo;
if (lock) if (lock)
@ -465,7 +465,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
if (m == M_FREE) { if (m == M_FREE) {
stat(s, DEACTIVATE_EMPTY); stat(s, DEACTIVATE_EMPTY);
@@ -2154,10 +2154,10 @@ static void unfreeze_partials(struct kmem_cache *s, @@ -2152,10 +2152,10 @@ static void unfreeze_partials(struct kmem_cache *s,
n2 = get_node(s, page_to_nid(page)); n2 = get_node(s, page_to_nid(page));
if (n != n2) { if (n != n2) {
if (n) if (n)
@ -478,7 +478,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
} }
do { do {
@@ -2186,7 +2186,7 @@ static void unfreeze_partials(struct kmem_cache *s, @@ -2184,7 +2184,7 @@ static void unfreeze_partials(struct kmem_cache *s,
} }
if (n) if (n)
@ -487,7 +487,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
while (discard_page) { while (discard_page) {
page = discard_page; page = discard_page;
@@ -2355,10 +2355,10 @@ static unsigned long count_partial(struct kmem_cache_node *n, @@ -2353,10 +2353,10 @@ static unsigned long count_partial(struct kmem_cache_node *n,
unsigned long x = 0; unsigned long x = 0;
struct page *page; struct page *page;
@ -500,7 +500,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
return x; return x;
} }
#endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */ #endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */
@@ -2793,7 +2793,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page, @@ -2801,7 +2801,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
do { do {
if (unlikely(n)) { if (unlikely(n)) {
@ -509,7 +509,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
n = NULL; n = NULL;
} }
prior = page->freelist; prior = page->freelist;
@@ -2825,7 +2825,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page, @@ -2833,7 +2833,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
* Otherwise the list_lock will synchronize with * Otherwise the list_lock will synchronize with
* other processors updating the list of slabs. * other processors updating the list of slabs.
*/ */
@ -518,7 +518,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
} }
} }
@@ -2867,7 +2867,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page, @@ -2875,7 +2875,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
add_partial(n, page, DEACTIVATE_TO_TAIL); add_partial(n, page, DEACTIVATE_TO_TAIL);
stat(s, FREE_ADD_PARTIAL); stat(s, FREE_ADD_PARTIAL);
} }
@ -527,7 +527,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
return; return;
slab_empty: slab_empty:
@@ -2882,7 +2882,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page, @@ -2890,7 +2890,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
remove_full(s, n, page); remove_full(s, n, page);
} }
@ -536,7 +536,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
stat(s, FREE_SLAB); stat(s, FREE_SLAB);
discard_slab(s, page); discard_slab(s, page);
} }
@@ -3269,7 +3269,7 @@ static void @@ -3288,7 +3288,7 @@ static void
init_kmem_cache_node(struct kmem_cache_node *n) init_kmem_cache_node(struct kmem_cache_node *n)
{ {
n->nr_partial = 0; n->nr_partial = 0;
@ -545,7 +545,7 @@ index 9c3937c5ce38..ba20c68a9cfd 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);
@@ -3656,7 +3656,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) @@ -3675,7 +3675,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 9c3937c5ce38..ba20c68a9cfd 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);
@@ -3666,7 +3666,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) @@ -3685,7 +3685,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 9c3937c5ce38..ba20c68a9cfd 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);
@@ -3939,7 +3939,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) @@ -3958,7 +3958,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 9c3937c5ce38..ba20c68a9cfd 100644
/* /*
* Build lists of slabs to discard or promote. * Build lists of slabs to discard or promote.
@@ -3970,7 +3970,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) @@ -3989,7 +3989,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 9c3937c5ce38..ba20c68a9cfd 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)
@@ -4384,7 +4384,7 @@ static int validate_slab_node(struct kmem_cache *s, @@ -4403,7 +4403,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 9c3937c5ce38..ba20c68a9cfd 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);
@@ -4406,7 +4406,7 @@ static int validate_slab_node(struct kmem_cache *s, @@ -4425,7 +4425,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 9c3937c5ce38..ba20c68a9cfd 100644
return count; return count;
} }
@@ -4596,12 +4596,12 @@ static int list_locations(struct kmem_cache *s, char *buf, @@ -4615,12 +4615,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 b3c42996e1092269d6fac0652b22140250f11b7b Mon Sep 17 00:00:00 2001 From 6e725f0366939a0d83764cd8835200cb222bb1af 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 075/328] mm/SLUB: delay giving back empty slubs to IRQ enabled Subject: [PATCH 075/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 ba20c68a9cfd..224663e20772 100644 index a3b4c5c04ffe..19bc021a2726 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,
@ -64,7 +64,7 @@ index ba20c68a9cfd..224663e20772 100644
} else } else
__free_slab(s, page); __free_slab(s, page);
} }
@@ -2223,14 +2245,21 @@ static void put_cpu_partial(struct kmem_cache *s, struct page *page, int drain) @@ -2221,14 +2243,21 @@ static void put_cpu_partial(struct kmem_cache *s, struct page *page, int drain)
pobjects = oldpage->pobjects; pobjects = oldpage->pobjects;
pages = oldpage->pages; pages = oldpage->pages;
if (drain && pobjects > s->cpu_partial) { if (drain && pobjects > s->cpu_partial) {
@ -86,7 +86,7 @@ index ba20c68a9cfd..224663e20772 100644
oldpage = NULL; oldpage = NULL;
pobjects = 0; pobjects = 0;
pages = 0; pages = 0;
@@ -2300,7 +2329,22 @@ static bool has_cpu_slab(int cpu, void *info) @@ -2298,7 +2327,22 @@ static bool has_cpu_slab(int cpu, void *info)
static void flush_all(struct kmem_cache *s) static void flush_all(struct kmem_cache *s)
{ {
@ -109,7 +109,7 @@ index ba20c68a9cfd..224663e20772 100644
} }
/* /*
@@ -2498,8 +2542,10 @@ static inline void *get_freelist(struct kmem_cache *s, struct page *page) @@ -2496,8 +2540,10 @@ static inline void *get_freelist(struct kmem_cache *s, struct page *page)
* already disabled (which is the case for bulk allocation). * already disabled (which is the case for bulk allocation).
*/ */
static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
@ -121,7 +121,7 @@ index ba20c68a9cfd..224663e20772 100644
void *freelist; void *freelist;
struct page *page; struct page *page;
@@ -2555,6 +2601,13 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -2563,6 +2609,13 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
VM_BUG_ON(!c->page->frozen); VM_BUG_ON(!c->page->frozen);
c->freelist = get_freepointer(s, freelist); c->freelist = get_freepointer(s, freelist);
c->tid = next_tid(c->tid); c->tid = next_tid(c->tid);
@ -135,7 +135,7 @@ index ba20c68a9cfd..224663e20772 100644
return freelist; return freelist;
new_slab: new_slab:
@@ -2570,7 +2623,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -2578,7 +2631,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
if (unlikely(!freelist)) { if (unlikely(!freelist)) {
slab_out_of_memory(s, gfpflags, node); slab_out_of_memory(s, gfpflags, node);
@ -144,7 +144,7 @@ index ba20c68a9cfd..224663e20772 100644
} }
page = c->page; page = c->page;
@@ -2583,7 +2636,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -2591,7 +2644,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
goto new_slab; /* Slab failed checks. Next slab needed */ goto new_slab; /* Slab failed checks. Next slab needed */
deactivate_slab(s, page, get_freepointer(s, freelist), c); deactivate_slab(s, page, get_freepointer(s, freelist), c);
@ -153,7 +153,7 @@ index ba20c68a9cfd..224663e20772 100644
} }
/* /*
@@ -2595,6 +2648,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -2603,6 +2656,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
{ {
void *p; void *p;
unsigned long flags; unsigned long flags;
@ -161,7 +161,7 @@ index ba20c68a9cfd..224663e20772 100644
local_irq_save(flags); local_irq_save(flags);
#ifdef CONFIG_PREEMPT #ifdef CONFIG_PREEMPT
@@ -2606,8 +2660,9 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -2614,8 +2668,9 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
c = this_cpu_ptr(s->cpu_slab); c = this_cpu_ptr(s->cpu_slab);
#endif #endif
@ -172,7 +172,7 @@ index ba20c68a9cfd..224663e20772 100644
return p; return p;
} }
@@ -3085,6 +3140,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size, @@ -3095,6 +3150,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
void **p) void **p)
{ {
struct kmem_cache_cpu *c; struct kmem_cache_cpu *c;
@ -180,7 +180,7 @@ index ba20c68a9cfd..224663e20772 100644
int i; int i;
/* memcg and kmem_cache debug support */ /* memcg and kmem_cache debug support */
@@ -3108,7 +3164,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size, @@ -3127,7 +3183,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
* of re-populating per CPU c->freelist * of re-populating per CPU c->freelist
*/ */
p[i] = ___slab_alloc(s, flags, NUMA_NO_NODE, p[i] = ___slab_alloc(s, flags, NUMA_NO_NODE,
@ -189,7 +189,7 @@ index ba20c68a9cfd..224663e20772 100644
if (unlikely(!p[i])) if (unlikely(!p[i]))
goto error; goto error;
@@ -3120,6 +3176,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size, @@ -3139,6 +3195,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
} }
c->tid = next_tid(c->tid); c->tid = next_tid(c->tid);
local_irq_enable(); local_irq_enable();
@ -197,7 +197,7 @@ index ba20c68a9cfd..224663e20772 100644
/* Clear memory outside IRQ disabled fastpath loop */ /* Clear memory outside IRQ disabled fastpath loop */
if (unlikely(flags & __GFP_ZERO)) { if (unlikely(flags & __GFP_ZERO)) {
@@ -3134,6 +3191,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size, @@ -3153,6 +3210,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
return i; return i;
error: error:
local_irq_enable(); local_irq_enable();
@ -205,7 +205,7 @@ index ba20c68a9cfd..224663e20772 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;
@@ -4183,6 +4241,12 @@ void __init kmem_cache_init(void) @@ -4202,6 +4260,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 d3dec69695332f82af11a39b0fd327ad173c4715 Mon Sep 17 00:00:00 2001 From 3c705eb7ff76685a9c4b40776b6d975e64cf6df0 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 076/328] mm: page_alloc: rt-friendly per-cpu pages Subject: [PATCH 076/325] mm: page_alloc: rt-friendly per-cpu pages
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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.

View File

@ -1,8 +1,8 @@
From a03a4ee82ac46307acebdfe58e602aea9835a9a1 Mon Sep 17 00:00:00 2001 From c1c0dcf5b79064717f21d1c3d294827591fea472 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 077/328] mm/swap: Convert to percpu locked Subject: [PATCH 077/325] mm/swap: Convert to percpu locked
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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".

View File

@ -1,8 +1,8 @@
From c48feb8fe1bad2aed0a15440a28da0bca8b5292a Mon Sep 17 00:00:00 2001 From 1025690c55aad067878962af6318286d26c87aaa 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 078/328] mm: perform lru_add_drain_all() remotely Subject: [PATCH 078/325] mm: perform lru_add_drain_all() remotely
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 4e41266214b4e88cf9fb9d2c20b5bbc83dcfbdcc Mon Sep 17 00:00:00 2001 From 92905381cb530f0b66c5d80a2877e1994e775676 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 079/328] mm/vmstat: Protect per cpu variables with preempt Subject: [PATCH 079/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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

View File

@ -1,9 +1,9 @@
From 5af4ea849237914c63d3fd50079e6975aa28f9b2 Mon Sep 17 00:00:00 2001 From fff91e4cb5539ab6cdd32a15661e2f5354552fdb 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 080/328] ARM: Initialize split page table locks for vector Subject: [PATCH 080/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 5bc9982e129b20ecb8f6c32d3d342af5087ffdae Mon Sep 17 00:00:00 2001 From 82e554da6555d60e1a8e5c390a27a12d338f1b53 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 081/328] mm: Enable SLUB for RT Subject: [PATCH 081/325] mm: Enable SLUB for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 224663e20772..cbe47408c6eb 100644 index 19bc021a2726..181b2cb6ffbb 100644
--- a/mm/slub.c --- a/mm/slub.c
+++ b/mm/slub.c +++ b/mm/slub.c
@@ -3680,6 +3680,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, @@ -3699,6 +3699,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 224663e20772..cbe47408c6eb 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),
@@ -3701,6 +3706,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, @@ -3720,6 +3725,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 c908b13d5d4d0e1154b41e93d9fb8349b7b7197a Mon Sep 17 00:00:00 2001 From a84add7d6794ad6184fc6c5c6fbf63c20c733dac 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 082/328] slub: Enable irqs for __GFP_WAIT Subject: [PATCH 082/325] slub: Enable irqs for __GFP_WAIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 cbe47408c6eb..81c32ceab228 100644 index 181b2cb6ffbb..555adbd96356 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 41e0143022ef4180dafc14f033e72efa7ac652de Mon Sep 17 00:00:00 2001 From 5bface7c2f9af3d585acc7f3ac3e0f8096ec4bf1 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 083/328] slub: Disable SLUB_CPU_PARTIAL Subject: [PATCH 083/325] slub: Disable SLUB_CPU_PARTIAL
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 5d6ef143b9e65be0cda54dcea9150f3cfa951ffd Mon Sep 17 00:00:00 2001 From 6089b66d138cc77f35c9d6f7d526cc322b295f28 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 084/328] mm/memcontrol: Don't call schedule_work_on in Subject: [PATCH 084/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 3a3d109dce21..cf9e81fb342d 100644 index 3b78b6af353b..1323fa231eed 100644
--- a/mm/memcontrol.c --- a/mm/memcontrol.c
+++ b/mm/memcontrol.c +++ b/mm/memcontrol.c
@@ -2082,7 +2082,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) @@ -2084,7 +2084,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 3a3d109dce21..cf9e81fb342d 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;
@@ -2102,7 +2102,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) @@ -2104,7 +2104,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 ab73b56574e07b881a37aa1a4b0040a331352d7c Mon Sep 17 00:00:00 2001 From 3e3a73ff713a1c57585373ecc40a3079f9baff65 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 085/328] mm/memcontrol: Replace local_irq_disable with local Subject: [PATCH 085/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 cf9e81fb342d..421ac74450f6 100644 index 1323fa231eed..4156a4e766fb 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 cf9e81fb342d..421ac74450f6 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)
{ {
@@ -4922,12 +4925,12 @@ static int mem_cgroup_move_account(struct page *page, @@ -4930,12 +4933,12 @@ static int mem_cgroup_move_account(struct page *page,
ret = 0; ret = 0;
@ -49,7 +49,7 @@ index cf9e81fb342d..421ac74450f6 100644
out_unlock: out_unlock:
unlock_page(page); unlock_page(page);
out: out:
@@ -6046,10 +6049,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, @@ -6054,10 +6057,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 cf9e81fb342d..421ac74450f6 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) };
@@ -6118,7 +6121,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) @@ -6126,7 +6129,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 cf9e81fb342d..421ac74450f6 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);
@@ -6126,7 +6129,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) @@ -6134,7 +6137,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 cf9e81fb342d..421ac74450f6 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);
@@ -6289,10 +6292,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage) @@ -6297,10 +6300,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 cf9e81fb342d..421ac74450f6 100644
} }
DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key); DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key);
@@ -6484,6 +6487,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) @@ -6482,6 +6485,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 cf9e81fb342d..421ac74450f6 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);
@@ -6529,13 +6533,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) @@ -6527,13 +6531,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 c8eeca08279f6363742db822856cc18ae1b7bdbd Mon Sep 17 00:00:00 2001 From 9aa358dc71da851d2af3660ac73411ad469a331f 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 086/328] mm/zsmalloc: copy with get_cpu_var() and locking Subject: [PATCH 086/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 58952b3995a060f4fc7fbc02552ac489639d565e Mon Sep 17 00:00:00 2001 From 27f3206f1c5af4a5290793529fd61d28c347c32f 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 087/328] x86/mm/pat: disable preemption __split_large_page() Subject: [PATCH 087/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 7f7e6402ea1895f3d2197122d4379c46a3a7fe14 Mon Sep 17 00:00:00 2001 From d1e6ca9dc1adeb9619ee73c22df645243a58833d 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 088/328] radix-tree: use local locks Subject: [PATCH 088/325] radix-tree: use local locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 bb113ab4c9dea8e53db84af84d34864c4f3e9b2d Mon Sep 17 00:00:00 2001 From bf7590c47e53af70146859ca60ae05df521e60e4 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 089/328] timers: Prepare for full preemption Subject: [PATCH 089/325] timers: Prepare for full preemption
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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

View File

@ -1,8 +1,8 @@
From c87615728aaaf5a59575f49682ed6339a9cb116f Mon Sep 17 00:00:00 2001 From 9d89b02f01f1b2e5a9eacb0f65b3794aae03a28c 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 090/328] x86: kvm Require const tsc for RT Subject: [PATCH 090/325] x86: kvm Require const tsc for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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,7 +15,7 @@ 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 ade694f94a49..2dfb7c81743e 100644 index 2cb379e261c0..a94c1a01b894 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
@@ -6873,6 +6873,13 @@ int kvm_arch_init(void *opaque) @@ -6873,6 +6873,13 @@ int kvm_arch_init(void *opaque)

View File

@ -1,8 +1,8 @@
From d46161e1a4fa5ff7b32deb64ac2e7698d0a56e49 Mon Sep 17 00:00:00 2001 From 92f7c935ef1e9ebcae344a957f0f1cf36d9ca182 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 091/328] pci/switchtec: Don't use completion's wait queue Subject: [PATCH 091/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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
@ -19,6 +19,9 @@ test it.
Cc: Kurt Schwemmer <kurt.schwemmer@microsemi.com> Cc: Kurt Schwemmer <kurt.schwemmer@microsemi.com>
Cc: Logan Gunthorpe <logang@deltatee.com> Cc: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[Salvatore Bonaccorso: Refresh for context changes in 4.19.116 due to
12ce9fd7fc87 ("PCI/switchtec: Fix init_completion race condition with
poll_wait()")]
--- ---
drivers/pci/switch/switchtec.c | 22 +++++++++++++--------- drivers/pci/switch/switchtec.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-) 1 file changed, 13 insertions(+), 9 deletions(-)

View File

@ -1,11 +1,11 @@
From 5048f6148f091b822260d482639172336a66cbc3 Mon Sep 17 00:00:00 2001 From 62300f714d10365c00ac9d0b8b35a79be8f2fd26 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 092/328] wait.h: include atomic.h Subject: [PATCH 092/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 370c2439db620266b1bb104cc624841eec515e5c Mon Sep 17 00:00:00 2001 From 1af66c1b241adaee0ae77bcdfb1534a60d08264a 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 093/328] work-simple: Simple work queue implemenation Subject: [PATCH 093/325] work-simple: Simple work queue implemenation
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 8c88098a7081d7cd354fb9e2a64598e6e10ce525 Mon Sep 17 00:00:00 2001 From 0ec9d3d9509f13ebc479c2de4abd9ba1a50eeef7 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 094/328] work-simple: drop a shit statement in Subject: [PATCH 094/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz
Dan Carpenter reported Dan Carpenter reported
| smatch warnings: | smatch warnings:

View File

@ -1,8 +1,8 @@
From ae24940034c02ed671e3a5cc9c4cf31ebfc24fed Mon Sep 17 00:00:00 2001 From b44f079dc57b192c97e92355b26180aaf99b6678 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 095/328] completion: Use simple wait queues Subject: [PATCH 095/325] completion: Use simple wait queues
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 b704e4bce171..c364abaac548 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 2050993fb58b..e2ca75a6e241 100644 index a9239455eb6d..ed56d61d888a 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
@@ -1626,7 +1626,7 @@ static void ffs_data_put(struct ffs_data *ffs) @@ -1627,7 +1627,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) ||

View File

@ -1,8 +1,8 @@
From 4ab27b1ec5f678a5dd444c6e1d3cdff6eeabfa12 Mon Sep 17 00:00:00 2001 From 0bc73d798d3c94781bed15e4ee21c8de0a616835 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 096/328] fs/aio: simple simple work Subject: [PATCH 096/325] fs/aio: simple simple work
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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,138 +0,0 @@
From d349b691ea7fdefe94bb546a0533b63786c1857d Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 21 Aug 2013 17:48:46 +0200
Subject: [PATCH 097/328] genirq: Do not invoke the affinity callback via a
workqueue on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz
Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep()
warning.
This patch uses swork_queue() instead.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
include/linux/interrupt.h | 6 +++++
kernel/irq/manage.c | 46 ++++++++++++++++++++++++++++++++++++---
2 files changed, 49 insertions(+), 3 deletions(-)
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -13,6 +13,7 @@
#include <linux/hrtimer.h>
#include <linux/kref.h>
#include <linux/workqueue.h>
+#include <linux/swork.h>
#include <linux/atomic.h>
#include <asm/ptrace.h>
@@ -225,6 +226,7 @@
* struct irq_affinity_notify - context for notification of IRQ affinity changes
* @irq: Interrupt to which notification applies
* @kref: Reference count, for internal use
+ * @swork: Swork item, for internal use
* @work: Work item, for internal use
* @notify: Function to be called on change. This will be
* called in process context.
@@ -236,7 +238,11 @@
struct irq_affinity_notify {
unsigned int irq;
struct kref kref;
+#ifdef CONFIG_PREEMPT_RT_BASE
+ struct swork_event swork;
+#else
struct work_struct work;
+#endif
void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask);
void (*release)(struct kref *ref);
};
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -285,7 +285,12 @@
if (desc->affinity_notify) {
kref_get(&desc->affinity_notify->kref);
+
+#ifdef CONFIG_PREEMPT_RT_BASE
+ if (!swork_queue(&desc->affinity_notify->swork)) {
+#else
if (!schedule_work(&desc->affinity_notify->work)) {
+#endif
/* Work was already scheduled, drop our extra ref */
kref_put(&desc->affinity_notify->kref,
desc->affinity_notify->release);
@@ -327,10 +332,8 @@
}
EXPORT_SYMBOL_GPL(irq_set_affinity_hint);
-static void irq_affinity_notify(struct work_struct *work)
+static void _irq_affinity_notify(struct irq_affinity_notify *notify)
{
- struct irq_affinity_notify *notify =
- container_of(work, struct irq_affinity_notify, work);
struct irq_desc *desc = irq_to_desc(notify->irq);
cpumask_var_t cpumask;
unsigned long flags;
@@ -352,6 +355,35 @@
kref_put(&notify->kref, notify->release);
}
+#ifdef CONFIG_PREEMPT_RT_BASE
+static void init_helper_thread(void)
+{
+ static int init_sworker_once;
+
+ if (init_sworker_once)
+ return;
+ if (WARN_ON(swork_get()))
+ return;
+ init_sworker_once = 1;
+}
+
+static void irq_affinity_notify(struct swork_event *swork)
+{
+ struct irq_affinity_notify *notify =
+ container_of(swork, struct irq_affinity_notify, swork);
+ _irq_affinity_notify(notify);
+}
+
+#else
+
+static void irq_affinity_notify(struct work_struct *work)
+{
+ struct irq_affinity_notify *notify =
+ container_of(work, struct irq_affinity_notify, work);
+ _irq_affinity_notify(notify);
+}
+#endif
+
/**
* irq_set_affinity_notifier - control notification of IRQ affinity changes
* @irq: Interrupt for which to enable/disable notification
@@ -380,7 +412,12 @@
if (notify) {
notify->irq = irq;
kref_init(&notify->kref);
+#ifdef CONFIG_PREEMPT_RT_BASE
+ INIT_SWORK(&notify->swork, irq_affinity_notify);
+ init_helper_thread();
+#else
INIT_WORK(&notify->work, irq_affinity_notify);
+#endif
}
raw_spin_lock_irqsave(&desc->lock, flags);
@@ -389,10 +426,13 @@
raw_spin_unlock_irqrestore(&desc->lock, flags);
if (old_notify) {
+#ifndef CONFIG_PREEMPT_RT_BASE
+ /* Need to address this for PREEMPT_RT */
if (cancel_work_sync(&old_notify->work)) {
/* Pending work had a ref, put that one too */
kref_put(&old_notify->kref, old_notify->release);
}
+#endif
kref_put(&old_notify->kref, old_notify->release);
}

View File

@ -1,9 +1,9 @@
From 059e9b393e1838e4ad06a521a8e11c21e7ea7919 Mon Sep 17 00:00:00 2001 From 14c8c3829b5d445e2e8d2d0faa3d5aefffd4057d 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 098/328] time/hrtimer: avoid schedule_work() with interrupts Subject: [PATCH 097/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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 10f79182845e34e88499d6ef178e5a7e79a1f0b5 Mon Sep 17 00:00:00 2001 From 9a9c6744f1401c493421737e4069babc9029adb4 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 099/328] hrtimer: consolidate hrtimer_init() + Subject: [PATCH 098/325] 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.106-rt46.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.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,10 +126,10 @@ 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 5c8053098fc8..23e1f8a478e8 100644 index 32f9e3fa8c46..a8081f82579e 100644
--- a/kernel/futex.c --- a/kernel/futex.c
+++ b/kernel/futex.c +++ b/kernel/futex.c
@@ -2704,10 +2704,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val, @@ -2721,10 +2721,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
if (abs_time) { if (abs_time) {
to = &timeout; to = &timeout;
@ -143,7 +143,7 @@ index 5c8053098fc8..23e1f8a478e8 100644
hrtimer_set_expires_range_ns(&to->timer, *abs_time, hrtimer_set_expires_range_ns(&to->timer, *abs_time,
current->timer_slack_ns); current->timer_slack_ns);
} }
@@ -2806,9 +2805,8 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, @@ -2823,9 +2822,8 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
if (time) { if (time) {
to = &timeout; to = &timeout;
@ -155,7 +155,7 @@ index 5c8053098fc8..23e1f8a478e8 100644
hrtimer_set_expires(&to->timer, *time); hrtimer_set_expires(&to->timer, *time);
} }
@@ -3245,10 +3243,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, @@ -3262,10 +3260,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
if (abs_time) { if (abs_time) {
to = &timeout; to = &timeout;

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