diff --git a/debian/changelog b/debian/changelog index 99318ab34..fb510f996 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 "pci/switchtec: Don't use completion's wait queue" for context changes in 4.19.116 + * [rt] Update to 4.19.115-rt48 [ Ben Hutchings ] * [x86] Drop "Add a SysRq option to lift kernel lockdown" (Closes: #947021) diff --git a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch index 6dded20ec..b3bb134c9 100644 --- a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch +++ b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch @@ -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 Date: Thu, 13 Sep 2018 13:30:18 +0200 -Subject: [PATCH 001/328] 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 +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.115-rt48.tar.xz Add registers and bits definitions for the timer counter blocks found on Atmel ARM SoCs. diff --git a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch index ee5b69961..78419c826 100644 --- a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch +++ b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch @@ -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 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 -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 clocksource and two clockevent devices. diff --git a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch index 6d80ccea2..641bfab2b 100644 --- a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch +++ b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch @@ -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 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 -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 available. diff --git a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch index 859f81c07..91c58dd40 100644 --- a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch +++ b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch @@ -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 Date: Thu, 13 Sep 2018 13:30:21 +0200 -Subject: [PATCH 004/328] 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 +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.115-rt48.tar.xz To conform with the other option, make the ATMEL_PIT option silent so it can be selected from the platform diff --git a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch index 0ca0c0d75..29c1b5d8d 100644 --- a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch +++ b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch @@ -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 Date: Thu, 13 Sep 2018 13:30:22 +0200 -Subject: [PATCH 005/328] 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 +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.115-rt48.tar.xz Allow selecting and unselecting the PIT clocksource driver so it doesn't have to be compile when unused. diff --git a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch index 9560ddffb..313ad6fb6 100644 --- a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch +++ b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch @@ -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 Date: Thu, 13 Sep 2018 13:30:23 +0200 -Subject: [PATCH 006/328] 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 +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.115-rt48.tar.xz Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to timer-atmel-tcb. diff --git a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch index 9b6633978..92bdf8e72 100644 --- a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch +++ b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch @@ -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 Date: Thu, 13 Sep 2018 13:30:24 +0200 -Subject: [PATCH 007/328] 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 +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.115-rt48.tar.xz 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. diff --git a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch index 0fa0fe660..ae974105b 100644 --- a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch +++ b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch @@ -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 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 -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 Signed-off-by: Sebastian Andrzej Siewior @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior 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 -index bf7b69449b43..f93b8cd5eea2 100644 +index f9b73336a39e..0387399054b7 100644 --- a/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); diff --git a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch index b88206b02..e1ccf0070 100644 --- a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch +++ b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch @@ -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 Date: Fri, 28 Sep 2018 21:03:51 +0000 -Subject: [PATCH 009/328] 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 +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.115-rt48.tar.xz In order to enable the queuing of kthread work items from hardirq context even when PREEMPT_RT_FULL is enabled, convert the worker diff --git a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch index 41795a131..0b1e99a3a 100644 --- a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch +++ b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch @@ -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?= 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 Content-Type: text/plain; charset=UTF-8 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] diff --git a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch index 6c49f227f..c45ab7726 100644 --- a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch +++ b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch @@ -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 Date: Mon, 7 Jan 2019 13:52:31 +0100 -Subject: [PATCH 011/328] 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 +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.115-rt48.tar.xz Traditionally hrtimer callbacks were run with IRQs disabled, but with the introduction of HRTIMER_MODE_SOFT it is possible they run from @@ -30,10 +30,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 16 insertions(+), 14 deletions(-) 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 +++ 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_flags rf; @@ -42,7 +42,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644 if (!cfs_rq_throttled(cfs_rq)) 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); next: @@ -51,7 +51,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644 if (!remaining) 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 * used to track this state. */ @@ -60,7 +60,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644 { u64 runtime; 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) { runtime = cfs_b->runtime; cfs_b->distribute_running = 1; @@ -73,7 +73,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644 cfs_b->distribute_running = 0; 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) { u64 runtime = 0, slice = sched_cfs_bandwidth_slice(); @@ -94,7 +94,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644 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) 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 = container_of(timer, struct cfs_bandwidth, period_timer); @@ -129,7 +129,7 @@ index 7f4f4ab5bfef..0f1ba3d72336 100644 for (;;) { overrun = hrtimer_forward_now(timer, cfs_b->period); 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; } diff --git a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch index 0ba2af3a2..2509caee5 100644 --- a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch +++ b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch @@ -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 Date: Mon, 19 Sep 2011 14:51:14 -0700 -Subject: [PATCH 012/328] 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 +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.115-rt48.tar.xz 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. diff --git a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch index ba5793ed9..e170fcd98 100644 --- a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch +++ b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch @@ -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 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 -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 and using the fasteoi handler. diff --git a/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch index 223cf4ca6..f6b4851b5 100644 --- a/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch +++ b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch @@ -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 Date: Tue, 3 Jul 2018 18:19:48 +0200 -Subject: [PATCH 014/328] 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 +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.115-rt48.tar.xz All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock either with spin_lock_irq() or spin_lock_irqsave(). diff --git a/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch index 64692423f..e93d53577 100644 --- a/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch +++ b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch @@ -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 Date: Tue, 3 Jul 2018 13:34:30 -0500 -Subject: [PATCH 015/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch index 1e7bb30eb..84cd12be2 100644 --- a/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch +++ b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 RT it does not and the build fails: diff --git a/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch index 99baabb67..0d6154f22 100644 --- a/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch +++ b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch @@ -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 Date: Thu, 11 Oct 2018 16:39:59 +0200 -Subject: [PATCH 017/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch index 5216dcdfb..475a80925 100644 --- a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch +++ b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch @@ -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 Date: Thu, 26 Jul 2018 15:06:10 +0200 -Subject: [PATCH 018/328] efi: Allow efi=runtime -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 018/325] efi: Allow efi=runtime +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 could overwrite its sate by `efi=runtime' and allow it again. diff --git a/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch index 1c3fed3a7..22c190863 100644 --- a/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch +++ b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch @@ -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 Date: Tue, 24 Jul 2018 14:48:55 +0200 -Subject: [PATCH 019/328] 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 +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.115-rt48.tar.xz efi_switch_mm() is a wrapper around switch_mm() which saves current's ->active_mm, sets the requests mm as ->active_mm and invokes @@ -24,10 +24,10 @@ Signed-off-by: Sebastian Andrzej Siewior 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 -index 6db8f3598c80..c9ccaef8df57 100644 +index 2a9a703ef4a0..f104c9f2998d 100644 --- a/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 diff --git a/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch index 29954c9d1..8f1d81ecc 100644 --- a/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch +++ b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch @@ -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 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 -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 stop_machine() and needs a sleeping lock as part of get_random_long(). @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 8 insertions(+), 6 deletions(-) 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 +++ b/arch/arm64/include/asm/alternative.h @@ -35,6 +35,12 @@ void apply_alternatives_module(void *start, size_t length); diff --git a/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch index 0d02c9bda..5615e9004 100644 --- a/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch +++ b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch @@ -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 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 -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 is a raw_spinlock_t. Memory allocation (and free()) is not possible on diff --git a/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch index 43a22c7bc..b5931e50f 100644 --- a/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch +++ b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch @@ -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 Date: Tue, 18 Sep 2018 10:29:31 -0500 -Subject: [PATCH 022/328] 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 +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.115-rt48.tar.xz The static lock quarantine_lock is used in quarantine.c to protect the quarantine queue datastructures. It is taken inside quarantine queue diff --git a/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch index 4b7d16095..8293140ef 100644 --- a/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch +++ b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch @@ -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" 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 -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) diff --git a/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch index ee40d1f2e..37b8c30c8 100644 --- a/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch +++ b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 causes the follow BUG. diff --git a/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch index f6ea7994f..2c8a72630 100644 --- a/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +++ b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -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 Date: Fri, 28 Oct 2016 23:05:11 +0200 -Subject: [PATCH 025/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch index 97ed6549a..1c51a8080 100644 --- a/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch +++ b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch @@ -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 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 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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() wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not @@ -573,10 +573,10 @@ index ebec37cb3be9..4b13df38c069 100644 !dl_task(task) || !task_on_rq_queued(task))) { 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 +++ 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. */ /* Skip this swap candidate if cannot move to the source cpu */ @@ -585,7 +585,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 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)) { /* Skip this CPU if the source task cannot migrate */ @@ -594,7 +594,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 continue; 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 */ if (!cpumask_intersects(sched_group_span(group), @@ -603,7 +603,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 continue; 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)); /* Traverse only the allowed CPUs */ @@ -612,7 +612,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 if (available_idle_cpu(i)) { struct rq *rq = cpu_rq(i); 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; @@ -621,7 +621,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 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)) return -1; @@ -630,7 +630,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 for_each_cpu_wrap(core, cpus, target) { 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; for_each_cpu(cpu, cpu_smt_mask(target)) { @@ -639,7 +639,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 continue; if (available_idle_cpu(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) { if (!--nr) return -1; @@ -648,7 +648,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 continue; if (available_idle_cpu(cpu)) 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 && cpus_share_cache(recent_used_cpu, target) && 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 * 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) { record_wakee(p); want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu) @@ -666,7 +666,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 } 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: * 1) throttled_lb_pair, or @@ -683,7 +683,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 int cpu; 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: */ for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) { @@ -692,7 +692,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 env->flags |= LBF_DST_PINNED; env->new_dst_cpu = cpu; 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 @@ -701,7 +701,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 * * 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. -@@ -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 * work because they assume all things are equal, which typically @@ -710,7 +710,7 @@ index 0f1ba3d72336..27f9f9a785c1 100644 */ if (busiest->group_type == group_imbalanced) 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 * moved to this_cpu: */ diff --git a/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch index 25e907a78..8e54ba023 100644 --- a/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch +++ b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch @@ -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 Date: Sat, 27 May 2017 19:02:06 +0200 -Subject: [PATCH 027/328] 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 +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.115-rt48.tar.xz --- include/linux/preempt.h | 23 +++++++ diff --git a/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch index 027241036..838de0605 100644 --- a/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch +++ b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch @@ -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 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 -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(). This function is only used by sched/core itself and the tracing diff --git a/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch index 758d91601..f501c9cbb 100644 --- a/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch +++ b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch @@ -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 Date: Wed, 9 Mar 2016 10:51:06 +0100 -Subject: [PATCH 029/328] 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 +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.115-rt48.tar.xz Currently the driver will disable the clock and enable it one line later if it is switching from periodic mode into one shot. diff --git a/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch index 2332f0965..66de0bc54 100644 --- a/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch +++ b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch @@ -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 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 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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. Add a compile time selection to allow higher clock resulution. diff --git a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch index f323ecef9..e76b7d338 100644 --- a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch +++ b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch @@ -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 Date: Thu, 14 Feb 2013 22:36:59 +0100 -Subject: [PATCH 031/328] timekeeping: Split jiffies seqlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 031/325] timekeeping: Split jiffies seqlock +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 it can be taken in atomic context on RT. diff --git a/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch index f0f11a319..326f54fea 100644 --- a/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch +++ b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch @@ -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 Date: Wed, 21 Sep 2011 19:57:12 +0200 -Subject: [PATCH 032/328] 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 +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.115-rt48.tar.xz Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a @@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 8 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c -index 08911bb6fe9a..5e278f1540ad 100644 +index c42eaf39b572..feeae7177ee1 100644 --- a/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)) do_notify_parent_cldstop(current, false, why); diff --git a/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch index cc25dcd77..4adedb27a 100644 --- a/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch +++ b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch @@ -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 Date: Wed, 5 Mar 2014 00:49:47 +0100 -Subject: [PATCH 033/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch index 700238825..aea5c1a09 100644 --- a/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch +++ b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch @@ -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 Date: Tue, 27 Mar 2018 16:24:15 +0200 -Subject: [PATCH 034/328] 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 +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.115-rt48.tar.xz In commit 052189a2ec95 ("dm: remove superfluous irq disablement in dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a diff --git a/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch index 4d81aba66..e30f099ac 100644 --- a/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch +++ b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch @@ -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 Date: Fri, 8 Nov 2013 17:34:54 +0100 -Subject: [PATCH 035/328] 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 +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.115-rt48.tar.xz Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet context") the USB code disables interrupts before invoking the complete diff --git a/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch index c265af267..f51d28bdc 100644 --- a/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch +++ b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch @@ -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 Date: Fri, 17 Jun 2011 12:39:57 +0200 -Subject: [PATCH 036/328] 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 +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.115-rt48.tar.xz Introduce PREEMPT_RT_BASE which enables parts of PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT diff --git a/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch index e83f166b1..80c778da4 100644 --- a/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch +++ b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch @@ -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 Date: Wed, 14 Dec 2011 01:03:49 +0100 -Subject: [PATCH 037/328] 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 +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.115-rt48.tar.xz There are "valid" GFP_ATOMIC allocations such as diff --git a/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch index cadcd2805..57e0119e1 100644 --- a/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch +++ b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch @@ -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 Date: Wed, 8 Jul 2015 17:14:48 +0200 -Subject: [PATCH 038/328] 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 +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.115-rt48.tar.xz Some architectures are using stop_machine() while switching the opcode which leads to latency spikes. diff --git a/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch index 1fb8659ce..ef4a8ec8c 100644 --- a/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch +++ b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch @@ -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 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 -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 diff --git a/debian/patches-rt/0040-lockdep-disable-self-test.patch b/debian/patches-rt/0040-lockdep-disable-self-test.patch index fea519967..f3273d6e1 100644 --- a/debian/patches-rt/0040-lockdep-disable-self-test.patch +++ b/debian/patches-rt/0040-lockdep-disable-self-test.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 tests which failed because they had a different semantic for RT. Some diff --git a/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch index b90f1bed6..ca6787cd1 100644 --- a/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch +++ b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch @@ -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 Date: Fri, 3 Jul 2009 08:44:03 -0500 -Subject: [PATCH 041/328] 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 +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.115-rt48.tar.xz Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs. diff --git a/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch index 61b22f1af..77b412d43 100644 --- a/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch +++ b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 but… diff --git a/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch index 45c4bd427..26ff91080 100644 --- a/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch +++ b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch @@ -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 Date: Sun, 28 Oct 2012 13:26:09 +0000 -Subject: [PATCH 043/328] 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 +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.115-rt48.tar.xz This uses a timer_list timer from the irq disabled guts of the idle code. Disable it for now to prevent wreckage. diff --git a/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch index cbee8a039..84405b468 100644 --- a/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch +++ b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch @@ -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 Date: Fri, 21 Mar 2014 20:19:05 +0100 -Subject: [PATCH 044/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch index 54af5f6a4..87baac3a1 100644 --- a/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch +++ b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch @@ -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 Date: Mon, 18 Jul 2011 17:03:52 +0200 -Subject: [PATCH 045/328] 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 +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.115-rt48.tar.xz Carsten reported problems when running: diff --git a/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch index 01106eff8..bacd8e8fc 100644 --- a/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch +++ b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 take sleeping locks and may get long. diff --git a/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch index 22e7a5ba2..48e5f504c 100644 --- a/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch +++ b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch @@ -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 Date: Fri, 1 Dec 2017 10:42:03 +0100 -Subject: [PATCH 047/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch index 46d4c3db7..2e098832f 100644 --- a/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch +++ b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch @@ -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 Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 048/328] 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 +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.115-rt48.tar.xz Use generic code which uses rtmutex diff --git a/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index 9466f919a..5d5a1578d 100644 --- a/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -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 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 -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 guests to run on RT, there's still a performance issue. For interrupts sent in diff --git a/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch index 92394f67b..8bea76b81 100644 --- a/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch +++ b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch @@ -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 Date: Mon, 18 Jul 2011 17:08:34 +0200 -Subject: [PATCH 050/328] 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 +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.115-rt48.tar.xz The current highmem handling on -RT is not compatible and needs fixups. diff --git a/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch index 47b5c4364..9455f84b7 100644 --- a/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch +++ b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch @@ -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 Date: Mon, 18 Jul 2011 17:10:12 +0200 -Subject: [PATCH 051/328] 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 +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.115-rt48.tar.xz The current highmem handling on -RT is not compatible and needs fixups. diff --git a/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch index 3b302c503..cbbfeb906 100644 --- a/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch +++ b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch @@ -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 Date: Sun, 26 Jul 2009 02:21:32 +0200 -Subject: [PATCH 052/328] 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 +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.115-rt48.tar.xz Simplifies the separation of anon_rw_semaphores and rw_semaphores for -rt. diff --git a/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch index 888ed81fc..a1df87c3c 100644 --- a/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch +++ b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch @@ -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 Date: Thu, 23 Jan 2014 14:45:59 +0100 -Subject: [PATCH 053/328] 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 +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.115-rt48.tar.xz as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 diff --git a/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch index e65a08a1a..ab3fe9d15 100644 --- a/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch +++ b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch @@ -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 Date: Thu, 9 Apr 2015 15:23:01 +0200 -Subject: [PATCH 054/328] 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 +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.115-rt48.tar.xz Ralf posted a picture of a backtrace from diff --git a/debian/patches-rt/0055-md-disable-bcache.patch b/debian/patches-rt/0055-md-disable-bcache.patch index 829d22a59..538ca1a4e 100644 --- a/debian/patches-rt/0055-md-disable-bcache.patch +++ b/debian/patches-rt/0055-md-disable-bcache.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 |drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’: diff --git a/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch index 91b655c30..134aeb647 100644 --- a/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch +++ b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch @@ -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 Date: Thu, 26 Jul 2018 15:03:16 +0200 -Subject: [PATCH 056/328] 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 +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.115-rt48.tar.xz Based on meassurements the EFI functions get_variable / get_next_variable take up to 2us which looks okay. diff --git a/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch index 8db4e8537..0719499b6 100644 --- a/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch +++ b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch @@ -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 Date: Fri, 22 Jul 2011 17:58:40 +0200 -Subject: [PATCH 057/328] 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 +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.115-rt48.tar.xz Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that it does not dead-lock with the early printk code. diff --git a/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch index f550cd02d..51a53d72b 100644 --- a/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch +++ b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch @@ -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 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 -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 says. diff --git a/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch index 184d08ae2..7219e2187 100644 --- a/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch +++ b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch @@ -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 Date: Fri, 24 Jul 2009 12:38:56 +0200 -Subject: [PATCH 059/328] 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 +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.115-rt48.tar.xz RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery. diff --git a/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch index 11505130c..4cff2aa66 100644 --- a/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch +++ b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch @@ -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 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 -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 !atomic() context. These little hacks ensure that we don't underflow / overflow @@ -17,10 +17,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 19 insertions(+) diff --git a/kernel/futex.c b/kernel/futex.c -index e75ad30aa7bc..5c8053098fc8 100644 +index 920d853a8e9e..32f9e3fa8c46 100644 --- a/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. */ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -35,7 +35,7 @@ index e75ad30aa7bc..5c8053098fc8 100644 spin_unlock(q.lock_ptr); /* * __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); raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -43,7 +43,7 @@ index e75ad30aa7bc..5c8053098fc8 100644 if (ret) { 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(). */ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); diff --git a/debian/patches-rt/0061-rt-Add-local-irq-locks.patch b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch index 4c622e006..6e4461348 100644 --- a/debian/patches-rt/0061-rt-Add-local-irq-locks.patch +++ b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch @@ -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 Date: Mon, 20 Jun 2011 09:03:47 +0200 -Subject: [PATCH 061/328] 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 +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.115-rt48.tar.xz Introduce locallock. For !RT this maps to preempt_disable()/ local_irq_disable() so there is not much that changes. For RT this will diff --git a/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch index 4c97add52..94fe7a5e7 100644 --- a/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch +++ b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch @@ -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 Date: Mon, 7 May 2018 08:58:56 -0500 -Subject: [PATCH 062/328] 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 +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.115-rt48.tar.xz Provide a set of locallocked accessors for pointers to per-CPU data; this is useful for dynamically-allocated per-CPU regions, for example. diff --git a/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch index 936219a4d..2ef76c588 100644 --- a/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch +++ b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch @@ -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 Date: Fri, 3 Jul 2009 08:44:34 -0500 -Subject: [PATCH 063/328] 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 +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.115-rt48.tar.xz For -RT it is enough to keep pagefault disabled (which is currently handled by kmap_atomic()). diff --git a/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch index 8cc671ec8..af7c74f71 100644 --- a/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch +++ b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch @@ -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 Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 064/328] 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 +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.115-rt48.tar.xz On x86_64 we must disable preemption before we enable interrupts 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; unsigned int sas_ss_flags; diff --git a/kernel/signal.c b/kernel/signal.c -index 5e278f1540ad..d5e764bb2444 100644 +index feeae7177ee1..d1fa3c405784 100644 --- a/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, * that is why we also clear SIGNAL_UNKILLABLE. */ @@ -109,7 +109,7 @@ index 5e278f1540ad..d5e764bb2444 100644 { unsigned long int flags; 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; } diff --git a/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch index 68f19bd50..e01550a81 100644 --- a/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch +++ b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch @@ -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 Date: Thu, 10 Dec 2015 10:58:51 -0800 -Subject: [PATCH 065/328] 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 +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.115-rt48.tar.xz When running some ptrace single step tests on x86-32 machine, the below problem is triggered: diff --git a/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch index cb8f1257c..2b504b3c5 100644 --- a/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch +++ b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch @@ -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 Date: Fri, 18 Mar 2011 09:18:52 +0100 -Subject: [PATCH 066/328] 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 +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.115-rt48.tar.xz Wrap the bit_spin_lock calls into a separate inline and add the RT replacements with a real spinlock. diff --git a/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch index 8649d5312..2a0fa418b 100644 --- a/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch +++ b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch @@ -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 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 -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. diff --git a/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch index 5267db7d2..48216bb60 100644 --- a/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch +++ b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch @@ -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 Date: Fri, 21 Jun 2013 15:07:25 -0400 -Subject: [PATCH 068/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch index ca2e12d40..5ea2d4cda 100644 --- a/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch +++ b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch @@ -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 Date: Thu, 31 Mar 2016 00:04:25 -0500 -Subject: [PATCH 069/328] 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 +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.115-rt48.tar.xz At first glance, the use of 'static inline' seems appropriate for INIT_HLIST_BL_HEAD(). diff --git a/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch index 58c0334ec..585a215c9 100644 --- a/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch +++ b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch @@ -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 Date: Fri, 3 Jul 2009 08:29:57 -0500 -Subject: [PATCH 070/328] 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 +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.115-rt48.tar.xz Creates long latencies for no value diff --git a/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch index 2b0deca08..75217ff85 100644 --- a/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch +++ b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch @@ -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 Date: Sun, 3 Apr 2011 11:57:29 +0200 -Subject: [PATCH 071/328] 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 +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.115-rt48.tar.xz Force threaded_irqs and optimize the code (force_irqthreads) in regard to this. @@ -30,7 +30,7 @@ index eeceac3376fc..315f852b4981 100644 #define force_irqthreads (0) #endif 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 +++ b/kernel/irq/manage.c @@ -24,6 +24,7 @@ diff --git a/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index d989fecee..5fc7f97f9 100644 --- a/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -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 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 -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 while freeing pages. diff --git a/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index 7e178c480..ac0fe81fe 100644 --- a/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -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 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 -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 while freeing pages. diff --git a/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch index 489665ff5..dc7cc9639 100644 --- a/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch @@ -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 Date: Mon, 28 May 2018 15:24:22 +0200 -Subject: [PATCH 074/328] 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 +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.115-rt48.tar.xz 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 @@ -399,7 +399,7 @@ index 9632772e14be..d6b01d61f768 100644 #ifdef CONFIG_SLAB struct list_head slabs_partial; /* partial list first, better asm code */ diff --git a/mm/slub.c b/mm/slub.c -index 9c3937c5ce38..ba20c68a9cfd 100644 +index 9b7b989273d4..a3b4c5c04ffe 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1167,7 +1167,7 @@ static noinline int free_debug_processing( @@ -438,7 +438,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 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 * is frozen */ @@ -447,7 +447,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 } } else { 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 * 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; if (lock) @@ -465,7 +465,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 if (m == M_FREE) { 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)); if (n != n2) { if (n) @@ -478,7 +478,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 } 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) @@ -487,7 +487,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 while (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; struct page *page; @@ -500,7 +500,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 return x; } #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 { if (unlikely(n)) { @@ -509,7 +509,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 n = NULL; } 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 * 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); stat(s, FREE_ADD_PARTIAL); } @@ -527,7 +527,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 return; 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); } @@ -536,7 +536,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 stat(s, FREE_SLAB); 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) { n->nr_partial = 0; @@ -545,7 +545,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 INIT_LIST_HEAD(&n->partial); #ifdef CONFIG_SLUB_DEBUG 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; BUG_ON(irqs_disabled()); @@ -554,7 +554,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 list_for_each_entry_safe(page, h, &n->partial, lru) { if (!page->inuse) { 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()"); } } @@ -563,7 +563,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 list_for_each_entry_safe(page, h, &discard, lru) 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++) INIT_LIST_HEAD(promote + i); @@ -572,7 +572,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 /* * 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--) list_splice(promote + i, &n->partial); @@ -581,7 +581,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 /* Release empty slabs */ 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; unsigned long flags; @@ -590,7 +590,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 list_for_each_entry(page, &n->partial, lru) { 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)); out: @@ -599,7 +599,7 @@ index 9c3937c5ce38..ba20c68a9cfd 100644 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)) continue; diff --git a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch index 95bc1678f..66bdfc1c1 100644 --- a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +++ b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch @@ -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 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 -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 irq-off time while __free_pages() is doing the work. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index ba20c68a9cfd..224663e20772 100644 +index a3b4c5c04ffe..19bc021a2726 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -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 __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; pages = oldpage->pages; if (drain && pobjects > s->cpu_partial) { @@ -86,7 +86,7 @@ index ba20c68a9cfd..224663e20772 100644 oldpage = NULL; pobjects = 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) { @@ -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). */ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -121,7 +121,7 @@ index ba20c68a9cfd..224663e20772 100644 void *freelist; 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); c->freelist = get_freepointer(s, freelist); c->tid = next_tid(c->tid); @@ -135,7 +135,7 @@ index ba20c68a9cfd..224663e20772 100644 return freelist; 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)) { slab_out_of_memory(s, gfpflags, node); @@ -144,7 +144,7 @@ index ba20c68a9cfd..224663e20772 100644 } 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 */ 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; unsigned long flags; @@ -161,7 +161,7 @@ index ba20c68a9cfd..224663e20772 100644 local_irq_save(flags); #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); #endif @@ -172,7 +172,7 @@ index ba20c68a9cfd..224663e20772 100644 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) { struct kmem_cache_cpu *c; @@ -180,7 +180,7 @@ index ba20c68a9cfd..224663e20772 100644 int i; /* 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 */ p[i] = ___slab_alloc(s, flags, NUMA_NO_NODE, @@ -189,7 +189,7 @@ index ba20c68a9cfd..224663e20772 100644 if (unlikely(!p[i])) 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); local_irq_enable(); @@ -197,7 +197,7 @@ index ba20c68a9cfd..224663e20772 100644 /* Clear memory outside IRQ disabled fastpath loop */ 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; error: local_irq_enable(); @@ -205,7 +205,7 @@ index ba20c68a9cfd..224663e20772 100644 slab_post_alloc_hook(s, flags, i, p); __kmem_cache_free_bulk(s, i, p); 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, boot_kmem_cache_node; diff --git a/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch index 5b1b53fab..4307bef11 100644 --- a/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch +++ b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -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 Date: Fri, 3 Jul 2009 08:29:37 -0500 -Subject: [PATCH 076/328] 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 +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.115-rt48.tar.xz rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. diff --git a/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch index 52cab005a..321dfd617 100644 --- a/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch +++ b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch @@ -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 Date: Fri, 3 Jul 2009 08:29:51 -0500 -Subject: [PATCH 077/328] 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 +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.115-rt48.tar.xz Replace global locks (get_cpu + local_irq_save) with "local_locks()". Currently there is one of for "rotate" and one for "swap". diff --git a/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch index 1e3609f25..3cf9bc424 100644 --- a/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch +++ b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch @@ -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 Date: Fri, 27 May 2016 15:03:28 +0200 -Subject: [PATCH 078/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch index 8daab1d8e..6d3942817 100644 --- a/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch +++ b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch @@ -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 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 -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 IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the diff --git a/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch index 304760fc5..ed56a8bc3 100644 --- a/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch +++ b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch @@ -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 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 -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 PREEMPT_RT_FULL=y because vectors_user_mapping() creates a diff --git a/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch index 367dbd705..c0e2cc5e9 100644 --- a/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch +++ b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch @@ -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 Date: Thu, 25 Oct 2012 10:32:35 +0100 -Subject: [PATCH 081/328] 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 +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.115-rt48.tar.xz Avoid the memory allocation in IRQ section @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+) diff --git a/mm/slub.c b/mm/slub.c -index 224663e20772..cbe47408c6eb 100644 +index 19bc021a2726..181b2cb6ffbb 100644 --- a/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) { #ifdef CONFIG_SLUB_DEBUG @@ -29,7 +29,7 @@ index 224663e20772..cbe47408c6eb 100644 void *addr = page_address(page); void *p; 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); kfree(map); #endif diff --git a/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch index 56d089a2c..dfc9852c4 100644 --- a/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch +++ b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch @@ -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 Date: Wed, 9 Jan 2013 12:08:15 +0100 -Subject: [PATCH 082/328] 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 +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.115-rt48.tar.xz SYSTEM_RUNNING might be too late for enabling interrupts. Allocations with GFP_WAIT can happen before that. So use this as an indicator. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mm/slub.c b/mm/slub.c -index cbe47408c6eb..81c32ceab228 100644 +index 181b2cb6ffbb..555adbd96356 100644 --- a/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) diff --git a/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch index d3c7928b4..783e55e37 100644 --- a/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch +++ b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch @@ -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 Date: Wed, 15 Apr 2015 19:00:47 +0200 -Subject: [PATCH 083/328] 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 +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.115-rt48.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7 diff --git a/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch index a02e9117c..9ef7c1b45 100644 --- a/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +++ b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -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 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 -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: @@ -49,10 +49,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 3a3d109dce21..cf9e81fb342d 100644 +index 3b78b6af353b..1323fa231eed 100644 --- a/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 * 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) { struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu); 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); } diff --git a/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch index e696a76dd..d074c3108 100644 --- a/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch +++ b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch @@ -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 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 -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 patch converts them local locks. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index cf9e81fb342d..421ac74450f6 100644 +index 1323fa231eed..4156a4e766fb 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -69,6 +69,7 @@ @@ -34,7 +34,7 @@ index cf9e81fb342d..421ac74450f6 100644 /* Whether legacy memory+swap accounting is active */ 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; @@ -49,7 +49,7 @@ index cf9e81fb342d..421ac74450f6 100644 out_unlock: unlock_page(page); 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); @@ -62,7 +62,7 @@ index cf9e81fb342d..421ac74450f6 100644 if (do_memsw_account() && PageSwapCache(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); } @@ -71,7 +71,7 @@ index cf9e81fb342d..421ac74450f6 100644 __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_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); __this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages); memcg_check_events(ug->memcg, ug->dummy_page); @@ -80,7 +80,7 @@ index cf9e81fb342d..421ac74450f6 100644 if (!mem_cgroup_is_root(ug->memcg)) 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); @@ -93,7 +93,7 @@ index cf9e81fb342d..421ac74450f6 100644 } 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; unsigned int nr_entries; unsigned short oldid; @@ -101,7 +101,7 @@ index cf9e81fb342d..421ac74450f6 100644 VM_BUG_ON_PAGE(PageLRU(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 * only synchronisation we have for updating the per-CPU variables. */ diff --git a/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch index 3693b8892..ba5d3cf51 100644 --- a/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch +++ b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch @@ -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 Date: Tue, 22 Mar 2016 11:16:09 +0100 -Subject: [PATCH 086/328] 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 +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.115-rt48.tar.xz get_cpu_var() disables preemption and triggers a might_sleep() splat later. This is replaced with get_locked_var(). diff --git a/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch index bede8cc66..8d96bd90b 100644 --- a/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch +++ b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch @@ -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 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() -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 warning if __flush_tlb_all() is invoked in preemptible context. On !RT diff --git a/debian/patches-rt/0088-radix-tree-use-local-locks.patch b/debian/patches-rt/0088-radix-tree-use-local-locks.patch index 7aa8c1e7d..bce79e521 100644 --- a/debian/patches-rt/0088-radix-tree-use-local-locks.patch +++ b/debian/patches-rt/0088-radix-tree-use-local-locks.patch @@ -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 Date: Wed, 25 Jan 2017 16:34:27 +0100 -Subject: [PATCH 088/328] 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 +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.115-rt48.tar.xz The preload functionality uses per-CPU variables and preempt-disable to ensure that it does not switch CPUs during its usage. This patch adds diff --git a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch index 6e2f687c5..6000d0cfa 100644 --- a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch +++ b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch @@ -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 Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 089/328] 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 +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.115-rt48.tar.xz 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 diff --git a/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch index 720000537..b6436dc49 100644 --- a/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch +++ b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch @@ -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 Date: Sun, 6 Nov 2011 12:26:18 +0100 -Subject: [PATCH 090/328] 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 +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.115-rt48.tar.xz Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 7 insertions(+) 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 +++ b/arch/x86/kvm/x86.c @@ -6873,6 +6873,13 @@ int kvm_arch_init(void *opaque) diff --git a/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch index c13badcc1..e8281a608 100644 --- a/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch +++ b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch @@ -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 Date: Wed, 4 Oct 2017 10:24:23 +0200 -Subject: [PATCH 091/328] 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 +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.115-rt48.tar.xz 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 @@ -19,6 +19,9 @@ test it. Cc: Kurt Schwemmer Cc: Logan Gunthorpe Signed-off-by: Sebastian Andrzej Siewior +[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 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/debian/patches-rt/0092-wait.h-include-atomic.h.patch b/debian/patches-rt/0092-wait.h-include-atomic.h.patch index 196000f3a..e5fb3d8ef 100644 --- a/debian/patches-rt/0092-wait.h-include-atomic.h.patch +++ b/debian/patches-rt/0092-wait.h-include-atomic.h.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 |In file included from include/linux/mmzone.h:9:0, diff --git a/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch index 106a5a32f..b18f791b0 100644 --- a/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch +++ b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch @@ -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 Date: Fri, 11 Jul 2014 15:26:11 +0200 -Subject: [PATCH 093/328] 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 +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.115-rt48.tar.xz Provides a framework for enqueuing callbacks from irq context PREEMPT_RT_FULL safe. The callbacks are executed in kthread context. diff --git a/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch index 8c05db016..8f1d83b56 100644 --- a/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch +++ b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch @@ -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 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 -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 | smatch warnings: diff --git a/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch index 3e9446fd9..dc5b72287 100644 --- a/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch +++ b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch @@ -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 Date: Fri, 11 Jan 2013 11:23:51 +0100 -Subject: [PATCH 095/328] 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 +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.115-rt48.tar.xz Completions have no long lasting callbacks and therefor do not need the complex waitqueue variant. Use simple waitqueues which reduces the @@ -55,10 +55,10 @@ index b704e4bce171..c364abaac548 100644 break; default: 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 +++ 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__); ffs_data_clear(ffs); BUG_ON(waitqueue_active(&ffs->ev.waitq) || diff --git a/debian/patches-rt/0096-fs-aio-simple-simple-work.patch b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch index 71fdccf7f..3e4fb38ed 100644 --- a/debian/patches-rt/0096-fs-aio-simple-simple-work.patch +++ b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch @@ -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 Date: Mon, 16 Feb 2015 18:49:10 +0100 -Subject: [PATCH 096/328] 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 +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.115-rt48.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768 |in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2 diff --git a/debian/patches-rt/0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch b/debian/patches-rt/0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch deleted file mode 100644 index 5462cecd1..000000000 --- a/debian/patches-rt/0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch +++ /dev/null @@ -1,138 +0,0 @@ -From d349b691ea7fdefe94bb546a0533b63786c1857d Mon Sep 17 00:00:00 2001 -From: Sebastian Andrzej Siewior -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 ---- - 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 - #include - #include -+#include - - #include - #include -@@ -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(¬ify->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(¬ify->kref); -+#ifdef CONFIG_PREEMPT_RT_BASE -+ INIT_SWORK(¬ify->swork, irq_affinity_notify); -+ init_helper_thread(); -+#else - INIT_WORK(¬ify->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); - } - diff --git a/debian/patches-rt/0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch similarity index 91% rename from debian/patches-rt/0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch rename to debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch index aa580fa3a..d12e855a4 100644 --- a/debian/patches-rt/0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch +++ b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch @@ -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 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 -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. Since this does not work -RT I am switching it to swork instead. diff --git a/debian/patches-rt/0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch similarity index 96% rename from debian/patches-rt/0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch rename to debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch index d06e13bf6..fcccb521f 100644 --- a/debian/patches-rt/0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +++ b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch @@ -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 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 -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 object with hrtimer_init(). Lets make the initialisation of @@ -126,10 +126,10 @@ index 2b5ef8e94d19..94bd2e841de6 100644 hrtimer_start_range_ns(&__t.timer, timeout, \ current->timer_slack_ns, \ diff --git a/kernel/futex.c b/kernel/futex.c -index 5c8053098fc8..23e1f8a478e8 100644 +index 32f9e3fa8c46..a8081f82579e 100644 --- a/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) { to = &timeout; @@ -143,7 +143,7 @@ index 5c8053098fc8..23e1f8a478e8 100644 hrtimer_set_expires_range_ns(&to->timer, *abs_time, 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) { to = &timeout; @@ -155,7 +155,7 @@ index 5c8053098fc8..23e1f8a478e8 100644 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) { to = &timeout; diff --git a/debian/patches-rt/0100-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch similarity index 98% rename from debian/patches-rt/0100-hrtimers-Prepare-full-preemption.patch rename to debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch index 4db585730..50e8920ce 100644 --- a/debian/patches-rt/0100-hrtimers-Prepare-full-preemption.patch +++ b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch @@ -1,8 +1,8 @@ -From 46ce0d2ba1077d583aa36bef4e8ffb712246bf2e Mon Sep 17 00:00:00 2001 +From 4010d1e594f451d4c3c992238406e1eba5c749e4 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 100/328] hrtimers: Prepare full preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 099/325] hrtimers: Prepare full preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Make cancellation of a running callback in softirq context safe against preemption. diff --git a/debian/patches-rt/0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch b/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch similarity index 95% rename from debian/patches-rt/0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch rename to debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch index 6f0a94917..202deea82 100644 --- a/debian/patches-rt/0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch +++ b/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch @@ -1,9 +1,9 @@ -From 11c94409951908175bc4fab549d79ee48bcbc102 Mon Sep 17 00:00:00 2001 +From b09a6ad039102ca18a66df006771be4c9a4679c7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 3 Jul 2009 08:44:31 -0500 -Subject: [PATCH 101/328] hrtimer: by timers by default into the softirq +Subject: [PATCH 100/325] hrtimer: by timers by default into the softirq 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 We can't have hrtimers callbacks running in hardirq context on RT. Therefore the timers are deferred to the softirq context by default. @@ -29,10 +29,10 @@ Signed-off-by: Sebastian Andrzej Siewior 11 files changed, 37 insertions(+), 14 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c -index 05905961ecca..9f08b74cda59 100644 +index 8c6392534d14..d64ca45f5db6 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c -@@ -2262,7 +2262,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu) +@@ -2261,7 +2261,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu) apic->vcpu = vcpu; hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC, @@ -114,10 +114,10 @@ index 4b13df38c069..974a8f9b615a 100644 } diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 27f9f9a785c1..d801e6c763ee 100644 +index fe58e95484cf..f35eb8130921 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4930,9 +4930,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) +@@ -4951,9 +4951,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) cfs_b->period = ns_to_ktime(default_cfs_period()); INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq); diff --git a/debian/patches-rt/0102-sched-fair-Make-the-hrtimers-non-hard-again.patch b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch similarity index 81% rename from debian/patches-rt/0102-sched-fair-Make-the-hrtimers-non-hard-again.patch rename to debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch index 1085540fe..a4a6e83f6 100644 --- a/debian/patches-rt/0102-sched-fair-Make-the-hrtimers-non-hard-again.patch +++ b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch @@ -1,8 +1,8 @@ -From 80511ff61a43b8db5ac26d665ef32b73cbc03471 Mon Sep 17 00:00:00 2001 +From 0cf31ad4768bed54a110b2c9bf62827799d41e8a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 8 Jan 2019 12:31:06 +0100 -Subject: [PATCH 102/328] sched/fair: Make the hrtimers non-hard again -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 101/325] sched/fair: Make the hrtimers non-hard again +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Since commit "sched/fair: Robustify CFS-bandwidth timer locking" both hrtimer can run in softirq context because now interrupts are disabled @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index d801e6c763ee..27f9f9a785c1 100644 +index f35eb8130921..fe58e95484cf 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4930,9 +4930,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) +@@ -4951,9 +4951,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) cfs_b->period = ns_to_ktime(default_cfs_period()); INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq); diff --git a/debian/patches-rt/0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch similarity index 95% rename from debian/patches-rt/0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch rename to debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch index 5cf3527f2..5cc8d6317 100644 --- a/debian/patches-rt/0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch +++ b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch @@ -1,8 +1,8 @@ -From 78baf86e1ae9ffb52fdbd93f63afc3fb3ecc3f26 Mon Sep 17 00:00:00 2001 +From 41922c56a8fa6df2534420fe522232d8c448aae2 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Mon, 16 Sep 2013 14:09:19 -0700 -Subject: [PATCH 103/328] hrtimer: Move schedule_work call to helper thread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 102/325] hrtimer: Move schedule_work call to helper thread +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz When run ltp leapsec_timer test, the following call trace is caught: diff --git a/debian/patches-rt/0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch b/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch similarity index 91% rename from debian/patches-rt/0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch rename to debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch index ceba7b495..75e5d5433 100644 --- a/debian/patches-rt/0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch +++ b/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch @@ -1,9 +1,9 @@ -From 4cb6829518eaf4e33821ad23eca2672efd3c8292 Mon Sep 17 00:00:00 2001 +From 6b0b0a70d8daac88d3492deb4dfa74c7e232fa8e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 10:15:13 +0100 -Subject: [PATCH 104/328] hrtimer: move state change before hrtimer_cancel in +Subject: [PATCH 103/325] hrtimer: move state change before hrtimer_cancel in do_nanosleep() -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 a small window between setting t->task to NULL and waking the task up (which would set TASK_RUNNING). So the timer would fire, run and diff --git a/debian/patches-rt/0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch similarity index 97% rename from debian/patches-rt/0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch rename to debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch index 68d86a460..66d027ffd 100644 --- a/debian/patches-rt/0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch +++ b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch @@ -1,8 +1,8 @@ -From 502c5fa30dc1a4c295e2f42049d7c79b0245db74 Mon Sep 17 00:00:00 2001 +From 60c7b398c11f739be117b6e30a9b09f615e406a0 Mon Sep 17 00:00:00 2001 From: John Stultz Date: Fri, 3 Jul 2009 08:29:58 -0500 -Subject: [PATCH 105/328] posix-timers: Thread posix-cpu-timers on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 104/325] posix-timers: Thread posix-cpu-timers on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz posix-cpu-timer code takes non -rt safe locks in hard irq context. Move it to a thread. diff --git a/debian/patches-rt/0106-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch similarity index 94% rename from debian/patches-rt/0106-sched-Move-task_struct-cleanup-to-RCU.patch rename to debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch index 379c04224..7ae7224a1 100644 --- a/debian/patches-rt/0106-sched-Move-task_struct-cleanup-to-RCU.patch +++ b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch @@ -1,8 +1,8 @@ -From 11ee26b0db121f202fdb0adaea13a37ae4ee31f9 Mon Sep 17 00:00:00 2001 +From 97846d957dd8a3d2b13c5095b2487c4977f0cb93 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 May 2011 16:59:16 +0200 -Subject: [PATCH 106/328] sched: Move task_struct cleanup to RCU -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 105/325] sched: Move task_struct cleanup to RCU +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz __put_task_struct() does quite some expensive work. We don't want to burden random tasks with that. diff --git a/debian/patches-rt/0107-sched-Limit-the-number-of-task-migrations-per-batch.patch b/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch similarity index 85% rename from debian/patches-rt/0107-sched-Limit-the-number-of-task-migrations-per-batch.patch rename to debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch index 7b8cd21d5..1905396ff 100644 --- a/debian/patches-rt/0107-sched-Limit-the-number-of-task-migrations-per-batch.patch +++ b/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch @@ -1,8 +1,8 @@ -From 1ecb69a3b71549668399060338d4e216c3886d67 Mon Sep 17 00:00:00 2001 +From f7d8e7c485e3b32f915bfdf26698b947abaeaf10 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:12:51 +0200 -Subject: [PATCH 107/328] sched: Limit the number of task migrations per batch -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 106/325] sched: Limit the number of task migrations per batch +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. diff --git a/debian/patches-rt/0108-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch similarity index 96% rename from debian/patches-rt/0108-sched-Move-mmdrop-to-RCU-on-RT.patch rename to debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch index aa0992b13..f5399356d 100644 --- a/debian/patches-rt/0108-sched-Move-mmdrop-to-RCU-on-RT.patch +++ b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch @@ -1,8 +1,8 @@ -From 81ab4eb4f9ca9097217f44a6961e60ebb82725b1 Mon Sep 17 00:00:00 2001 +From 9d712d36877d0b56524f63fc76ae36ecfc75ec1e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:20:33 +0200 -Subject: [PATCH 108/328] sched: Move mmdrop to RCU on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 107/325] sched: Move mmdrop to RCU on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Takes sleeping locks and calls into the memory allocator, so nothing we want to do in task switch and oder atomic contexts. diff --git a/debian/patches-rt/0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch similarity index 92% rename from debian/patches-rt/0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch rename to debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch index 3d0c3eb11..3f4688ca9 100644 --- a/debian/patches-rt/0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +++ b/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch @@ -1,9 +1,9 @@ -From 375e6c07eb8de47fab60360d59bbeb611508c54c Mon Sep 17 00:00:00 2001 +From 93d5750f6bd9a39e9e4de3773c7ab669b446e214 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Nov 2016 19:31:08 +0100 -Subject: [PATCH 109/328] kernel/sched: move stack + kprobe clean up to +Subject: [PATCH 108/325] kernel/sched: move stack + kprobe clean up to __put_task_struct() -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 no need to free the stack before the task struct (except for reasons mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if diff --git a/debian/patches-rt/0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch similarity index 95% rename from debian/patches-rt/0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch rename to debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch index 04177f373..79c9d7c19 100644 --- a/debian/patches-rt/0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch +++ b/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch @@ -1,9 +1,9 @@ -From 713f8459593a71106384c1a9ba33189561ea892e Mon Sep 17 00:00:00 2001 +From 59729bf436bda277795b157fd494206ee00a0918 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 25 Jun 2011 09:21:04 +0200 -Subject: [PATCH 110/328] sched: Add saved_state for tasks blocked on sleeping +Subject: [PATCH 109/325] sched: Add saved_state for tasks blocked on sleeping 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 Spinlocks are state preserving in !RT. RT changes the state when a task gets blocked on a lock. So we need to remember the state before diff --git a/debian/patches-rt/0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch similarity index 91% rename from debian/patches-rt/0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch rename to debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch index a541b78c3..1a078d910 100644 --- a/debian/patches-rt/0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch +++ b/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch @@ -1,9 +1,9 @@ -From d8deeba7aff8ef76350524de5c15b1c12563e91d Mon Sep 17 00:00:00 2001 +From ae13a78b6abe7d64003fa44196eeda8814ca4d48 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 7 Jun 2011 09:19:06 +0200 -Subject: [PATCH 111/328] sched: Do not account rcu_preempt_depth on RT in +Subject: [PATCH 110/325] sched: Do not account rcu_preempt_depth on RT in might_sleep() -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 changes the rcu_preempt_depth semantics, so we cannot check for it in might_sleep(). diff --git a/debian/patches-rt/0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch b/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch similarity index 83% rename from debian/patches-rt/0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch rename to debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch index 2e0de4853..64156215f 100644 --- a/debian/patches-rt/0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch +++ b/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch @@ -1,8 +1,8 @@ -From 875b7c458428cc65b17950157a9e804383864d31 Mon Sep 17 00:00:00 2001 +From 9774ed0ae21bac1e01f919117ee09f5490d7c7c3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 22:51:33 +0200 -Subject: [PATCH 112/328] sched: Use the proper LOCK_OFFSET for cond_resched() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 111/325] sched: Use the proper LOCK_OFFSET for cond_resched() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz RT does not increment preempt count when a 'sleeping' spinlock is locked. Update PREEMPT_LOCK_OFFSET for that case. diff --git a/debian/patches-rt/0113-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch similarity index 86% rename from debian/patches-rt/0113-sched-Disable-TTWU_QUEUE-on-RT.patch rename to debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch index dff74ab7b..5939decb4 100644 --- a/debian/patches-rt/0113-sched-Disable-TTWU_QUEUE-on-RT.patch +++ b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch @@ -1,8 +1,8 @@ -From 365d52b7071fa4453be6483864c31584995053b6 Mon Sep 17 00:00:00 2001 +From d944dd60ea381b06696f77f6900bfad524f0c5b8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Sep 2011 16:42:35 +0200 -Subject: [PATCH 113/328] sched: Disable TTWU_QUEUE on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 112/325] sched: Disable TTWU_QUEUE on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The queued remote wakeup mechanism can introduce rather large latencies if the number of migrated tasks is high. Disable it for RT. diff --git a/debian/patches-rt/0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch similarity index 90% rename from debian/patches-rt/0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch rename to debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch index 5357ecaa5..0c9070f42 100644 --- a/debian/patches-rt/0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch +++ b/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch @@ -1,9 +1,9 @@ -From eb876f743020816179d1fc4b036e540d72c771f4 Mon Sep 17 00:00:00 2001 +From 7617fdb778960b1313b4e27bb3429d28c5d42957 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Mon, 18 Mar 2013 15:12:49 -0400 -Subject: [PATCH 114/328] sched/workqueue: Only wake up idle workers if not +Subject: [PATCH 113/325] sched/workqueue: Only wake up idle workers if not blocked on sleeping 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 In -rt, most spin_locks() turn into mutexes. One of these spin_lock conversions is performed on the workqueue gcwq->lock. When the idle diff --git a/debian/patches-rt/0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch b/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch similarity index 97% rename from debian/patches-rt/0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch rename to debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch index ef3ae53cb..d6f4a158d 100644 --- a/debian/patches-rt/0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch +++ b/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch @@ -1,9 +1,9 @@ -From d5c888e692b5c34315ee9d6c6019dc054bb3650c Mon Sep 17 00:00:00 2001 +From 418bcb5747f1358c0afc713ba2294fe33b5878de Mon Sep 17 00:00:00 2001 From: Daniel Bristot de Oliveira Date: Mon, 26 Jun 2017 17:07:15 +0200 -Subject: [PATCH 115/328] rt: Increase/decrease the nr of migratory tasks when +Subject: [PATCH 114/325] rt: Increase/decrease the nr of migratory tasks when enabling/disabling migration -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 a problem in the migrate_disable()/enable() implementation regarding the number of migratory tasks in the rt/dl RQs. The problem diff --git a/debian/patches-rt/0116-hotplug-Lightweight-get-online-cpus.patch b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch similarity index 94% rename from debian/patches-rt/0116-hotplug-Lightweight-get-online-cpus.patch rename to debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch index 7e3d012ff..aad469312 100644 --- a/debian/patches-rt/0116-hotplug-Lightweight-get-online-cpus.patch +++ b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch @@ -1,8 +1,8 @@ -From 54abe9a86c78a78b978f91e21929db155fc9f342 Mon Sep 17 00:00:00 2001 +From 97c38013b1a149d864cda397094e7038085f4e80 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 15 Jun 2011 12:36:06 +0200 -Subject: [PATCH 116/328] hotplug: Lightweight get online cpus -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 115/325] hotplug: Lightweight get online cpus +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz get_online_cpus() is a heavy weight function which involves a global mutex. migrate_disable() wants a simpler construct which prevents only diff --git a/debian/patches-rt/0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch similarity index 89% rename from debian/patches-rt/0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch rename to debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch index 80b0c1987..d40f90557 100644 --- a/debian/patches-rt/0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch +++ b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch @@ -1,8 +1,8 @@ -From b04beb8ffbac46b3e231d5032cabf43bb8638052 Mon Sep 17 00:00:00 2001 +From 9ea64a4be6dfb32d2a562b28857bef0ae9fa163b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:56:42 +0200 -Subject: [PATCH 117/328] trace: Add migrate-disabled counter to tracing output -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 116/325] trace: Add migrate-disabled counter to tracing output +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Thomas Gleixner --- @@ -26,10 +26,10 @@ index 0643c083ed86..1cc4d2da954c 100644 #define TRACE_EVENT_TYPE_MAX \ diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index e61aa1c68e99..5eccf1c201db 100644 +index c41f7d1ab5fa..1fac8a2de78f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2149,6 +2149,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, +@@ -2151,6 +2151,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, ((pc & SOFTIRQ_OFFSET) ? TRACE_FLAG_SOFTIRQ : 0) | (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) | (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0); @@ -38,7 +38,7 @@ index e61aa1c68e99..5eccf1c201db 100644 } EXPORT_SYMBOL_GPL(tracing_generic_entry_update); -@@ -3352,9 +3354,10 @@ static void print_lat_help_header(struct seq_file *m) +@@ -3354,9 +3356,10 @@ static void print_lat_help_header(struct seq_file *m) "# | / _----=> need-resched \n" "# || / _---=> hardirq/softirq \n" "# ||| / _--=> preempt-depth \n" diff --git a/debian/patches-rt/0118-lockdep-Make-it-RT-aware.patch b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch similarity index 93% rename from debian/patches-rt/0118-lockdep-Make-it-RT-aware.patch rename to debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch index eeeffdcff..a07c0e974 100644 --- a/debian/patches-rt/0118-lockdep-Make-it-RT-aware.patch +++ b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch @@ -1,8 +1,8 @@ -From b65e89f6b27831323b600bce37aa38ce596bdcd3 Mon Sep 17 00:00:00 2001 +From 8ed2b42d1e41402d585e7907ef754461cda3ff25 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 18:51:23 +0200 -Subject: [PATCH 118/328] lockdep: Make it RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 117/325] lockdep: Make it RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz teach lockdep that we don't really do softirqs on -RT. diff --git a/debian/patches-rt/0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch similarity index 95% rename from debian/patches-rt/0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch rename to debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch index 9de3859b8..dfe5b6955 100644 --- a/debian/patches-rt/0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +++ b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch @@ -1,9 +1,9 @@ -From 7d6dc49f4a2794dc14d0fb1bb4f669616ac12d88 Mon Sep 17 00:00:00 2001 +From af236a3575387c398e7192cc9f09098679b05e77 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Tue, 29 Nov 2011 20:18:22 -0500 -Subject: [PATCH 119/328] tasklet: Prevent tasklets from going into infinite +Subject: [PATCH 118/325] tasklet: Prevent tasklets from going into infinite spin in 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 When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads, and spinlocks turn are mutexes. But this can cause issues with @@ -44,10 +44,10 @@ Signed-off-by: Thomas Gleixner 2 files changed, 125 insertions(+), 34 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index a943c07b54ba..e74936c7be48 100644 +index 315f852b4981..35fa335c475b 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -542,8 +542,9 @@ static inline struct task_struct *this_cpu_ksoftirqd(void) +@@ -536,8 +536,9 @@ static inline struct task_struct *this_cpu_ksoftirqd(void) to be executed on some cpu at least once after this. * If the tasklet is already scheduled, but its execution is still not started, it will be executed only once. @@ -59,7 +59,7 @@ index a943c07b54ba..e74936c7be48 100644 * Tasklet is strictly serialized wrt itself, but not wrt another tasklets. If client needs some intertask synchronization, he makes it with spinlocks. -@@ -568,27 +569,36 @@ struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(1), func, data } +@@ -562,27 +563,36 @@ struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(1), func, data } enum { TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */ @@ -102,7 +102,7 @@ index a943c07b54ba..e74936c7be48 100644 #define tasklet_unlock_wait(t) do { } while (0) #define tasklet_unlock(t) do { } while (0) #endif -@@ -622,12 +632,7 @@ static inline void tasklet_disable(struct tasklet_struct *t) +@@ -616,12 +626,7 @@ static inline void tasklet_disable(struct tasklet_struct *t) smp_mb(); } diff --git a/debian/patches-rt/0120-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch similarity index 91% rename from debian/patches-rt/0120-softirq-Check-preemption-after-reenabling-interrupts.patch rename to debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch index ebe4f09b9..2de572682 100644 --- a/debian/patches-rt/0120-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,8 +1,8 @@ -From 4f7f72bc0ff5be0e440cf01595c7b333d8f27f70 Mon Sep 17 00:00:00 2001 +From 3e6511a5a97439410e2888198a743dfe4162bcbc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 13 Nov 2011 17:17:09 +0100 -Subject: [PATCH 120/328] softirq: Check preemption after reenabling interrupts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 119/325] softirq: Check preemption after reenabling interrupts +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -117,7 +117,7 @@ index 86a709954f5a..9c069ef83d6d 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index c1a3baf16957..45ff62d35a1f 100644 +index 2f4d35101f4d..626743ea0d53 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2727,6 +2727,7 @@ static void __netif_reschedule(struct Qdisc *q) @@ -136,7 +136,7 @@ index c1a3baf16957..45ff62d35a1f 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4261,6 +4263,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4263,6 +4265,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -144,7 +144,7 @@ index c1a3baf16957..45ff62d35a1f 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -5801,12 +5804,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -5803,12 +5806,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) sd->rps_ipi_list = NULL; local_irq_enable(); @@ -159,7 +159,7 @@ index c1a3baf16957..45ff62d35a1f 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -5884,6 +5889,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -5886,6 +5891,7 @@ void __napi_schedule(struct napi_struct *n) local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -167,7 +167,7 @@ index c1a3baf16957..45ff62d35a1f 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -9486,6 +9492,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9488,6 +9494,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); diff --git a/debian/patches-rt/0121-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch similarity index 95% rename from debian/patches-rt/0121-softirq-Disable-softirq-stacks-for-RT.patch rename to debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch index ea4fdcad6..66e000f3a 100644 --- a/debian/patches-rt/0121-softirq-Disable-softirq-stacks-for-RT.patch +++ b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch @@ -1,8 +1,8 @@ -From 72daa94331fe79e1c1b596147ec920920f1cd87a Mon Sep 17 00:00:00 2001 +From 2ed3d0fe9e8b5fea94a4a98b98490353bae4a22b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 13:59:17 +0200 -Subject: [PATCH 121/328] softirq: Disable softirq stacks for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 120/325] softirq: Disable softirq stacks for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. @@ -160,10 +160,10 @@ index 95600a99ae93..9192d76085ba 100644 bool handle_irq(struct irq_desc *desc, struct pt_regs *regs) { diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index e74936c7be48..cb2d1384cb0d 100644 +index 35fa335c475b..eec4bec454b5 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -506,7 +506,7 @@ struct softirq_action +@@ -500,7 +500,7 @@ struct softirq_action asmlinkage void do_softirq(void); asmlinkage void __do_softirq(void); diff --git a/debian/patches-rt/0122-softirq-Split-softirq-locks.patch b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch similarity index 98% rename from debian/patches-rt/0122-softirq-Split-softirq-locks.patch rename to debian/patches-rt/0121-softirq-Split-softirq-locks.patch index 14fa2f942..7f241fb18 100644 --- a/debian/patches-rt/0122-softirq-Split-softirq-locks.patch +++ b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch @@ -1,8 +1,8 @@ -From d9b80fda665aeecc128e15d7771a29dcf01f3e36 Mon Sep 17 00:00:00 2001 +From 7f588c91c584d17bfab949544912fab8942a5eaf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 4 Oct 2012 14:20:47 +0100 -Subject: [PATCH 122/328] softirq: Split softirq locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 121/325] softirq: Split softirq locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The 3.x RT series removed the split softirq implementation in favour of pushing softirq processing into the context of the thread which @@ -87,10 +87,10 @@ index a19519f4241d..40dd5ef9c154 100644 #endif /* _LINUX_BH_H */ diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index cb2d1384cb0d..6c25b962ba89 100644 +index eec4bec454b5..cf9860d49d57 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -503,10 +503,11 @@ struct softirq_action +@@ -497,10 +497,11 @@ struct softirq_action void (*action)(struct softirq_action *); }; @@ -104,7 +104,7 @@ index cb2d1384cb0d..6c25b962ba89 100644 void do_softirq_own_stack(void); #else static inline void do_softirq_own_stack(void) -@@ -514,6 +515,9 @@ static inline void do_softirq_own_stack(void) +@@ -508,6 +509,9 @@ static inline void do_softirq_own_stack(void) __do_softirq(); } #endif @@ -114,7 +114,7 @@ index cb2d1384cb0d..6c25b962ba89 100644 extern void open_softirq(int nr, void (*action)(struct softirq_action *)); extern void softirq_init(void); -@@ -521,6 +525,7 @@ extern void __raise_softirq_irqoff(unsigned int nr); +@@ -515,6 +519,7 @@ extern void __raise_softirq_irqoff(unsigned int nr); extern void raise_softirq_irqoff(unsigned int nr); extern void raise_softirq(unsigned int nr); @@ -122,7 +122,7 @@ index cb2d1384cb0d..6c25b962ba89 100644 DECLARE_PER_CPU(struct task_struct *, ksoftirqd); -@@ -638,6 +643,12 @@ extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu); +@@ -632,6 +637,12 @@ extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu); extern void tasklet_init(struct tasklet_struct *t, void (*func)(unsigned long), unsigned long data); diff --git a/debian/patches-rt/0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch b/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch similarity index 80% rename from debian/patches-rt/0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch rename to debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch index 4f4ac995d..eed262bed 100644 --- a/debian/patches-rt/0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch +++ b/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch @@ -1,8 +1,8 @@ -From afeabb59361466c6e88b4e95603508d7375f4aeb Mon Sep 17 00:00:00 2001 +From 7686cfd7088430200bd52074427f75462111fe5f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 16 Jun 2017 19:03:16 +0200 -Subject: [PATCH 123/328] net/core: use local_bh_disable() in netif_rx_ni() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 122/325] net/core: use local_bh_disable() in netif_rx_ni() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz In 2004 netif_rx_ni() gained a preempt_disable() section around netif_rx() and its do_softirq() + testing for it. The do_softirq() part @@ -19,10 +19,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 45ff62d35a1f..b754adb14205 100644 +index 626743ea0d53..655dbfac09fd 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4529,11 +4529,9 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4531,11 +4531,9 @@ int netif_rx_ni(struct sk_buff *skb) trace_netif_rx_ni_entry(skb); diff --git a/debian/patches-rt/0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch similarity index 92% rename from debian/patches-rt/0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch rename to debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch index 9211770b7..301708fdf 100644 --- a/debian/patches-rt/0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +++ b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch @@ -1,9 +1,9 @@ -From a6531b867486fabcd2c6edc5ee1148497582e2b1 Mon Sep 17 00:00:00 2001 +From 563f92a709b074d89146410c177c5e70db3cd3fa Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 Jan 2012 13:01:27 +0100 -Subject: [PATCH 124/328] genirq: Allow disabling of softirq processing in irq +Subject: [PATCH 123/325] genirq: Allow disabling of softirq processing in irq thread 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 processing of softirqs in irq thread context is a performance gain for the non-rt workloads of a system, but it's counterproductive for @@ -21,10 +21,10 @@ Signed-off-by: Thomas Gleixner 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 6c25b962ba89..99f8b7ace7c9 100644 +index cf9860d49d57..e1438fe66467 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -62,6 +62,7 @@ +@@ -61,6 +61,7 @@ * interrupt handler after suspending interrupts. For system * wakeup devices users need to implement wakeup detection in * their interrupt handlers. @@ -32,7 +32,7 @@ index 6c25b962ba89..99f8b7ace7c9 100644 */ #define IRQF_SHARED 0x00000080 #define IRQF_PROBE_SHARED 0x00000100 -@@ -75,6 +76,7 @@ +@@ -74,6 +75,7 @@ #define IRQF_NO_THREAD 0x00010000 #define IRQF_EARLY_RESUME 0x00020000 #define IRQF_COND_SUSPEND 0x00040000 @@ -69,10 +69,10 @@ index 6ecaf056ab63..d2487df7ae89 100644 #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index eadcbfbd434a..3858ac895777 100644 +index 0809bf7743af..ccd8af6fe49d 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c -@@ -1004,7 +1004,15 @@ irq_forced_thread_fn(struct irq_desc *desc, struct irqaction *action) +@@ -957,7 +957,15 @@ irq_forced_thread_fn(struct irq_desc *desc, struct irqaction *action) atomic_inc(&desc->threads_handled); irq_finalize_oneshot(desc, action); @@ -89,7 +89,7 @@ index eadcbfbd434a..3858ac895777 100644 return ret; } -@@ -1514,6 +1522,9 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) +@@ -1467,6 +1475,9 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) irqd_set(&desc->irq_data, IRQD_NO_BALANCING); } diff --git a/debian/patches-rt/0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch similarity index 97% rename from debian/patches-rt/0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch rename to debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch index 196eb1308..ad73ed509 100644 --- a/debian/patches-rt/0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch +++ b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch @@ -1,8 +1,8 @@ -From e106eea6c2a414edbf8c47e0df2db6ea5a462c7f Mon Sep 17 00:00:00 2001 +From 5b1827a76c3fd349c3e0f8fcf77c1b054b34aedc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Jan 2016 16:34:17 +0100 -Subject: [PATCH 125/328] softirq: split timer softirqs out of ksoftirqd -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 124/325] softirq: split timer softirqs out of ksoftirqd +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The softirqd runs in -RT with SCHED_FIFO (prio 1) and deals mostly with timer wakeup which can not happen in hardirq context. The prio has been diff --git a/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch similarity index 95% rename from debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch rename to debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch index 3f45d3fb0..bb59a6bb3 100644 --- a/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch +++ b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch @@ -1,9 +1,9 @@ -From aa3841d4115d3530ea77a590bbd13940881f5d37 Mon Sep 17 00:00:00 2001 +From 4d3cb3bcde462ea3b82c902bf79c233e68f7d29a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 18 Feb 2019 13:19:59 +0100 -Subject: [PATCH 126/328] softirq: Avoid "local_softirq_pending" messages if +Subject: [PATCH 125/325] softirq: Avoid "local_softirq_pending" messages if ksoftirqd is blocked -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 If the ksoftirqd thread has a softirq pending and is blocked on the `local_softirq_locks' lock then softirq_check_pending_idle() won't diff --git a/debian/patches-rt/0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch similarity index 90% rename from debian/patches-rt/0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch rename to debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch index 598cb3a84..7f707677d 100644 --- a/debian/patches-rt/0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch +++ b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch @@ -1,9 +1,9 @@ -From cbcc7f169a523a3b55877cb01d10cd2e96654d3a Mon Sep 17 00:00:00 2001 +From 7bf55b1409bf1fdbfd5c017c1fd64129b2f24210 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Feb 2019 16:49:29 +0100 -Subject: [PATCH 127/328] softirq: Avoid "local_softirq_pending" messages if +Subject: [PATCH 126/325] softirq: Avoid "local_softirq_pending" messages if task is in cpu_chill() -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 If the softirq thread enters cpu_chill() then ->state is UNINTERRUPTIBLE and has no ->pi_blocked_on set and so its mask is not taken into account. diff --git a/debian/patches-rt/0128-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch similarity index 86% rename from debian/patches-rt/0128-rtmutex-trylock-is-okay-on-RT.patch rename to debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch index 66c5fef82..71dda12b5 100644 --- a/debian/patches-rt/0128-rtmutex-trylock-is-okay-on-RT.patch +++ b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch @@ -1,8 +1,8 @@ -From 0666dfeb48e54032c73ac843af0c02be5353c0dc Mon Sep 17 00:00:00 2001 +From e3c2fa3a8755063343e3ce1072db61a9044dda46 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 2 Dec 2015 11:34:07 +0100 -Subject: [PATCH 128/328] rtmutex: trylock is okay on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 127/325] rtmutex: trylock is okay on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz non-RT kernel could deadlock on rt_mutex_trylock() in softirq context. On -RT we don't run softirqs in IRQ context but in thread context so it is diff --git a/debian/patches-rt/0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch similarity index 96% rename from debian/patches-rt/0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch rename to debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch index b8f7a73c5..53ec82e7f 100644 --- a/debian/patches-rt/0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +++ b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -1,8 +1,8 @@ -From 8b0d3978951a7ad39608fdcbfd291e6ba717f86a Mon Sep 17 00:00:00 2001 +From a519c1de9cb8fa6407865a391460b71b3d9f7ba5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 15 Sep 2016 10:51:27 +0200 -Subject: [PATCH 129/328] fs/nfs: turn rmdir_sem into a semaphore -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 128/325] fs/nfs: turn rmdir_sem into a semaphore +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The RW semaphore had a reader side which used the _non_owner version because it most likely took the reader lock in one thread and released it diff --git a/debian/patches-rt/0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch similarity index 93% rename from debian/patches-rt/0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch rename to debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch index 43e92fb69..31694932b 100644 --- a/debian/patches-rt/0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch +++ b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch @@ -1,8 +1,8 @@ -From 1ed0026aa6e48c934e7c081a04d36fe44b9b7fa1 Mon Sep 17 00:00:00 2001 +From 1fa5c17a8433d8aa590a042209a3f2211ec87663 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 10 Jun 2011 11:04:15 +0200 -Subject: [PATCH 130/328] rtmutex: Handle the various new futex race conditions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 129/325] rtmutex: Handle the various new futex race conditions +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and @@ -16,10 +16,10 @@ Signed-off-by: Thomas Gleixner 3 files changed, 94 insertions(+), 21 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index 23e1f8a478e8..5ec49f862c53 100644 +index a8081f82579e..c922e994f524 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -2149,6 +2149,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2166,6 +2166,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, requeue_pi_wake_futex(this, &key2, hb2); drop_count++; continue; @@ -36,7 +36,7 @@ index 23e1f8a478e8..5ec49f862c53 100644 } else if (ret) { /* * rt_mutex_start_proxy_lock() detected a -@@ -3227,7 +3237,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3244,7 +3254,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, struct hrtimer_sleeper timeout, *to = NULL; struct futex_pi_state *pi_state = NULL; struct rt_mutex_waiter rt_waiter; @@ -45,7 +45,7 @@ index 23e1f8a478e8..5ec49f862c53 100644 union futex_key key2 = FUTEX_KEY_INIT; struct futex_q q = futex_q_init; int res, ret; -@@ -3285,20 +3295,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3302,20 +3312,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, /* Queue the futex_q, drop the hb lock, wait for wakeup. */ futex_wait_queue_me(hb, &q, to); @@ -112,7 +112,7 @@ index 23e1f8a478e8..5ec49f862c53 100644 /* Check if the requeue code acquired the second futex for us. */ if (!q.rt_waiter) { -@@ -3307,7 +3352,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3324,7 +3369,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * did a lock-steal - fix up the PI-state in that case. */ if (q.pi_state && (q.pi_state->owner != current)) { @@ -122,7 +122,7 @@ index 23e1f8a478e8..5ec49f862c53 100644 ret = fixup_pi_state_owner(uaddr2, &q, current); if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) { pi_state = q.pi_state; -@@ -3318,7 +3364,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3335,7 +3381,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * the requeue_pi() code acquired for us. */ put_pi_state(q.pi_state); @@ -131,7 +131,7 @@ index 23e1f8a478e8..5ec49f862c53 100644 } } else { struct rt_mutex *pi_mutex; -@@ -3332,7 +3378,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3349,7 +3395,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, pi_mutex = &q.pi_state->pi_mutex; ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter); diff --git a/debian/patches-rt/0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch similarity index 96% rename from debian/patches-rt/0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch rename to debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch index 0aece436e..954fef61f 100644 --- a/debian/patches-rt/0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +++ b/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch @@ -1,8 +1,8 @@ -From 73f0f3253d80c3fc291c3198becd7054215494e3 Mon Sep 17 00:00:00 2001 +From 4210e8e1f78fc819dfe27d2918ff33b0f5f6d0df Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 131/328] futex: Fix bug on when a requeued RT task times out -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 130/325] futex: Fix bug on when a requeued RT task times out +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Requeue with timeout causes a bug with PREEMPT_RT_FULL. diff --git a/debian/patches-rt/0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch similarity index 84% rename from debian/patches-rt/0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch rename to debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch index 6ec29a3bf..435c535c6 100644 --- a/debian/patches-rt/0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch +++ b/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch @@ -1,9 +1,9 @@ -From d85ad9d88f2afd388a77f8652da86554c45e9bc2 Mon Sep 17 00:00:00 2001 +From ceb4c8f4c8a3887cc786895ea767fa9ad43b2959 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 1 Mar 2013 11:17:42 +0100 -Subject: [PATCH 132/328] futex: Ensure lock/unlock symetry versus pi_lock and +Subject: [PATCH 131/325] futex: Ensure lock/unlock symetry versus pi_lock and hash bucket 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 In exit_pi_state_list() we have the following locking construct: @@ -32,10 +32,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+) diff --git a/kernel/futex.c b/kernel/futex.c -index 5ec49f862c53..60be4530c767 100644 +index c922e994f524..cde7ff6f9a48 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -921,7 +921,9 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -938,7 +938,9 @@ void exit_pi_state_list(struct task_struct *curr) if (head->next != next) { /* retain curr->pi_lock for the loop invariant */ raw_spin_unlock(&pi_state->pi_mutex.wait_lock); diff --git a/debian/patches-rt/0133-pid.h-include-atomic.h.patch b/debian/patches-rt/0132-pid.h-include-atomic.h.patch similarity index 88% rename from debian/patches-rt/0133-pid.h-include-atomic.h.patch rename to debian/patches-rt/0132-pid.h-include-atomic.h.patch index 19b0f44e9..9aa83f776 100644 --- a/debian/patches-rt/0133-pid.h-include-atomic.h.patch +++ b/debian/patches-rt/0132-pid.h-include-atomic.h.patch @@ -1,8 +1,8 @@ -From 7706f24354f883b341ed0ed1535167264b7e2315 Mon Sep 17 00:00:00 2001 +From a3a3d3d03bfe53c007e888ee891dbd703972d1ea Mon Sep 17 00:00:00 2001 From: Grygorii Strashko Date: Tue, 21 Jul 2015 19:43:56 +0300 -Subject: [PATCH 133/328] pid.h: include atomic.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 132/325] pid.h: include atomic.h +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz This patch fixes build error: CC kernel/pid_namespace.o diff --git a/debian/patches-rt/0134-arm-include-definition-for-cpumask_t.patch b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch similarity index 82% rename from debian/patches-rt/0134-arm-include-definition-for-cpumask_t.patch rename to debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch index 87084eeec..f7beaa323 100644 --- a/debian/patches-rt/0134-arm-include-definition-for-cpumask_t.patch +++ b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch @@ -1,8 +1,8 @@ -From b7f97d2d6bca4bbc87c6aaaac3847a6bb96d8221 Mon Sep 17 00:00:00 2001 +From 1fc05f4412c1b09b10d06886933ba1ccd0e18f33 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Dec 2016 17:28:33 +0100 -Subject: [PATCH 134/328] arm: include definition for cpumask_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 133/325] arm: include definition for cpumask_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz This definition gets pulled in by other files. With the (later) split of RCU and spinlock.h it won't compile anymore. diff --git a/debian/patches-rt/0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch similarity index 86% rename from debian/patches-rt/0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch rename to debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch index 3805e19ab..51249dc65 100644 --- a/debian/patches-rt/0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +++ b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch @@ -1,9 +1,9 @@ -From df43e09336267ae6fd3e9e0f754a1c13bc90dabc Mon Sep 17 00:00:00 2001 +From 1814e9a2c2092f55d4e2fa99192af5eff0c364f3 Mon Sep 17 00:00:00 2001 From: "Wolfgang M. Reimer" Date: Tue, 21 Jul 2015 16:20:07 +0200 -Subject: [PATCH 135/328] locking: locktorture: Do NOT include rwlock.h +Subject: [PATCH 134/325] locking: locktorture: Do NOT include rwlock.h directly -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 Including rwlock.h directly will cause kernel builds to fail if CONFIG_PREEMPT_RT_FULL is defined. The correct header file diff --git a/debian/patches-rt/0136-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch similarity index 91% rename from debian/patches-rt/0136-rtmutex-Add-rtmutex_lock_killable.patch rename to debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch index e467790f4..0b0a60986 100644 --- a/debian/patches-rt/0136-rtmutex-Add-rtmutex_lock_killable.patch +++ b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch @@ -1,8 +1,8 @@ -From 8d29fec3b1d6060351dadfed4d8e4555ee42ada2 Mon Sep 17 00:00:00 2001 +From 468920c7b2db6dba23677a7f6ab507a27cb16d5d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 9 Jun 2011 11:43:52 +0200 -Subject: [PATCH 136/328] rtmutex: Add rtmutex_lock_killable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 135/325] rtmutex: Add rtmutex_lock_killable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Add "killable" type to rtmutex. We need this since rtmutex are used as "normal" mutexes which do use this type. diff --git a/debian/patches-rt/0137-rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch similarity index 89% rename from debian/patches-rt/0137-rtmutex-Make-lock_killable-work.patch rename to debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch index c2edbba03..fc97f0d47 100644 --- a/debian/patches-rt/0137-rtmutex-Make-lock_killable-work.patch +++ b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch @@ -1,8 +1,8 @@ -From 3543c69b949257b8409b0ebb45b2e369afcbeb9b Mon Sep 17 00:00:00 2001 +From a83438da0a4366a5f9d3930dec26bd77c5f60a63 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 1 Apr 2017 12:50:59 +0200 -Subject: [PATCH 137/328] rtmutex: Make lock_killable work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 136/325] rtmutex: Make lock_killable work +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. diff --git a/debian/patches-rt/0138-spinlock-Split-the-lock-types-header.patch b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch similarity index 97% rename from debian/patches-rt/0138-spinlock-Split-the-lock-types-header.patch rename to debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch index 5a53d54fe..df15f1b28 100644 --- a/debian/patches-rt/0138-spinlock-Split-the-lock-types-header.patch +++ b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch @@ -1,8 +1,8 @@ -From 144cea745b056040b555dc8819e31a8ae76714c2 Mon Sep 17 00:00:00 2001 +From dba0ea2e3bd9761d43099e882fe6e51aa1c77bea Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 19:34:01 +0200 -Subject: [PATCH 138/328] spinlock: Split the lock types header -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 137/325] spinlock: Split the lock types header +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Split raw_spinlock into its own file and the remaining spinlock_t into its own non-RT header. The non-RT header will be replaced later by sleeping diff --git a/debian/patches-rt/0139-rtmutex-Avoid-include-hell.patch b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch similarity index 83% rename from debian/patches-rt/0139-rtmutex-Avoid-include-hell.patch rename to debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch index ee6fefd10..2063d2b08 100644 --- a/debian/patches-rt/0139-rtmutex-Avoid-include-hell.patch +++ b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch @@ -1,8 +1,8 @@ -From 20ec86befc19cae2065e4b8e3dcda396081489eb Mon Sep 17 00:00:00 2001 +From 01781dadb365c4590a6709c8a180b04813ae6e66 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 20:06:39 +0200 -Subject: [PATCH 139/328] rtmutex: Avoid include hell -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 138/325] rtmutex: Avoid include hell +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Include only the required raw types. This avoids pulling in the complete spinlock header which in turn requires rtmutex.h at some point. diff --git a/debian/patches-rt/0140-rbtree-don-t-include-the-rcu-header.patch b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch similarity index 97% rename from debian/patches-rt/0140-rbtree-don-t-include-the-rcu-header.patch rename to debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch index 12dd7921a..4e6df93ef 100644 --- a/debian/patches-rt/0140-rbtree-don-t-include-the-rcu-header.patch +++ b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch @@ -1,11 +1,11 @@ -From 0c9090c07884c6d1e32a8def9f3c7fa5e889f4e3 Mon Sep 17 00:00:00 2001 +From e537e5c666a1da306d036aa5fa1a695c4aaf4163 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Feb 2019 16:56:02 +0100 -Subject: [PATCH 140/328] rbtree: don't include the rcu header +Subject: [PATCH 139/325] rbtree: don't include the rcu header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 RCU header pulls in spinlock.h and fails due not yet defined types: diff --git a/debian/patches-rt/0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch similarity index 96% rename from debian/patches-rt/0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch rename to debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch index f3a9037cd..022cc3c51 100644 --- a/debian/patches-rt/0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch +++ b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch @@ -1,8 +1,8 @@ -From 3340a41255c128e25956abc1370f0e5d1b702dda Mon Sep 17 00:00:00 2001 +From 7cb0379b9e963273f1404397480f4b3ba4794553 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:14:22 +0200 -Subject: [PATCH 141/328] rtmutex: Provide rt_mutex_slowlock_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 140/325] rtmutex: Provide rt_mutex_slowlock_locked() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. diff --git a/debian/patches-rt/0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch b/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch similarity index 96% rename from debian/patches-rt/0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch rename to debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch index 2f359f425..5fb7115e5 100644 --- a/debian/patches-rt/0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch +++ b/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch @@ -1,9 +1,9 @@ -From e6cb2f5352cc7339044142820ecdc55d45f97ce5 Mon Sep 17 00:00:00 2001 +From 581291e66f417f36ea5d69a433e05c457857868d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:36:39 +0200 -Subject: [PATCH 142/328] rtmutex: export lockdep-less version of rt_mutex's +Subject: [PATCH 141/325] rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock -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 Required for lock implementation ontop of rtmutex. diff --git a/debian/patches-rt/0143-rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch similarity index 98% rename from debian/patches-rt/0143-rtmutex-add-sleeping-lock-implementation.patch rename to debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch index f19fb23b0..f272c82b9 100644 --- a/debian/patches-rt/0143-rtmutex-add-sleeping-lock-implementation.patch +++ b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch @@ -1,8 +1,8 @@ -From 4972c101326c6e36a9f541deeab9b56e3bef9932 Mon Sep 17 00:00:00 2001 +From 87fd28b5599c18dcef1e63eeb30a5a3bbfcc3ba4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:11:19 +0200 -Subject: [PATCH 143/328] rtmutex: add sleeping lock implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 142/325] rtmutex: add sleeping lock implementation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior @@ -408,10 +408,10 @@ index 29b54a64daf5..ecec0f8bef7e 100644 account_kernel_stack(tsk, 1); diff --git a/kernel/futex.c b/kernel/futex.c -index 60be4530c767..4c448dddce3c 100644 +index cde7ff6f9a48..084527af43d4 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -1479,6 +1479,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ +@@ -1496,6 +1496,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ struct task_struct *new_owner; bool postunlock = false; DEFINE_WAKE_Q(wake_q); @@ -419,7 +419,7 @@ index 60be4530c767..4c448dddce3c 100644 int ret = 0; new_owner = rt_mutex_next_owner(&pi_state->pi_mutex); -@@ -1538,13 +1539,13 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ +@@ -1555,13 +1556,13 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ pi_state->owner = new_owner; raw_spin_unlock(&new_owner->pi_lock); @@ -436,7 +436,7 @@ index 60be4530c767..4c448dddce3c 100644 return ret; } -@@ -2873,7 +2874,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2890,7 +2891,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, goto no_block; } @@ -445,7 +445,7 @@ index 60be4530c767..4c448dddce3c 100644 /* * On PREEMPT_RT_FULL, when hb->lock becomes an rt_mutex, we must not -@@ -3266,7 +3267,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3283,7 +3284,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * The waiter is allocated on our stack, manipulated by the requeue * code while we sleep on uaddr. */ diff --git a/debian/patches-rt/0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch similarity index 98% rename from debian/patches-rt/0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch rename to debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch index 045cdb7ed..693bf5ce8 100644 --- a/debian/patches-rt/0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch @@ -1,8 +1,8 @@ -From ac391538d1f4dff13baf839ada70bb001c1462dd Mon Sep 17 00:00:00 2001 +From 15d28021a92b5a0f1230c2233ae8d4736bef3094 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:17:03 +0200 -Subject: [PATCH 144/328] rtmutex: add mutex implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 143/325] rtmutex: add mutex implementation based on rtmutex +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior diff --git a/debian/patches-rt/0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch similarity index 98% rename from debian/patches-rt/0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch rename to debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch index 23ad67482..5dfc2860d 100644 --- a/debian/patches-rt/0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch @@ -1,8 +1,8 @@ -From b0c41a7abe90071ea550299c767852ba0d55a41f Mon Sep 17 00:00:00 2001 +From fba892eef51771a402f94769548168cd62460a3a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:28:34 +0200 -Subject: [PATCH 145/328] rtmutex: add rwsem implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 144/325] rtmutex: add rwsem implementation based on rtmutex +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The RT specific R/W semaphore implementation restricts the number of readers to one because a writer cannot block on multiple readers and inherit its diff --git a/debian/patches-rt/0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch similarity index 98% rename from debian/patches-rt/0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch rename to debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch index c2f19e7aa..f045d655f 100644 --- a/debian/patches-rt/0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch @@ -1,8 +1,8 @@ -From c4d9a03dadd2e41e7670cbd53f91f7c08e3a3ce6 Mon Sep 17 00:00:00 2001 +From 16054939724213811099f9fdf7071e4cfeb21265 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:18:06 +0200 -Subject: [PATCH 146/328] rtmutex: add rwlock implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 145/325] rtmutex: add rwlock implementation based on rtmutex +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The implementation is bias-based, similar to the rwsem implementation. diff --git a/debian/patches-rt/0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch similarity index 87% rename from debian/patches-rt/0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch rename to debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch index faad41a76..a477c48ae 100644 --- a/debian/patches-rt/0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch +++ b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch @@ -1,8 +1,8 @@ -From 997abbcc33dcad79e5670265b72051ddc3cfdce7 Mon Sep 17 00:00:00 2001 +From 227ec3934454027312da6d09e4d5a72ee1109cad Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Jan 2019 21:16:31 +0100 -Subject: [PATCH 147/328] rtmutex/rwlock: preserve state like a sleeping lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 146/325] rtmutex/rwlock: preserve state like a sleeping lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The rwlock is spinning while acquiring a lock. Therefore it must become a sleeping lock on RT and preserve its task state while sleeping and diff --git a/debian/patches-rt/0148-rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch similarity index 98% rename from debian/patches-rt/0148-rtmutex-wire-up-RT-s-locking.patch rename to debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch index 54b558f77..b3240c216 100644 --- a/debian/patches-rt/0148-rtmutex-wire-up-RT-s-locking.patch +++ b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch @@ -1,8 +1,8 @@ -From c55bc0df82ccf91b888e73d888a1afb8c8cbc581 Mon Sep 17 00:00:00 2001 +From 8c26ff848a29c8a09f12c1ce57133461f07ec3da Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:31:14 +0200 -Subject: [PATCH 148/328] rtmutex: wire up RT's locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 147/325] rtmutex: wire up RT's locking +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior diff --git a/debian/patches-rt/0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch similarity index 98% rename from debian/patches-rt/0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch rename to debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch index 768a63257..d713b6228 100644 --- a/debian/patches-rt/0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +++ b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch @@ -1,8 +1,8 @@ -From 01d5bbd35ae2a2b3350c42e526b0199fb3836e48 Mon Sep 17 00:00:00 2001 +From d6a9cbc956c42c07d71a11067efef3e29237f1e1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 17:34:38 +0200 -Subject: [PATCH 149/328] rtmutex: add ww_mutex addon for mutex-rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 148/325] rtmutex: add ww_mutex addon for mutex-rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Sebastian Andrzej Siewior --- diff --git a/debian/patches-rt/0150-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch similarity index 92% rename from debian/patches-rt/0150-kconfig-Add-PREEMPT_RT_FULL.patch rename to debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch index 851c68dbb..fdaef1334 100644 --- a/debian/patches-rt/0150-kconfig-Add-PREEMPT_RT_FULL.patch +++ b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch @@ -1,8 +1,8 @@ -From c924e85c609186a184aecf090ef2251090f84d6b Mon Sep 17 00:00:00 2001 +From 67573be98569ffc12244d2fa84decc676df9728a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 14:58:57 +0200 -Subject: [PATCH 150/328] kconfig: Add PREEMPT_RT_FULL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 149/325] kconfig: Add PREEMPT_RT_FULL +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Introduce the final symbol for PREEMPT_RT_FULL. diff --git a/debian/patches-rt/0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch similarity index 94% rename from debian/patches-rt/0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch rename to debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch index 8e24e72f7..7b26e8e44 100644 --- a/debian/patches-rt/0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch +++ b/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch @@ -1,9 +1,9 @@ -From a0a7e75d70aae3240d9a6514b4fcfa1d7e1c9c1b Mon Sep 17 00:00:00 2001 +From 87d8613d1063e08541e25fc170d79d1a675580b8 Mon Sep 17 00:00:00 2001 From: Mikulas Patocka Date: Mon, 13 Nov 2017 12:56:53 -0500 -Subject: [PATCH 151/328] locking/rt-mutex: fix deadlock in device mapper / +Subject: [PATCH 150/325] locking/rt-mutex: fix deadlock in device mapper / block-IO -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 some block device driver creates a bio and submits it to another block device driver, the bio is added to current->bio_list (in order to diff --git a/debian/patches-rt/0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch b/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch similarity index 89% rename from debian/patches-rt/0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch rename to debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch index 03f9f249c..81a346256 100644 --- a/debian/patches-rt/0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch +++ b/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch @@ -1,8 +1,8 @@ -From ea61ac000de8f214ddfdf1ac240ea9776c84c5db Mon Sep 17 00:00:00 2001 +From 0ff5fd365065d431385afd38184b9555c870ce3b Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Fri, 4 Jan 2019 15:33:21 -0500 -Subject: [PATCH 152/328] locking/rt-mutex: Flush block plug on __down_read() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 151/325] locking/rt-mutex: Flush block plug on __down_read() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz __down_read() bypasses the rtmutex frontend to call rt_mutex_slowlock_locked() directly, and thus it needs to call diff --git a/debian/patches-rt/0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch b/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch similarity index 88% rename from debian/patches-rt/0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch rename to debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch index 238a33b7d..9d2de957a 100644 --- a/debian/patches-rt/0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch +++ b/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch @@ -1,9 +1,9 @@ -From a6f0c5a56834d5fe16591a7fe6e5586f35ca6a00 Mon Sep 17 00:00:00 2001 +From ae27c05c699a2836bb476966ecbea706b7f36ea1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 16 Nov 2017 16:48:48 +0100 -Subject: [PATCH 153/328] locking/rtmutex: re-init the wait_lock in +Subject: [PATCH 152/325] locking/rtmutex: re-init the wait_lock in rt_mutex_init_proxy_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 We could provide a key-class for the lockdep (and fixup all callers) or move the init to all callers (like it was) in order to avoid lockdep diff --git a/debian/patches-rt/0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch similarity index 97% rename from debian/patches-rt/0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch rename to debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch index cd811a2d3..8a4d7b67d 100644 --- a/debian/patches-rt/0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +++ b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -1,8 +1,8 @@ -From e5ddc20b573d59f3760489cedf7080c8634ae241 Mon Sep 17 00:00:00 2001 +From 57eb5afab9ba00a923ba2db4e350e9f5a8c64140 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Aug 2013 18:21:04 +0200 -Subject: [PATCH 154/328] ptrace: fix ptrace vs tasklist_lock race -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 153/325] ptrace: fix ptrace vs tasklist_lock race +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz As explained by Alexander Fyodorov : diff --git a/debian/patches-rt/0155-rtmutex-annotate-sleeping-lock-context.patch b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch similarity index 98% rename from debian/patches-rt/0155-rtmutex-annotate-sleeping-lock-context.patch rename to debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch index f7107852d..a429a37f4 100644 --- a/debian/patches-rt/0155-rtmutex-annotate-sleeping-lock-context.patch +++ b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch @@ -1,8 +1,8 @@ -From f030909005b15efe1f934a507d10971242608d81 Mon Sep 17 00:00:00 2001 +From ead5e97d57b7b8fc9db9448d08de66e482329271 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2017 14:25:13 +0200 -Subject: [PATCH 155/328] rtmutex: annotate sleeping lock context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 154/325] rtmutex: annotate sleeping lock context +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The RCU code complains on schedule() within a rcu_readlock() section. The valid scenario on -RT is if a sleeping is held. In order to suppress diff --git a/debian/patches-rt/0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch similarity index 97% rename from debian/patches-rt/0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch rename to debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch index 34ba07bb5..bcca2e770 100644 --- a/debian/patches-rt/0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch +++ b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch @@ -1,9 +1,9 @@ -From 517e8491cd9ecd425b48019a9303e744ed3200b6 Mon Sep 17 00:00:00 2001 +From 3e776ffb2eb0413bfae8ab630436d01fc9850ab9 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 5 Jul 2018 14:44:51 +0200 -Subject: [PATCH 156/328] sched/migrate_disable: fallback to preempt_disable() +Subject: [PATCH 155/325] sched/migrate_disable: fallback to preempt_disable() instead barrier() -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 SMP + !RT migrate_disable() is still around. It is not part of spin_lock() anymore so it has almost no users. However the futex code has a workaround for diff --git a/debian/patches-rt/0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch similarity index 97% rename from debian/patches-rt/0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch rename to debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch index f194d9474..5fd0754d0 100644 --- a/debian/patches-rt/0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +++ b/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch @@ -1,9 +1,9 @@ -From f4b5fe79d518718706341e443c11b7c5fd0f7bd4 Mon Sep 17 00:00:00 2001 +From d11583485bae0e2a7be62d10429e905bcb85966c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 17:40:42 +0200 -Subject: [PATCH 157/328] locking: don't check for __LINUX_SPINLOCK_TYPES_H on +Subject: [PATCH 156/325] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs -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 uses arch_spinlock_t within spinlock_t and requests that spinlock_types.h header file is included first. diff --git a/debian/patches-rt/0158-rcu-Frob-softirq-test.patch b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch similarity index 98% rename from debian/patches-rt/0158-rcu-Frob-softirq-test.patch rename to debian/patches-rt/0157-rcu-Frob-softirq-test.patch index 036ab908e..dc711db60 100644 --- a/debian/patches-rt/0158-rcu-Frob-softirq-test.patch +++ b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch @@ -1,8 +1,8 @@ -From 2e1b076839800d30698ad2fdfad982acb9acaac9 Mon Sep 17 00:00:00 2001 +From eb9534a80ffa9abca0340289245a1bdc70bd51b4 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Sat, 13 Aug 2011 00:23:17 +0200 -Subject: [PATCH 158/328] rcu: Frob softirq test -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 157/325] rcu: Frob softirq test +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz With RT_FULL we get the below wreckage: diff --git a/debian/patches-rt/0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch similarity index 98% rename from debian/patches-rt/0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch rename to debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch index eaab41bfc..1d4a3a6c9 100644 --- a/debian/patches-rt/0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch +++ b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch @@ -1,8 +1,8 @@ -From 4e202b7ae394bcf87490c85f7edf3c528a9e93ed Mon Sep 17 00:00:00 2001 +From 7089cd551063f82f4d753d5ad0b89ce41b44168a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 5 Oct 2011 11:59:38 -0700 -Subject: [PATCH 159/328] rcu: Merge RCU-bh into RCU-preempt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 158/325] rcu: Merge RCU-bh into RCU-preempt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The Linux kernel has long RCU-bh read-side critical sections that intolerably increase scheduling latency under mainline's RCU-bh rules, diff --git a/debian/patches-rt/0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch similarity index 95% rename from debian/patches-rt/0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch rename to debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch index c5478f80a..249c44875 100644 --- a/debian/patches-rt/0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +++ b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch @@ -1,8 +1,8 @@ -From 2342184568653d14130d3ce56aec7fcf39e5bf5e Mon Sep 17 00:00:00 2001 +From 64023a5804af7927d9662f817f6949774889b17c Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Wed, 5 Oct 2011 11:45:18 -0700 -Subject: [PATCH 160/328] rcu: Make ksoftirqd do RCU quiescent states -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 159/325] rcu: Make ksoftirqd do RCU quiescent states +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable to network-based denial-of-service attacks. This patch therefore diff --git a/debian/patches-rt/0161-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch similarity index 98% rename from debian/patches-rt/0161-rcu-Eliminate-softirq-processing-from-rcutree.patch rename to debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch index 81b87ab94..823fbb296 100644 --- a/debian/patches-rt/0161-rcu-Eliminate-softirq-processing-from-rcutree.patch +++ b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch @@ -1,8 +1,8 @@ -From 7f9bb7afbe82ac923286da26040cd1aea23359aa Mon Sep 17 00:00:00 2001 +From b9089e43759b0d547ad1aefab567bf622e41b560 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Mon, 4 Nov 2013 13:21:10 -0800 -Subject: [PATCH 161/328] rcu: Eliminate softirq processing from rcutree -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 160/325] rcu: Eliminate softirq processing from rcutree +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Running RCU out of softirq is a problem for some workloads that would like to manage RCU core processing independently of other softirq work, diff --git a/debian/patches-rt/0162-srcu-use-cpu_online-instead-custom-check.patch b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch similarity index 94% rename from debian/patches-rt/0162-srcu-use-cpu_online-instead-custom-check.patch rename to debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch index 1a3fb53c1..4cdc50af0 100644 --- a/debian/patches-rt/0162-srcu-use-cpu_online-instead-custom-check.patch +++ b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch @@ -1,8 +1,8 @@ -From 720a2bda656758067e8cf4f33a33a4e3900133e0 Mon Sep 17 00:00:00 2001 +From 3202d22e4b6ad35fbe7b617efd78bf1a9a727c5a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Sep 2017 14:43:41 +0200 -Subject: [PATCH 162/328] srcu: use cpu_online() instead custom check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 161/325] srcu: use cpu_online() instead custom check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The current check via srcu_online is slightly racy because after looking at srcu_online there could be an interrupt that interrupted us long diff --git a/debian/patches-rt/0163-srcu-replace-local_irqsave-with-a-locallock.patch b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch similarity index 93% rename from debian/patches-rt/0163-srcu-replace-local_irqsave-with-a-locallock.patch rename to debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch index 112964e5d..5263532e5 100644 --- a/debian/patches-rt/0163-srcu-replace-local_irqsave-with-a-locallock.patch +++ b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch @@ -1,8 +1,8 @@ -From 35f458b1ba68a97ce57a87ae2cf6947b271abad2 Mon Sep 17 00:00:00 2001 +From 67e5a1751b9315d556d99ae3a44140d126f2609f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 18:37:12 +0200 -Subject: [PATCH 163/328] srcu: replace local_irqsave() with a locallock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 162/325] srcu: replace local_irqsave() with a locallock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz There are two instances which disable interrupts in order to become a stable this_cpu_ptr() pointer. The restore part is coupled with diff --git a/debian/patches-rt/0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch similarity index 88% rename from debian/patches-rt/0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch rename to debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch index cfbb2614a..66130d443 100644 --- a/debian/patches-rt/0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch +++ b/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch @@ -1,8 +1,8 @@ -From 266bcdc7bf5bb5736cd2b6896166438f40cf815a Mon Sep 17 00:00:00 2001 +From 724541a3012567e4851d44a94795c42ce9fbc8ab Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Wed, 12 Oct 2016 11:21:14 -0500 -Subject: [PATCH 164/328] rcu: enable rcu_normal_after_boot by default for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 163/325] rcu: enable rcu_normal_after_boot by default for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The forcing of an expedited grace period is an expensive and very RT-application unfriendly operation, as it forcibly preempts all running diff --git a/debian/patches-rt/0165-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch similarity index 89% rename from debian/patches-rt/0165-tty-serial-omap-Make-the-locking-RT-aware.patch rename to debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch index abb5c9f11..3375865af 100644 --- a/debian/patches-rt/0165-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,8 +1,8 @@ -From 3d60ca27280fe12e0b29927dad783e20bcc391df Mon Sep 17 00:00:00 2001 +From 903fb20864016a06c02befdf5331596064256d18 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 -Subject: [PATCH 165/328] tty/serial/omap: Make the locking RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 164/325] tty/serial/omap: Make the locking RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and diff --git a/debian/patches-rt/0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch similarity index 90% rename from debian/patches-rt/0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch rename to debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch index a9303e41d..8a2095fb0 100644 --- a/debian/patches-rt/0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch +++ b/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch @@ -1,8 +1,8 @@ -From 8122f816435704dfd2fdd2ca02b8399ee22d626c Mon Sep 17 00:00:00 2001 +From 201d2b147cff7ff5557a2b4a60d7b3f609c62b33 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Jan 2013 21:36:51 +0100 -Subject: [PATCH 166/328] tty/serial/pl011: Make the locking work on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 165/325] tty/serial/pl011: Make the locking work on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and non-RT. diff --git a/debian/patches-rt/0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch similarity index 90% rename from debian/patches-rt/0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch rename to debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch index cf8b0bcfa..a0054270a 100644 --- a/debian/patches-rt/0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch +++ b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch @@ -1,12 +1,12 @@ -From f5a9aefa5442ede43dbf4fa85d3673483e866d61 Mon Sep 17 00:00:00 2001 +From f6bc04fdefa31a35588c0b33de38fd26a8640e38 Mon Sep 17 00:00:00 2001 From: Kurt Kanzenbach Date: Mon, 24 Sep 2018 10:29:01 +0200 -Subject: [PATCH 167/328] tty: serial: pl011: explicitly initialize the flags +Subject: [PATCH 166/325] tty: serial: pl011: explicitly initialize the flags variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 Silence the following gcc warning: diff --git a/debian/patches-rt/0168-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch similarity index 86% rename from debian/patches-rt/0168-rt-Improve-the-serial-console-PASS_LIMIT.patch rename to debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch index a02f88055..920b4d561 100644 --- a/debian/patches-rt/0168-rt-Improve-the-serial-console-PASS_LIMIT.patch +++ b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch @@ -1,11 +1,11 @@ -From d8240c961e33c6da86bdbd96a67440a5d944c415 Mon Sep 17 00:00:00 2001 +From b0190da75ae735211f213cfb75ce6fae2ca7af9b Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 14 Dec 2011 13:05:54 +0100 -Subject: [PATCH 168/328] rt: Improve the serial console PASS_LIMIT +Subject: [PATCH 167/325] rt: Improve the serial console PASS_LIMIT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 Beyond the warning: @@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c -index 69aaee5d7fe1..cf88317a95fc 100644 +index b9567ef843fc..155ee2a54e25 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -54,7 +54,16 @@ static struct uart_driver serial8250_reg; diff --git a/debian/patches-rt/0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch similarity index 78% rename from debian/patches-rt/0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch rename to debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch index 8ba1b3651..a777773d6 100644 --- a/debian/patches-rt/0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch +++ b/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch @@ -1,8 +1,8 @@ -From 67a72f4debbad523744a56e90d284d809e830f82 Mon Sep 17 00:00:00 2001 +From 135e815b481b01484f140a639e2482570daa238d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Apr 2016 16:55:02 +0200 -Subject: [PATCH 169/328] tty: serial: 8250: don't take the trylock during oops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 168/325] tty: serial: 8250: don't take the trylock during oops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz An oops with irqs off (panic() from irqsafe hrtimer like the watchdog timer) will lead to a lockdep warning on each invocation and as such @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index aa4de6907f77..6b1d46c1df3b 100644 +index 5a04d4ddca73..79e509468161 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -3239,10 +3239,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3243,10 +3243,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, serial8250_rpm_get(up); diff --git a/debian/patches-rt/0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch similarity index 97% rename from debian/patches-rt/0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch rename to debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch index ea4c83f6b..a8d0fb741 100644 --- a/debian/patches-rt/0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch +++ b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch @@ -1,8 +1,8 @@ -From fb0e4a895ad79687d4a90cf901ac9ce349f6818c Mon Sep 17 00:00:00 2001 +From 9c36e91215b7ab35c244cc03986637031183c797 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 23 Nov 2016 16:29:32 +0100 -Subject: [PATCH 170/328] locking/percpu-rwsem: Remove preempt_disable variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 169/325] locking/percpu-rwsem: Remove preempt_disable variants +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Effective revert commit: diff --git a/debian/patches-rt/0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch b/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch similarity index 95% rename from debian/patches-rt/0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch rename to debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch index 6c9437850..1a9831158 100644 --- a/debian/patches-rt/0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch +++ b/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch @@ -1,9 +1,9 @@ -From 9be3653b65220de706317fe352f73449254b0884 Mon Sep 17 00:00:00 2001 +From 4c71d9e6382c1cf6d65629f46dc51039b5c5ca51 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Tue, 15 May 2012 13:53:56 +0800 -Subject: [PATCH 171/328] mm: Protect activate_mm() by +Subject: [PATCH 170/325] mm: Protect activate_mm() by preempt_[disable&enable]_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 User preempt_*_rt instead of local_irq_*_rt or otherwise there will be warning on ARM like below: diff --git a/debian/patches-rt/0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch similarity index 90% rename from debian/patches-rt/0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch rename to debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch index 370186084..c63e54678 100644 --- a/debian/patches-rt/0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch +++ b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch @@ -1,9 +1,9 @@ -From e78e0f017d742dada34166305b5b965bc26ddef0 Mon Sep 17 00:00:00 2001 +From 239c338e19c640a7bbbf54f0d65532dbdff1c655 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Sep 2017 12:32:34 +0200 -Subject: [PATCH 172/328] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD +Subject: [PATCH 171/325] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init -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 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However diff --git a/debian/patches-rt/0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch similarity index 89% rename from debian/patches-rt/0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch rename to debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch index e104b82fc..a564da4b5 100644 --- a/debian/patches-rt/0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +++ b/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch @@ -1,9 +1,9 @@ -From 01e7eacd56ecebd6290b2fa1bf421cf2669b3916 Mon Sep 17 00:00:00 2001 +From 955db274e65b67831555ae3be55e08c31a431803 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 20 Oct 2017 11:29:53 +0200 -Subject: [PATCH 173/328] fs/dcache: disable preemption on i_dir_seq's write +Subject: [PATCH 172/325] fs/dcache: disable preemption on i_dir_seq's write side -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 i_dir_seq is an opencoded seqcounter. Based on the code it looks like we could have two writers in parallel despite the fact that the d_lock is @@ -69,10 +69,10 @@ index 10225a9135fb..dcde8ffe384c 100644 rcu_read_unlock(); goto retry; diff --git a/fs/inode.c b/fs/inode.c -index 9c50521c9fe4..40114e8b6c7b 100644 +index c9eb5041ffae..e1fb0b743c96 100644 --- a/fs/inode.c +++ b/fs/inode.c -@@ -155,7 +155,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode) +@@ -156,7 +156,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode) inode->i_bdev = NULL; inode->i_cdev = NULL; inode->i_link = NULL; @@ -82,10 +82,10 @@ index 9c50521c9fe4..40114e8b6c7b 100644 inode->dirtied_when = 0; diff --git a/include/linux/fs.h b/include/linux/fs.h -index 92420009b9bc..9b2b707e9112 100644 +index 15b8e02880c3..d27634022105 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -678,7 +678,7 @@ struct inode { +@@ -679,7 +679,7 @@ struct inode { struct block_device *i_bdev; struct cdev *i_cdev; char *i_link; diff --git a/debian/patches-rt/0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch b/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch similarity index 93% rename from debian/patches-rt/0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch rename to debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch index 8d17a464b..9da5657e2 100644 --- a/debian/patches-rt/0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch +++ b/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch @@ -1,9 +1,9 @@ -From 78a2f867f7f382fe3a1c20d4be00588e54d47242 Mon Sep 17 00:00:00 2001 +From faaeaed6663b746f33b73dce36402da1043f70e6 Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Mon, 7 May 2018 08:58:57 -0500 -Subject: [PATCH 174/328] squashfs: make use of local lock in multi_cpu +Subject: [PATCH 173/325] squashfs: make use of local lock in multi_cpu decompressor -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 squashfs multi_cpu decompressor makes use of get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption diff --git a/debian/patches-rt/0175-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch similarity index 95% rename from debian/patches-rt/0175-thermal-Defer-thermal-wakups-to-threads.patch rename to debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch index 1c049b05e..2be0e8612 100644 --- a/debian/patches-rt/0175-thermal-Defer-thermal-wakups-to-threads.patch +++ b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch @@ -1,8 +1,8 @@ -From 472de6450cf587e0ada3ba8fb8e2944c605981aa Mon Sep 17 00:00:00 2001 +From 6ec6280a8291a12175fe85469e7cd591b3b6aba3 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 17 Feb 2015 09:37:44 +0100 -Subject: [PATCH 175/328] thermal: Defer thermal wakups to threads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 174/325] thermal: Defer thermal wakups to threads +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will call schedule while we run in irq context. diff --git a/debian/patches-rt/0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch similarity index 87% rename from debian/patches-rt/0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch rename to debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch index c7b5b6cf8..90910fba2 100644 --- a/debian/patches-rt/0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch +++ b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch @@ -1,8 +1,8 @@ -From 50d08167a197542caf75d7b8885fc7b4cf32f3e5 Mon Sep 17 00:00:00 2001 +From 51bb97b3e2faccf5e5237a0e4df2b31b2d965a37 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 11 Dec 2018 15:10:33 +0100 -Subject: [PATCH 176/328] x86/fpu: Disable preemption around local_bh_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 175/325] x86/fpu: Disable preemption around local_bh_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz __fpu__restore_sig() restores the content of the FPU state in the CPUs and in order to avoid concurency it disbles BH. On !RT it also disables diff --git a/debian/patches-rt/0177-fs-epoll-Do-not-disable-preemption-on-RT.patch b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch similarity index 85% rename from debian/patches-rt/0177-fs-epoll-Do-not-disable-preemption-on-RT.patch rename to debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch index 95be8eb45..c4f356b61 100644 --- a/debian/patches-rt/0177-fs-epoll-Do-not-disable-preemption-on-RT.patch +++ b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch @@ -1,8 +1,8 @@ -From 55f9cf79b55c65f9e7858b99be1e12635c64a990 Mon Sep 17 00:00:00 2001 +From b5ef225587d776634052edf167298ad29b091b67 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 16:35:35 +0200 -Subject: [PATCH 177/328] fs/epoll: Do not disable preemption on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 176/325] fs/epoll: Do not disable preemption on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz ep_call_nested() takes a sleeping lock so we can't disable preemption. The light version is enough since ep_call_nested() doesn't mind beeing diff --git a/debian/patches-rt/0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch similarity index 90% rename from debian/patches-rt/0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch rename to debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch index 0950c0915..a964a53c4 100644 --- a/debian/patches-rt/0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +++ b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch @@ -1,9 +1,9 @@ -From 32e65f9533004d40e52f6a101ac651c16392f178 Mon Sep 17 00:00:00 2001 +From a36f97c1ca6e441ddb3d47465c137d01138549ed Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 11:39:36 +0200 -Subject: [PATCH 178/328] mm/vmalloc: Another preempt disable region which +Subject: [PATCH 177/325] mm/vmalloc: Another preempt disable region which sucks -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 preempt disable version of get_cpu_var(). The inner-lock should provide enough serialisation. @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c -index d8e877365f9f..9b7cf993cada 100644 +index 958d6ba9ee2d..ff471d6c350d 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -852,7 +852,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) diff --git a/debian/patches-rt/0179-block-mq-use-cpu_light.patch b/debian/patches-rt/0178-block-mq-use-cpu_light.patch similarity index 86% rename from debian/patches-rt/0179-block-mq-use-cpu_light.patch rename to debian/patches-rt/0178-block-mq-use-cpu_light.patch index 2c0626970..598699935 100644 --- a/debian/patches-rt/0179-block-mq-use-cpu_light.patch +++ b/debian/patches-rt/0178-block-mq-use-cpu_light.patch @@ -1,8 +1,8 @@ -From 736284010de7d42e40ecf1250dfb1f45e5a94d4e Mon Sep 17 00:00:00 2001 +From 48d0958dd08195a8ff4e6b24f5a6107b8664f8b9 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 9 Apr 2014 10:37:23 +0200 -Subject: [PATCH 179/328] block: mq: use cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 178/325] block: mq: use cpu_light() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz there is a might sleep splat because get_cpu() disables preemption and later we grab a lock. As a workaround for this we use get_cpu_light(). diff --git a/debian/patches-rt/0180-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch similarity index 90% rename from debian/patches-rt/0180-block-mq-do-not-invoke-preempt_disable.patch rename to debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch index 127383037..ce2ae4930 100644 --- a/debian/patches-rt/0180-block-mq-do-not-invoke-preempt_disable.patch +++ b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch @@ -1,8 +1,8 @@ -From 76fb1c9c1652d4dec489aa1611a9071f1b42b5b0 Mon Sep 17 00:00:00 2001 +From 47b9729b86adf61e40b4576d3533ae11a283af2f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 180/328] block/mq: do not invoke preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 179/325] block/mq: do not invoke preempt_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz preempt_disable() and get_cpu() don't play well together with the sleeping locks it tries to allocate later. diff --git a/debian/patches-rt/0181-block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch similarity index 95% rename from debian/patches-rt/0181-block-mq-don-t-complete-requests-via-IPI.patch rename to debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch index 61cfcbb47..f87759aee 100644 --- a/debian/patches-rt/0181-block-mq-don-t-complete-requests-via-IPI.patch +++ b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch @@ -1,8 +1,8 @@ -From eb88fbf4264f3c4776aeeec310568e4bc79ced80 Mon Sep 17 00:00:00 2001 +From 7a66ae4854f27f371c06de734ea7541a9e9ec3b6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Jan 2015 15:10:08 +0100 -Subject: [PATCH 181/328] block/mq: don't complete requests via IPI -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 180/325] block/mq: don't complete requests via IPI +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The IPI runs in hardirq context and there are sleeping locks. This patch moves the completion into a workqueue. diff --git a/debian/patches-rt/0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch similarity index 93% rename from debian/patches-rt/0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch rename to debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch index b276faf40..46eb5bee7 100644 --- a/debian/patches-rt/0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +++ b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch @@ -1,8 +1,8 @@ -From 283bc898b7a8aeb35a5022147d72342a7b77170c Mon Sep 17 00:00:00 2001 +From f157b0b46278489f11209a4147370fc584b2b99d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 6 Apr 2010 16:51:31 +0200 -Subject: [PATCH 182/328] md: raid5: Make raid5_percpu handling RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 181/325] md: raid5: Make raid5_percpu handling RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic diff --git a/debian/patches-rt/0183-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch similarity index 96% rename from debian/patches-rt/0183-rt-Introduce-cpu_chill.patch rename to debian/patches-rt/0182-rt-Introduce-cpu_chill.patch index 5e6a3438c..2060df417 100644 --- a/debian/patches-rt/0183-rt-Introduce-cpu_chill.patch +++ b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch @@ -1,8 +1,8 @@ -From e495449b207a0278e1ea08626dbea152b9cfa1ca Mon Sep 17 00:00:00 2001 +From 733fd0de9c18647a56f62e4b18288a7025cc476a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 20:51:03 +0100 -Subject: [PATCH 183/328] rt: Introduce cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 182/325] rt: Introduce cpu_chill() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill() diff --git a/debian/patches-rt/0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch similarity index 90% rename from debian/patches-rt/0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch rename to debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch index 1d99d5fe1..a301f083f 100644 --- a/debian/patches-rt/0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch +++ b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch @@ -1,8 +1,8 @@ -From 85650b9854b0d27ec65285b4f60cc63bb100669f Mon Sep 17 00:00:00 2001 +From 85afc621eb4a204e42836baf2e39a0f0ab1ab150 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Feb 2019 16:59:15 +0100 -Subject: [PATCH 184/328] hrtimer: Don't lose state in cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 183/325] hrtimer: Don't lose state in cpu_chill() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz In cpu_chill() the state is set to TASK_UNINTERRUPTIBLE and a timer is programmed. On return the state is always TASK_RUNNING which means we diff --git a/debian/patches-rt/0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch b/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch similarity index 92% rename from debian/patches-rt/0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch rename to debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch index aa5fa03c4..e32b2e397 100644 --- a/debian/patches-rt/0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch +++ b/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch @@ -1,9 +1,9 @@ -From c5e6ba548ce7b077f2c912fa506401cccf68d85d Mon Sep 17 00:00:00 2001 +From 9f5be54f1f4d5410605f14e2cfb080ac1dd4d31b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Feb 2019 12:31:10 +0100 -Subject: [PATCH 185/328] hrtimer: cpu_chill(): save task state in +Subject: [PATCH 184/325] hrtimer: cpu_chill(): save task state in ->saved_state() -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 the previous change I saved the current task state on stack. This was bad because while the task is scheduled-out it might receive a wake-up. diff --git a/debian/patches-rt/0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch similarity index 96% rename from debian/patches-rt/0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch rename to debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch index 1c2a554c9..7905c5660 100644 --- a/debian/patches-rt/0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +++ b/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch @@ -1,9 +1,9 @@ -From 57df777639aebaef79d278a5dfa3d749c5884099 Mon Sep 17 00:00:00 2001 +From 477882e8bb18263b11d0a1ef9bfeb405e1c08e52 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 13 Mar 2018 13:49:16 +0100 -Subject: [PATCH 186/328] block: blk-mq: move blk_queue_usage_counter_release() +Subject: [PATCH 185/325] block: blk-mq: move blk_queue_usage_counter_release() into process 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 | BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 | in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6 diff --git a/debian/patches-rt/0187-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch similarity index 88% rename from debian/patches-rt/0187-block-Use-cpu_chill-for-retry-loops.patch rename to debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch index a0432b445..03c7156de 100644 --- a/debian/patches-rt/0187-block-Use-cpu_chill-for-retry-loops.patch +++ b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch @@ -1,8 +1,8 @@ -From b86763e1cdbb47e8674463b0be6daf0c5c09cabf Mon Sep 17 00:00:00 2001 +From ebf1bbe26f6a3b6b1e785632dc79a9e66e81adc2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 20 Dec 2012 18:28:26 +0100 -Subject: [PATCH 187/328] block: Use cpu_chill() for retry loops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 186/325] block: Use cpu_chill() for retry loops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Steven also observed a live lock when there was a diff --git a/debian/patches-rt/0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch similarity index 92% rename from debian/patches-rt/0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch rename to debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch index b75a9b6c9..872c98f4e 100644 --- a/debian/patches-rt/0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +++ b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch @@ -1,8 +1,8 @@ -From e4c2d46c06d5e1181e6ab26038689d1c112b9d0b Mon Sep 17 00:00:00 2001 +From f5454f2bfe74411fddac95ad5c3c8526ad6b28a3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:00:34 +0100 -Subject: [PATCH 188/328] fs: dcache: Use cpu_chill() in trylock loops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 187/325] fs: dcache: Use cpu_chill() in trylock loops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system diff --git a/debian/patches-rt/0189-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch similarity index 90% rename from debian/patches-rt/0189-net-Use-cpu_chill-instead-of-cpu_relax.patch rename to debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch index c410be903..0c44ec495 100644 --- a/debian/patches-rt/0189-net-Use-cpu_chill-instead-of-cpu_relax.patch +++ b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch @@ -1,8 +1,8 @@ -From cef4fa5aa7e55b664ae92cd88f7e09b2214c5d7f Mon Sep 17 00:00:00 2001 +From c9660b290b88ad7b1e058ecba70708b21eaff85b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:10:04 +0100 -Subject: [PATCH 189/328] net: Use cpu_chill() instead of cpu_relax() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 188/325] net: Use cpu_chill() instead of cpu_relax() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c -index ddf90e6fac51..65befa5ee0c3 100644 +index 0e029aefa707..74e78df6cdf8 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -63,6 +63,7 @@ diff --git a/debian/patches-rt/0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch similarity index 97% rename from debian/patches-rt/0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch rename to debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch index ee24ec156..0b0dde921 100644 --- a/debian/patches-rt/0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -1,8 +1,8 @@ -From fc8e48cfb7705d33f133b8b927ec35a1c95af05d Mon Sep 17 00:00:00 2001 +From 44b16a4955e56c4a19b1e22c45172500d8ad261d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 14:35:49 +0200 -Subject: [PATCH 190/328] fs/dcache: use swait_queue instead of waitqueue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 189/325] fs/dcache: use swait_queue instead of waitqueue +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. @@ -98,7 +98,7 @@ index 6244345a5745..7ee10b7cc808 100644 if (!o->nodeid) { /* diff --git a/fs/namei.c b/fs/namei.c -index c00a7e1da4c0..742e7935f777 100644 +index 327844fedf3d..5114c8111807 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1646,7 +1646,7 @@ static struct dentry *__lookup_slow(const struct qstr *name, diff --git a/debian/patches-rt/0191-workqueue-Use-normal-rcu.patch b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch similarity index 79% rename from debian/patches-rt/0191-workqueue-Use-normal-rcu.patch rename to debian/patches-rt/0190-workqueue-Use-normal-rcu.patch index 81cb47838..f2cfc27c5 100644 --- a/debian/patches-rt/0191-workqueue-Use-normal-rcu.patch +++ b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch @@ -1,8 +1,8 @@ -From 10e5e4ecf5dab22ad4b607ba4222dce12d256c0e Mon Sep 17 00:00:00 2001 +From 0b9664b2a0c21a43367d93c893afe90f7c873b5a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 24 Jul 2013 15:26:54 +0200 -Subject: [PATCH 191/328] workqueue: Use normal rcu -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 190/325] workqueue: Use normal rcu +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz There is no need for sched_rcu. The undocumented reason why sched_rcu is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by @@ -14,9 +14,11 @@ Signed-off-by: Thomas Gleixner kernel/workqueue.c | 95 +++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 43 deletions(-) +diff --git a/kernel/workqueue.c b/kernel/workqueue.c +index eef77c82d2e1..29dc939dad4e 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c -@@ -127,7 +127,7 @@ +@@ -127,7 +127,7 @@ enum { * * PL: wq_pool_mutex protected. * @@ -25,7 +27,7 @@ Signed-off-by: Thomas Gleixner * * PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads. * -@@ -136,7 +136,7 @@ +@@ -136,7 +136,7 @@ enum { * * WQ: wq->mutex protected. * @@ -34,7 +36,7 @@ Signed-off-by: Thomas Gleixner * * MD: wq_mayday_lock protected. */ -@@ -183,7 +183,7 @@ +@@ -183,7 +183,7 @@ struct worker_pool { atomic_t nr_running ____cacheline_aligned_in_smp; /* @@ -43,7 +45,7 @@ Signed-off-by: Thomas Gleixner * from get_work_pool(). */ struct rcu_head rcu; -@@ -212,7 +212,7 @@ +@@ -212,7 +212,7 @@ struct pool_workqueue { /* * Release of unbound pwq is punted to system_wq. See put_pwq() * and pwq_unbound_release_workfn() for details. pool_workqueue @@ -52,7 +54,7 @@ Signed-off-by: Thomas Gleixner * determined without grabbing wq->mutex. */ struct work_struct unbound_release_work; -@@ -357,20 +357,20 @@ +@@ -357,20 +357,20 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq); #include #define assert_rcu_or_pool_mutex() \ @@ -79,7 +81,7 @@ Signed-off-by: Thomas Gleixner #define for_each_cpu_worker_pool(pool, cpu) \ for ((pool) = &per_cpu(cpu_worker_pools, cpu)[0]; \ -@@ -382,7 +382,7 @@ +@@ -382,7 +382,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq); * @pool: iteration cursor * @pi: integer used for iteration * @@ -88,7 +90,7 @@ Signed-off-by: Thomas Gleixner * locked. If the pool needs to be used beyond the locking in effect, the * caller is responsible for guaranteeing that the pool stays online. * -@@ -414,7 +414,7 @@ +@@ -414,7 +414,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq); * @pwq: iteration cursor * @wq: the target workqueue * @@ -97,7 +99,7 @@ Signed-off-by: Thomas Gleixner * If the pwq needs to be used beyond the locking in effect, the caller is * responsible for guaranteeing that the pwq stays online. * -@@ -550,7 +550,7 @@ +@@ -550,7 +550,7 @@ static int worker_pool_assign_id(struct worker_pool *pool) * @wq: the target workqueue * @node: the node ID * @@ -106,7 +108,7 @@ Signed-off-by: Thomas Gleixner * read locked. * If the pwq needs to be used beyond the locking in effect, the caller is * responsible for guaranteeing that the pwq stays online. -@@ -694,8 +694,8 @@ +@@ -694,8 +694,8 @@ static struct pool_workqueue *get_work_pwq(struct work_struct *work) * @work: the work item of interest * * Pools are created and destroyed under wq_pool_mutex, and allows read @@ -117,7 +119,7 @@ Signed-off-by: Thomas Gleixner * * All fields of the returned pool are accessible as long as the above * mentioned locking is in effect. If the returned pool needs to be used -@@ -1100,7 +1100,7 @@ +@@ -1100,7 +1100,7 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq) { if (pwq) { /* @@ -126,7 +128,7 @@ Signed-off-by: Thomas Gleixner * following lock operations are safe. */ spin_lock_irq(&pwq->pool->lock); -@@ -1228,6 +1228,7 @@ +@@ -1228,6 +1228,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork, if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) return 0; @@ -134,7 +136,7 @@ Signed-off-by: Thomas Gleixner /* * The queueing is in progress, or it is already queued. Try to * steal it from ->worklist without clearing WORK_STRUCT_PENDING. -@@ -1266,10 +1267,12 @@ +@@ -1266,10 +1267,12 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork, set_work_pool_and_keep_pending(work, pool->id); spin_unlock(&pool->lock); @@ -147,7 +149,7 @@ Signed-off-by: Thomas Gleixner local_irq_restore(*flags); if (work_is_canceling(work)) return -ENOENT; -@@ -1383,6 +1386,7 @@ +@@ -1383,6 +1386,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, if (unlikely(wq->flags & __WQ_DRAINING) && WARN_ON_ONCE(!is_chained_work(wq))) return; @@ -155,7 +157,7 @@ Signed-off-by: Thomas Gleixner retry: /* pwq which will be used unless @work is executing elsewhere */ if (wq->flags & WQ_UNBOUND) { -@@ -1441,10 +1445,8 @@ +@@ -1441,10 +1445,8 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, /* pwq determined, queue */ trace_workqueue_queue_work(req_cpu, pwq, work); @@ -168,7 +170,7 @@ Signed-off-by: Thomas Gleixner pwq->nr_in_flight[pwq->work_color]++; work_flags = work_color_to_flags(pwq->work_color); -@@ -1462,7 +1464,9 @@ +@@ -1462,7 +1464,9 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, insert_work(pwq, work, worklist, work_flags); @@ -178,7 +180,7 @@ Signed-off-by: Thomas Gleixner } /** -@@ -2863,14 +2867,14 @@ +@@ -2863,14 +2867,14 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr, might_sleep(); @@ -196,7 +198,7 @@ Signed-off-by: Thomas Gleixner /* see the comment in try_to_grab_pending() with the same code */ pwq = get_work_pwq(work); if (pwq) { -@@ -2902,10 +2906,11 @@ +@@ -2902,10 +2906,11 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr, lock_map_acquire(&pwq->wq->lockdep_map); lock_map_release(&pwq->wq->lockdep_map); } @@ -209,7 +211,7 @@ Signed-off-by: Thomas Gleixner return false; } -@@ -3352,7 +3357,7 @@ +@@ -3352,7 +3357,7 @@ static void rcu_free_pool(struct rcu_head *rcu) * put_unbound_pool - put a worker_pool * @pool: worker_pool to put * @@ -218,7 +220,7 @@ Signed-off-by: Thomas Gleixner * safe manner. get_unbound_pool() calls this function on its failure path * and this function should be able to release pools which went through, * successfully or not, init_worker_pool(). -@@ -3406,8 +3411,8 @@ +@@ -3406,8 +3411,8 @@ static void put_unbound_pool(struct worker_pool *pool) del_timer_sync(&pool->idle_timer); del_timer_sync(&pool->mayday_timer); @@ -229,7 +231,7 @@ Signed-off-by: Thomas Gleixner } /** -@@ -3514,14 +3519,14 @@ +@@ -3514,14 +3519,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work) put_unbound_pool(pool); mutex_unlock(&wq_pool_mutex); @@ -246,7 +248,7 @@ Signed-off-by: Thomas Gleixner } /** -@@ -4221,7 +4226,7 @@ +@@ -4221,7 +4226,7 @@ void destroy_workqueue(struct workqueue_struct *wq) * The base ref is never dropped on per-cpu pwqs. Directly * schedule RCU free. */ @@ -255,7 +257,7 @@ Signed-off-by: Thomas Gleixner } else { /* * We're the sole accessor of @wq at this point. Directly -@@ -4331,7 +4336,8 @@ +@@ -4331,7 +4336,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq) struct pool_workqueue *pwq; bool ret; @@ -265,7 +267,7 @@ Signed-off-by: Thomas Gleixner if (cpu == WORK_CPU_UNBOUND) cpu = smp_processor_id(); -@@ -4342,7 +4348,8 @@ +@@ -4342,7 +4348,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq) pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu)); ret = !list_empty(&pwq->delayed_works); @@ -275,7 +277,7 @@ Signed-off-by: Thomas Gleixner return ret; } -@@ -4368,15 +4375,15 @@ +@@ -4368,15 +4375,15 @@ unsigned int work_busy(struct work_struct *work) if (work_pending(work)) ret |= WORK_BUSY_PENDING; @@ -295,7 +297,7 @@ Signed-off-by: Thomas Gleixner return ret; } -@@ -4561,7 +4568,7 @@ +@@ -4561,7 +4568,7 @@ void show_workqueue_state(void) unsigned long flags; int pi; @@ -304,7 +306,7 @@ Signed-off-by: Thomas Gleixner pr_info("Showing busy workqueues and worker pools:\n"); -@@ -4626,7 +4633,7 @@ +@@ -4626,7 +4633,7 @@ void show_workqueue_state(void) touch_nmi_watchdog(); } @@ -313,7 +315,7 @@ Signed-off-by: Thomas Gleixner } /* used to show worker information through /proc/PID/{comm,stat,status} */ -@@ -5013,16 +5020,16 @@ +@@ -5013,16 +5020,16 @@ bool freeze_workqueues_busy(void) * nr_active is monotonically decreasing. It's safe * to peek without lock. */ @@ -333,7 +335,7 @@ Signed-off-by: Thomas Gleixner } out_unlock: mutex_unlock(&wq_pool_mutex); -@@ -5217,7 +5224,8 @@ +@@ -5217,7 +5224,8 @@ static ssize_t wq_pool_ids_show(struct device *dev, const char *delim = ""; int node, written = 0; @@ -343,7 +345,7 @@ Signed-off-by: Thomas Gleixner for_each_node(node) { written += scnprintf(buf + written, PAGE_SIZE - written, "%s%d:%d", delim, node, -@@ -5225,7 +5233,8 @@ +@@ -5225,7 +5233,8 @@ static ssize_t wq_pool_ids_show(struct device *dev, delim = " "; } written += scnprintf(buf + written, PAGE_SIZE - written, "\n"); @@ -353,3 +355,6 @@ Signed-off-by: Thomas Gleixner return written; } +-- +2.25.1 + diff --git a/debian/patches-rt/0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch b/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch similarity index 87% rename from debian/patches-rt/0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch rename to debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch index ab1ffe84d..7ada3a71e 100644 --- a/debian/patches-rt/0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch +++ b/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch @@ -1,9 +1,9 @@ -From 9c52df57d5e211043c5a5b6820933f14bdc83525 Mon Sep 17 00:00:00 2001 +From 72906548185c659d4a5693976040709cb5044c1f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:42:26 +0200 -Subject: [PATCH 192/328] workqueue: Use local irq lock instead of irq disable +Subject: [PATCH 191/325] workqueue: Use local irq lock instead of irq disable 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 Use a local_irq_lock as a replacement for irq off regions. We keep the semantic of irq-off in regard to the pool->lock and remain preemptible. @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 544007905706..0efb8d25d940 100644 +index 29dc939dad4e..f34586370fcb 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -49,6 +49,7 @@ @@ -80,7 +80,7 @@ index 544007905706..0efb8d25d940 100644 debug_work_activate(work); -@@ -1484,14 +1495,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq, +@@ -1486,14 +1497,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq, bool ret = false; unsigned long flags; @@ -97,7 +97,7 @@ index 544007905706..0efb8d25d940 100644 return ret; } EXPORT_SYMBOL(queue_work_on); -@@ -1500,8 +1511,11 @@ void delayed_work_timer_fn(struct timer_list *t) +@@ -1502,8 +1513,11 @@ void delayed_work_timer_fn(struct timer_list *t) { struct delayed_work *dwork = from_timer(dwork, t, timer); @@ -109,7 +109,7 @@ index 544007905706..0efb8d25d940 100644 } EXPORT_SYMBOL(delayed_work_timer_fn); -@@ -1556,14 +1570,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq, +@@ -1558,14 +1572,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq, unsigned long flags; /* read the comment in __queue_work() */ @@ -126,7 +126,7 @@ index 544007905706..0efb8d25d940 100644 return ret; } EXPORT_SYMBOL(queue_delayed_work_on); -@@ -1598,7 +1612,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq, +@@ -1600,7 +1614,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq, if (likely(ret >= 0)) { __queue_delayed_work(cpu, wq, dwork, delay); @@ -135,7 +135,7 @@ index 544007905706..0efb8d25d940 100644 } /* -ENOENT from try_to_grab_pending() becomes %true */ -@@ -1609,11 +1623,12 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on); +@@ -1611,11 +1625,12 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on); static void rcu_work_rcufn(struct rcu_head *rcu) { struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu); @@ -150,7 +150,7 @@ index 544007905706..0efb8d25d940 100644 } /** -@@ -3008,7 +3023,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork) +@@ -3010,7 +3025,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork) /* tell other tasks trying to grab @work to back off */ mark_work_canceling(work); @@ -159,7 +159,7 @@ index 544007905706..0efb8d25d940 100644 /* * This allows canceling during early boot. We know that @work -@@ -3069,10 +3084,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync); +@@ -3071,10 +3086,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync); */ bool flush_delayed_work(struct delayed_work *dwork) { @@ -172,7 +172,7 @@ index 544007905706..0efb8d25d940 100644 return flush_work(&dwork->work); } EXPORT_SYMBOL(flush_delayed_work); -@@ -3110,7 +3125,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork) +@@ -3112,7 +3127,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork) return false; set_work_pool_and_clear_pending(work, get_work_pool_id(work)); diff --git a/debian/patches-rt/0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch similarity index 96% rename from debian/patches-rt/0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch rename to debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch index 3f8f32893..30e15af02 100644 --- a/debian/patches-rt/0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch +++ b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch @@ -1,8 +1,8 @@ -From e86a6ec786f05699d6e5490129ae8e2ede3bbe5e Mon Sep 17 00:00:00 2001 +From 53c5b0958ee67a2e56c5caacd839d18583f12e78 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 1 Jul 2013 11:02:42 +0200 -Subject: [PATCH 193/328] workqueue: Prevent workqueue versus ata-piix livelock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 192/325] workqueue: Prevent workqueue versus ata-piix livelock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz An Intel i7 system regularly detected rcu_preempt stalls after the kernel was upgraded from 3.6-rt to 3.8-rt. When the stall happened, disk I/O was no @@ -114,7 +114,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 0efb8d25d940..34734cdb5cb6 100644 +index f34586370fcb..21484e3938a6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -50,6 +50,7 @@ diff --git a/debian/patches-rt/0194-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch similarity index 97% rename from debian/patches-rt/0194-sched-Distangle-worker-accounting-from-rqlock.patch rename to debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch index 3515039ba..eea39bcd7 100644 --- a/debian/patches-rt/0194-sched-Distangle-worker-accounting-from-rqlock.patch +++ b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch @@ -1,8 +1,8 @@ -From 297b2be7a99ed420743272591f3bc082f5d0bd6f Mon Sep 17 00:00:00 2001 +From 6fdac9a09208088f4ed195b86cdadeb37ae5ee1b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 19:47:03 +0200 -Subject: [PATCH 194/328] sched: Distangle worker accounting from rqlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 193/325] sched: Distangle worker accounting from rqlock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The worker accounting for cpu bound workers is plugged into the core scheduler code and the wakeup code. This is not a hard requirement and @@ -170,7 +170,7 @@ index 3b2664e691de..dcf2deedd3f8 100644 EXPORT_SYMBOL(schedule); diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 34734cdb5cb6..045b82ca0eb5 100644 +index 21484e3938a6..77ae44a1a9ee 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -843,43 +843,32 @@ static void wake_up_worker(struct worker_pool *pool) diff --git a/debian/patches-rt/0195-debugobjects-Make-RT-aware.patch b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch similarity index 84% rename from debian/patches-rt/0195-debugobjects-Make-RT-aware.patch rename to debian/patches-rt/0194-debugobjects-Make-RT-aware.patch index 2dc6b2997..89af74acd 100644 --- a/debian/patches-rt/0195-debugobjects-Make-RT-aware.patch +++ b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch @@ -1,8 +1,8 @@ -From 5240d73278022cb45b35b96e5c56752146bc1b17 Mon Sep 17 00:00:00 2001 +From 64a6b61b00e8d28a51171b6461134ce12cb70b28 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:41:35 +0200 -Subject: [PATCH 195/328] debugobjects: Make RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 194/325] debugobjects: Make RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Avoid filling the pool / allocating memory with irqs off(). diff --git a/debian/patches-rt/0196-seqlock-Prevent-rt-starvation.patch b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch similarity index 97% rename from debian/patches-rt/0196-seqlock-Prevent-rt-starvation.patch rename to debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch index 814a4d835..5d329596c 100644 --- a/debian/patches-rt/0196-seqlock-Prevent-rt-starvation.patch +++ b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch @@ -1,8 +1,8 @@ -From 8495d9ef448ef2ad328ed925e41605778ee51cd4 Mon Sep 17 00:00:00 2001 +From df0cac618c41453a2bc5292c8af2ea8e21ee39c1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Feb 2012 12:03:30 +0100 -Subject: [PATCH 196/328] seqlock: Prevent rt starvation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 195/325] seqlock: Prevent rt starvation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz If a low prio writer gets preempted while holding the seqlock write locked, a high prio reader spins forever on RT. diff --git a/debian/patches-rt/0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch similarity index 93% rename from debian/patches-rt/0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch rename to debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch index d2ede99fe..234c1acf8 100644 --- a/debian/patches-rt/0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch +++ b/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -1,9 +1,9 @@ -From 2ca7937e235cfe226669eea396294adeee79c34e Mon Sep 17 00:00:00 2001 +From 3aac129a44a573f7e78f4f8554d0dee0936e345d Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 18 Feb 2015 16:05:28 +0100 -Subject: [PATCH 197/328] sunrpc: Make svc_xprt_do_enqueue() use +Subject: [PATCH 196/325] sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() -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 |in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd diff --git a/debian/patches-rt/0198-net-Use-skbufhead-with-raw-lock.patch b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch similarity index 87% rename from debian/patches-rt/0198-net-Use-skbufhead-with-raw-lock.patch rename to debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch index 5b7f3d578..1be1a44b0 100644 --- a/debian/patches-rt/0198-net-Use-skbufhead-with-raw-lock.patch +++ b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch @@ -1,8 +1,8 @@ -From ac577d42ef159cea2e3512a52c9dbc43de1c7c5d Mon Sep 17 00:00:00 2001 +From 2ecccb79d16487a93f3885f752f4d03e13b7e308 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 15:38:34 +0200 -Subject: [PATCH 198/328] net: Use skbufhead with raw lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 197/325] net: Use skbufhead with raw lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Use the rps lock as rawlock so we can keep irq-off regions. It looks low latency. However we can't kfree() from this context therefore we defer this @@ -53,7 +53,7 @@ index 25407c206e73..d4d7aea13cc6 100644 struct lock_class_key *class) { diff --git a/net/core/dev.c b/net/core/dev.c -index b754adb14205..985d1f703383 100644 +index 655dbfac09fd..65eeba4e5eac 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -218,14 +218,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) @@ -73,7 +73,7 @@ index b754adb14205..985d1f703383 100644 #endif } -@@ -5246,7 +5246,7 @@ static void flush_backlog(struct work_struct *work) +@@ -5248,7 +5248,7 @@ static void flush_backlog(struct work_struct *work) skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->input_pkt_queue); @@ -82,7 +82,7 @@ index b754adb14205..985d1f703383 100644 input_queue_head_incr(sd); } } -@@ -5256,11 +5256,14 @@ static void flush_backlog(struct work_struct *work) +@@ -5258,11 +5258,14 @@ static void flush_backlog(struct work_struct *work) skb_queue_walk_safe(&sd->process_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->process_queue); @@ -98,7 +98,7 @@ index b754adb14205..985d1f703383 100644 } static void flush_all_backlogs(void) -@@ -5839,7 +5842,9 @@ static int process_backlog(struct napi_struct *napi, int quota) +@@ -5841,7 +5844,9 @@ static int process_backlog(struct napi_struct *napi, int quota) while (again) { struct sk_buff *skb; @@ -108,7 +108,7 @@ index b754adb14205..985d1f703383 100644 rcu_read_lock(); __netif_receive_skb(skb); rcu_read_unlock(); -@@ -5847,9 +5852,9 @@ static int process_backlog(struct napi_struct *napi, int quota) +@@ -5849,9 +5854,9 @@ static int process_backlog(struct napi_struct *napi, int quota) if (++work >= quota) return work; @@ -119,7 +119,7 @@ index b754adb14205..985d1f703383 100644 rps_lock(sd); if (skb_queue_empty(&sd->input_pkt_queue)) { /* -@@ -6314,13 +6319,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) +@@ -6316,13 +6321,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) unsigned long time_limit = jiffies + usecs_to_jiffies(netdev_budget_usecs); int budget = netdev_budget; @@ -141,7 +141,7 @@ index b754adb14205..985d1f703383 100644 for (;;) { struct napi_struct *n; -@@ -9504,10 +9517,13 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9506,10 +9519,13 @@ static int dev_cpu_dead(unsigned int oldcpu) netif_rx_ni(skb); input_queue_head_incr(oldsd); } @@ -156,7 +156,7 @@ index b754adb14205..985d1f703383 100644 return 0; } -@@ -9818,8 +9834,9 @@ static int __init net_dev_init(void) +@@ -9820,8 +9836,9 @@ static int __init net_dev_init(void) INIT_WORK(flush, flush_backlog); diff --git a/debian/patches-rt/0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch similarity index 94% rename from debian/patches-rt/0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch rename to debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch index 97f7711d7..9bc143136 100644 --- a/debian/patches-rt/0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch +++ b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch @@ -1,8 +1,8 @@ -From 2b3882e6dc68a87b4b958396528cf0ccf1d9c5b4 Mon Sep 17 00:00:00 2001 +From 333172fb8641ddac36b12e08c4f88892939590d0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Jan 2016 15:55:02 +0100 -Subject: [PATCH 199/328] net: move xmit_recursion to per-task variable on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 198/325] net: move xmit_recursion to per-task variable on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz A softirq on -RT can be preempted. That means one task is in __dev_queue_xmit(), gets preempted and another task may enter @@ -198,10 +198,10 @@ index a38a2c2a8fe4..756fed8f5994 100644 int pagefault_disabled; #ifdef CONFIG_MMU diff --git a/net/core/dev.c b/net/core/dev.c -index 985d1f703383..b5dc8a521fd2 100644 +index 65eeba4e5eac..031079f6703b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3538,8 +3538,10 @@ static void skb_update_prio(struct sk_buff *skb) +@@ -3540,8 +3540,10 @@ static void skb_update_prio(struct sk_buff *skb) #define skb_update_prio(skb) #endif @@ -212,7 +212,7 @@ index 985d1f703383..b5dc8a521fd2 100644 /** * dev_loopback_xmit - loop back @skb -@@ -3830,9 +3832,12 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) +@@ -3832,9 +3834,12 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) if (dev->flags & IFF_UP) { int cpu = smp_processor_id(); /* ok because BHs are off */ @@ -227,7 +227,7 @@ index 985d1f703383..b5dc8a521fd2 100644 goto recursion_alert; skb = validate_xmit_skb(skb, dev, &again); -@@ -3842,9 +3847,9 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) +@@ -3844,9 +3849,9 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) HARD_TX_LOCK(dev, txq, cpu); if (!netif_xmit_stopped(txq)) { @@ -239,7 +239,7 @@ index 985d1f703383..b5dc8a521fd2 100644 if (dev_xmit_complete(rc)) { HARD_TX_UNLOCK(dev, txq); goto out; -@@ -8563,7 +8568,7 @@ static void netdev_init_one_queue(struct net_device *dev, +@@ -8565,7 +8570,7 @@ static void netdev_init_one_queue(struct net_device *dev, /* Initialize queue lock */ spin_lock_init(&queue->_xmit_lock); netdev_set_xmit_lockdep_class(&queue->_xmit_lock, dev->type); diff --git a/debian/patches-rt/0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch similarity index 87% rename from debian/patches-rt/0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch rename to debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch index bce25c856..dba5a1018 100644 --- a/debian/patches-rt/0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch +++ b/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch @@ -1,9 +1,9 @@ -From 621f9c07474a04eaee9cbb799a037e462a5b692c Mon Sep 17 00:00:00 2001 +From af455cf90e7dc741d2f547f1b0920e355053a316 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Jan 2016 15:39:05 +0100 -Subject: [PATCH 200/328] net: provide a way to delegate processing a softirq +Subject: [PATCH 199/325] net: provide a way to delegate processing a softirq to ksoftirqd -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 If the NET_RX uses up all of his budget it moves the following NAPI invocations into the `ksoftirqd`. On -RT it does not do so. Instead it @@ -21,10 +21,10 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 99f8b7ace7c9..72333899f043 100644 +index e1438fe66467..97d9ba26915e 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -524,6 +524,14 @@ extern void thread_do_softirq(void); +@@ -518,6 +518,14 @@ extern void thread_do_softirq(void); extern void open_softirq(int nr, void (*action)(struct softirq_action *)); extern void softirq_init(void); extern void __raise_softirq_irqoff(unsigned int nr); @@ -72,10 +72,10 @@ index 27a4bb2303d0..25bcf2f2714b 100644 * This function must run with irqs disabled! */ diff --git a/net/core/dev.c b/net/core/dev.c -index b5dc8a521fd2..ecdf7534ef13 100644 +index 031079f6703b..f3c394d0037e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6368,7 +6368,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) +@@ -6370,7 +6370,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) list_splice_tail(&repoll, &list); list_splice(&list, &sd->poll_list); if (!list_empty(&sd->poll_list)) diff --git a/debian/patches-rt/0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch similarity index 82% rename from debian/patches-rt/0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch rename to debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch index eb0d6f8fe..9c30e6618 100644 --- a/debian/patches-rt/0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +++ b/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch @@ -1,9 +1,9 @@ -From 136dfe4108059e637cdcc04f03dbca6637386429 Mon Sep 17 00:00:00 2001 +From b06436acd56539e7208907b2c34aa1739e4d7bcb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 30 Mar 2016 13:36:29 +0200 -Subject: [PATCH 201/328] net: dev: always take qdisc's busylock in +Subject: [PATCH 200/325] net: dev: always take qdisc's busylock in __dev_xmit_skb() -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 root-lock is dropped before dev_hard_start_xmit() is invoked and after setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c -index ecdf7534ef13..6c6c1c6d534b 100644 +index f3c394d0037e..ddd65bbfcd3a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3466,7 +3466,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, +@@ -3468,7 +3468,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, * This permits qdisc->running owner to get the lock more * often and dequeue packets faster. */ diff --git a/debian/patches-rt/0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch similarity index 98% rename from debian/patches-rt/0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch rename to debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch index a19cda71e..6398aef03 100644 --- a/debian/patches-rt/0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -1,8 +1,8 @@ -From 41d62c0f01ed3d5b94cee9c89dba5a3ba0947e42 Mon Sep 17 00:00:00 2001 +From 41cf08fe25d006f91cd7ad1a97b7729a4f0c7a20 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 17:36:35 +0200 -Subject: [PATCH 202/328] net/Qdisc: use a seqlock instead seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 201/325] net/Qdisc: use a seqlock instead seqcount +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The seqcount disables preemption on -RT while it is held which can't remove. Also we don't want the reader to spin for ages if the writer is diff --git a/debian/patches-rt/0203-net-add-back-the-missing-serialization-in-ip_send_un.patch b/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch similarity index 95% rename from debian/patches-rt/0203-net-add-back-the-missing-serialization-in-ip_send_un.patch rename to debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch index 21628df51..00436bdd1 100644 --- a/debian/patches-rt/0203-net-add-back-the-missing-serialization-in-ip_send_un.patch +++ b/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch @@ -1,12 +1,12 @@ -From 7ddcdec24f0b8d364eed41710f1a2a821979e5a1 Mon Sep 17 00:00:00 2001 +From 933664614b03add80f4578bbb30de2698b553234 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 31 Aug 2016 17:21:56 +0200 -Subject: [PATCH 203/328] net: add back the missing serialization in +Subject: [PATCH 202/325] net: add back the missing serialization in ip_send_unicast_reply() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 Some time ago Sami Pietikäinen reported a crash on -RT in ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire diff --git a/debian/patches-rt/0204-net-add-a-lock-around-icmp_sk.patch b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch similarity index 92% rename from debian/patches-rt/0204-net-add-a-lock-around-icmp_sk.patch rename to debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch index b81963be5..edb8e8162 100644 --- a/debian/patches-rt/0204-net-add-a-lock-around-icmp_sk.patch +++ b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch @@ -1,8 +1,8 @@ -From abcb99faf244ae2e089bd1933e80f0d8216e00b8 Mon Sep 17 00:00:00 2001 +From d379a0b223af3be3d6573649cf5ee15b8e8f9efd Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 31 Aug 2016 17:54:09 +0200 -Subject: [PATCH 204/328] net: add a lock around icmp_sk() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 203/325] net: add a lock around icmp_sk() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz It looks like the this_cpu_ptr() access in icmp_sk() is protected with local_bh_disable(). To avoid missing serialization in -RT I am adding diff --git a/debian/patches-rt/0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch similarity index 88% rename from debian/patches-rt/0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch rename to debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch index f36725152..186a4ea20 100644 --- a/debian/patches-rt/0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch +++ b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch @@ -1,9 +1,9 @@ -From 6da7a2e74d33df8e51178520e3945133a97ee419 Mon Sep 17 00:00:00 2001 +From 6d154a08a1e24d7e8cbb139a0b3d72fc211d45bd Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 6 Dec 2016 17:50:30 -0500 -Subject: [PATCH 205/328] net: Have __napi_schedule_irqoff() disable interrupts +Subject: [PATCH 204/325] net: Have __napi_schedule_irqoff() disable interrupts 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 A customer hit a crash where the napi sd->poll_list became corrupted. The customer had the bnx2x driver, which does a @@ -53,10 +53,10 @@ index 5de4b66e11fe..1d6bb0ab437f 100644 static inline bool napi_disable_pending(struct napi_struct *n) { diff --git a/net/core/dev.c b/net/core/dev.c -index 6c6c1c6d534b..19e2cd0897b3 100644 +index ddd65bbfcd3a..efebf78b57b2 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5938,6 +5938,7 @@ bool napi_schedule_prep(struct napi_struct *n) +@@ -5940,6 +5940,7 @@ bool napi_schedule_prep(struct napi_struct *n) } EXPORT_SYMBOL(napi_schedule_prep); @@ -64,7 +64,7 @@ index 6c6c1c6d534b..19e2cd0897b3 100644 /** * __napi_schedule_irqoff - schedule for receive * @n: entry to schedule -@@ -5949,6 +5950,7 @@ void __napi_schedule_irqoff(struct napi_struct *n) +@@ -5951,6 +5952,7 @@ void __napi_schedule_irqoff(struct napi_struct *n) ____napi_schedule(this_cpu_ptr(&softnet_data), n); } EXPORT_SYMBOL(__napi_schedule_irqoff); diff --git a/debian/patches-rt/0206-irqwork-push-most-work-into-softirq-context.patch b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch similarity index 98% rename from debian/patches-rt/0206-irqwork-push-most-work-into-softirq-context.patch rename to debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch index fb9170518..dab5c06e7 100644 --- a/debian/patches-rt/0206-irqwork-push-most-work-into-softirq-context.patch +++ b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch @@ -1,8 +1,8 @@ -From 6151f6a5fa3c014525a6c18524e092f1e47fb1e1 Mon Sep 17 00:00:00 2001 +From 1df56a786174e8a45037c5f0be6c1c34d18162a3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 23 Jun 2015 15:32:51 +0200 -Subject: [PATCH 206/328] irqwork: push most work into softirq context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 205/325] irqwork: push most work into softirq context +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Initially we defered all irqwork into softirq because we didn't want the latency spikes if perf or another user was busy and delayed the RT task. diff --git a/debian/patches-rt/0207-printk-Make-rt-aware.patch b/debian/patches-rt/0206-printk-Make-rt-aware.patch similarity index 95% rename from debian/patches-rt/0207-printk-Make-rt-aware.patch rename to debian/patches-rt/0206-printk-Make-rt-aware.patch index b1a521b69..a47bae725 100644 --- a/debian/patches-rt/0207-printk-Make-rt-aware.patch +++ b/debian/patches-rt/0206-printk-Make-rt-aware.patch @@ -1,8 +1,8 @@ -From e06507e6c3956ece840a3de1c8124c035609a1fb Mon Sep 17 00:00:00 2001 +From ea61badc3b80c688ddb6439a8bd334e111cf6b9f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Sep 2012 14:50:37 +0200 -Subject: [PATCH 207/328] printk: Make rt aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 206/325] printk: Make rt aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Drop the lock before calling the console driver and do not disable interrupts while printing to a serial console. diff --git a/debian/patches-rt/0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch similarity index 89% rename from debian/patches-rt/0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch rename to debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch index f4b079b83..ac9a91664 100644 --- a/debian/patches-rt/0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch +++ b/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch @@ -1,8 +1,8 @@ -From 0347ee41cebcbf76b3456e71c25eebd52611cdb9 Mon Sep 17 00:00:00 2001 +From 5791d9898591312bc4dc34c9cb748b2cdfe0026f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 19 May 2016 17:45:27 +0200 -Subject: [PATCH 208/328] kernel/printk: Don't try to print from IRQ/NMI region -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 207/325] kernel/printk: Don't try to print from IRQ/NMI region +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz On -RT we try to acquire sleeping locks which might lead to warnings from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on diff --git a/debian/patches-rt/0209-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch similarity index 92% rename from debian/patches-rt/0209-printk-Drop-the-logbuf_lock-more-often.patch rename to debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch index ddc76c47f..19dec4291 100644 --- a/debian/patches-rt/0209-printk-Drop-the-logbuf_lock-more-often.patch +++ b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch @@ -1,8 +1,8 @@ -From defb111e7019c8c65c85ce7a673ffe3d4b4a1338 Mon Sep 17 00:00:00 2001 +From 801157c0e2dc4c9c1a54f714a2f3ac7d2e373e17 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Mar 2013 19:01:05 +0100 -Subject: [PATCH 209/328] printk: Drop the logbuf_lock more often -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 208/325] printk: Drop the logbuf_lock more often +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The lock is hold with irgs off. The latency drops 500us+ on my arm bugs with a "full" buffer after executing "dmesg" on the shell. diff --git a/debian/patches-rt/0210-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch similarity index 95% rename from debian/patches-rt/0210-ARM-enable-irq-in-translation-section-permission-fau.patch rename to debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch index b6759734a..11faa8e5c 100644 --- a/debian/patches-rt/0210-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,12 +1,12 @@ -From b991f2d263f639e8c4aa1a70ff0d979e6245a5b2 Mon Sep 17 00:00:00 2001 +From 0a08742cc5de665e32bf773748d75ed56e170466 Mon Sep 17 00:00:00 2001 From: "Yadi.hu" Date: Wed, 10 Dec 2014 10:32:09 +0800 -Subject: [PATCH 210/328] ARM: enable irq in translation/section permission +Subject: [PATCH 209/325] ARM: enable irq in translation/section permission fault handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 Probably happens on all ARM, with CONFIG_PREEMPT_RT_FULL diff --git a/debian/patches-rt/0211-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch similarity index 79% rename from debian/patches-rt/0211-genirq-update-irq_set_irqchip_state-documentation.patch rename to debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch index b1fbe1423..2b99280dc 100644 --- a/debian/patches-rt/0211-genirq-update-irq_set_irqchip_state-documentation.patch +++ b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch @@ -1,8 +1,8 @@ -From 4324fc16ee37a4f6f8e0e6fc46cdaa6e16a5747a Mon Sep 17 00:00:00 2001 +From cd209691e4220adde61d3e0c36179232a565dee3 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:00 -0600 -Subject: [PATCH 211/328] genirq: update irq_set_irqchip_state documentation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 210/325] genirq: update irq_set_irqchip_state documentation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz On -rt kernels, the use of migrate_disable()/migrate_enable() is sufficient to guarantee a task isn't moved to another CPU. Update the @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index 3858ac895777..5701774a6d71 100644 +index ccd8af6fe49d..1a3cf77b11f8 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c -@@ -2330,7 +2330,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state); +@@ -2283,7 +2283,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state); * This call sets the internal irqchip state of an interrupt, * depending on the value of @which. * diff --git a/debian/patches-rt/0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch similarity index 92% rename from debian/patches-rt/0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch rename to debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index c3c022c25..1872322df 100644 --- a/debian/patches-rt/0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -1,9 +1,9 @@ -From 25e170a4bdc1953a46e60f3551c0ffd1f2b7b3aa Mon Sep 17 00:00:00 2001 +From b0db55e7a9eb7ef9e80ffbe089999bf94abe5f52 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:01 -0600 -Subject: [PATCH 212/328] KVM: arm/arm64: downgrade preempt_disable()d region +Subject: [PATCH 211/325] KVM: arm/arm64: downgrade preempt_disable()d region to 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 kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating the vgic and timer states to prevent the calling task from migrating to diff --git a/debian/patches-rt/0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch b/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch similarity index 96% rename from debian/patches-rt/0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch rename to debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch index 9b8a68e5a..068bcc2f0 100644 --- a/debian/patches-rt/0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch +++ b/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch @@ -1,9 +1,9 @@ -From 033bb93a0515b9df4593fbfcf93ea5ede830532c Mon Sep 17 00:00:00 2001 +From 393b855896741c2df780f95d03412417717d4db2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 25 Jul 2018 14:02:38 +0200 -Subject: [PATCH 213/328] arm64: fpsimd: use preemp_disable in addition to +Subject: [PATCH 212/325] arm64: fpsimd: use preemp_disable in addition to local_bh_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 In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The code disables BH and expects that it is not preemptible. On -RT the diff --git a/debian/patches-rt/0214-kgdb-serial-Short-term-workaround.patch b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch similarity index 91% rename from debian/patches-rt/0214-kgdb-serial-Short-term-workaround.patch rename to debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch index 32a1b5195..20f5a3c02 100644 --- a/debian/patches-rt/0214-kgdb-serial-Short-term-workaround.patch +++ b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch @@ -1,8 +1,8 @@ -From c5d74bf61d048136c3ebff3f2d803d4eba474db7 Mon Sep 17 00:00:00 2001 +From 170661f56dab5575f4fa40a094e2bd185afb3908 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Thu, 28 Jul 2011 12:42:23 -0500 -Subject: [PATCH 214/328] kgdb/serial: Short term workaround -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 213/325] kgdb/serial: Short term workaround +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz On 07/27/2011 04:37 PM, Thomas Gleixner wrote: > - KGDB (not yet disabled) is reportedly unusable on -rt right now due @@ -25,7 +25,7 @@ Jason. 3 files changed, 7 insertions(+) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 6b1d46c1df3b..cd49a76be52a 100644 +index 79e509468161..84dbc5a9959c 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -31,6 +31,7 @@ @@ -36,7 +36,7 @@ index 6b1d46c1df3b..cd49a76be52a 100644 #include #include #include -@@ -3241,6 +3242,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3245,6 +3246,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (port->sysrq || oops_in_progress) locked = 0; diff --git a/debian/patches-rt/0215-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch similarity index 89% rename from debian/patches-rt/0215-sysfs-Add-sys-kernel-realtime-entry.patch rename to debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch index 029338025..65c0518ad 100644 --- a/debian/patches-rt/0215-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,8 +1,8 @@ -From f69088aeda4b17cc974e451f18f7f10d999a6f57 Mon Sep 17 00:00:00 2001 +From 8e96037a97736d38d4c47e4e2a01b0d16061467c Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 -Subject: [PATCH 215/328] sysfs: Add /sys/kernel/realtime entry -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 214/325] sysfs: Add /sys/kernel/realtime entry +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. diff --git a/debian/patches-rt/0216-mm-rt-kmap_atomic-scheduling.patch b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch similarity index 98% rename from debian/patches-rt/0216-mm-rt-kmap_atomic-scheduling.patch rename to debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch index e31492511..1e918bb38 100644 --- a/debian/patches-rt/0216-mm-rt-kmap_atomic-scheduling.patch +++ b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch @@ -1,8 +1,8 @@ -From 5f53510a53551468cacc7dc39a067e4890082c6a Mon Sep 17 00:00:00 2001 +From 93adaef2afa4c9475254580129869286a8dbea03 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 28 Jul 2011 10:43:51 +0200 -Subject: [PATCH 216/328] mm, rt: kmap_atomic scheduling -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 215/325] mm, rt: kmap_atomic scheduling +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz In fact, with migrate_disable() existing one could play games with kmap_atomic. You could save/restore the kmap_atomic slots on context diff --git a/debian/patches-rt/0217-x86-highmem-Add-a-already-used-pte-check.patch b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch similarity index 83% rename from debian/patches-rt/0217-x86-highmem-Add-a-already-used-pte-check.patch rename to debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch index a7f181a78..a143efb3a 100644 --- a/debian/patches-rt/0217-x86-highmem-Add-a-already-used-pte-check.patch +++ b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch @@ -1,8 +1,8 @@ -From 4f31bac9ada3535606eaa6e9031a6a9e747afc5b Mon Sep 17 00:00:00 2001 +From e31b99ed8028c6712b1664b2dc50011d9371b0d4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Mar 2013 17:09:55 +0100 -Subject: [PATCH 217/328] x86/highmem: Add a "already used pte" check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 216/325] x86/highmem: Add a "already used pte" check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz This is a copy from kmap_atomic_prot(). diff --git a/debian/patches-rt/0218-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch similarity index 87% rename from debian/patches-rt/0218-arm-highmem-Flush-tlb-on-unmap.patch rename to debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch index cd7f90357..6a9b8e721 100644 --- a/debian/patches-rt/0218-arm-highmem-Flush-tlb-on-unmap.patch +++ b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch @@ -1,8 +1,8 @@ -From c0391198894b60a1860f751474ac15e89392d396 Mon Sep 17 00:00:00 2001 +From e2e2e6bfc0c52d0b6f159920b94e93df8843807d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Mar 2013 21:37:27 +0100 -Subject: [PATCH 218/328] arm/highmem: Flush tlb on unmap -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 217/325] arm/highmem: Flush tlb on unmap +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The tlb should be flushed on unmap and thus make the mapping entry invalid. This is only done in the non-debug case which does not look diff --git a/debian/patches-rt/0219-arm-Enable-highmem-for-rt.patch b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch similarity index 97% rename from debian/patches-rt/0219-arm-Enable-highmem-for-rt.patch rename to debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch index 86e6c5ca0..deaf513d9 100644 --- a/debian/patches-rt/0219-arm-Enable-highmem-for-rt.patch +++ b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch @@ -1,8 +1,8 @@ -From 9f06896a55a5320c0037ed6d57ccc188f39b46d9 Mon Sep 17 00:00:00 2001 +From 7e6c3574daf6585185e8d527a17e98c12b70af8f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 13 Feb 2013 11:03:11 +0100 -Subject: [PATCH 219/328] arm: Enable highmem for rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 218/325] arm: Enable highmem for rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz fixup highmem for ARM. diff --git a/debian/patches-rt/0220-scsi-fcoe-Make-RT-aware.patch b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch similarity index 95% rename from debian/patches-rt/0220-scsi-fcoe-Make-RT-aware.patch rename to debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch index 78d509d6e..fcddac9d8 100644 --- a/debian/patches-rt/0220-scsi-fcoe-Make-RT-aware.patch +++ b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch @@ -1,8 +1,8 @@ -From 340c12c894a65dfd465a251f6f7f795746c803a0 Mon Sep 17 00:00:00 2001 +From f9942365667b0c9170e0e87b7221705c559683d1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 12 Nov 2011 14:00:48 +0100 -Subject: [PATCH 220/328] scsi/fcoe: Make RT aware. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 219/325] scsi/fcoe: Make RT aware. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. diff --git a/debian/patches-rt/0221-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch similarity index 95% rename from debian/patches-rt/0221-x86-crypto-Reduce-preempt-disabled-regions.patch rename to debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch index c9df95ede..cdd582043 100644 --- a/debian/patches-rt/0221-x86-crypto-Reduce-preempt-disabled-regions.patch +++ b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch @@ -1,8 +1,8 @@ -From 9fcdeeff46696ee50f5a524dd11bc61aad38cfc1 Mon Sep 17 00:00:00 2001 +From 70e03d592732e45dfa91ed382404c60a03ad0202 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 14 Nov 2011 18:19:27 +0100 -Subject: [PATCH 221/328] x86: crypto: Reduce preempt disabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 220/325] x86: crypto: Reduce preempt disabled regions +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. diff --git a/debian/patches-rt/0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch similarity index 98% rename from debian/patches-rt/0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch rename to debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch index 46975b0eb..a57e89702 100644 --- a/debian/patches-rt/0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch +++ b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -1,8 +1,8 @@ -From 6cb63cbf25a36339685aae48f066fc80cbf5cd7f Mon Sep 17 00:00:00 2001 +From 54513c07d07617c245ba13e2c56c569b1d47eb4d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Feb 2014 17:24:04 +0100 -Subject: [PATCH 222/328] crypto: Reduce preempt disabled regions, more algos -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 221/325] crypto: Reduce preempt disabled regions, more algos +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Don Estabrook reported | kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() diff --git a/debian/patches-rt/0223-crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch similarity index 95% rename from debian/patches-rt/0223-crypto-limit-more-FPU-enabled-sections.patch rename to debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch index 35046d47e..26a684ba9 100644 --- a/debian/patches-rt/0223-crypto-limit-more-FPU-enabled-sections.patch +++ b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch @@ -1,11 +1,11 @@ -From c69a6e5b35d956f1788a112244952e84fc27296a Mon Sep 17 00:00:00 2001 +From 5368881693eeb89db040948e8911af5a704debb2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 30 Nov 2017 13:40:10 +0100 -Subject: [PATCH 223/328] crypto: limit more FPU-enabled sections +Subject: [PATCH 222/325] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 Those crypto drivers use SSE/AVX/… for their crypto work and in order to do so in kernel they need to enable the "FPU" in kernel mode which diff --git a/debian/patches-rt/0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch similarity index 94% rename from debian/patches-rt/0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch rename to debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch index ef40220e1..773926399 100644 --- a/debian/patches-rt/0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch +++ b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch @@ -1,9 +1,9 @@ -From 08367a7b181f94abaeb6bb4c827db639c56e8ea6 Mon Sep 17 00:00:00 2001 +From 7e78bc20913ad1e15f26623a153852802cec3da6 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 11 Jul 2018 17:14:47 +0200 -Subject: [PATCH 224/328] crypto: scompress - serialize RT percpu scratch +Subject: [PATCH 223/325] crypto: scompress - serialize RT percpu scratch buffer access with a local 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 | BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974 | in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test diff --git a/debian/patches-rt/0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch b/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch similarity index 94% rename from debian/patches-rt/0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch rename to debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch index 7f66a4f27..398fdf433 100644 --- a/debian/patches-rt/0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch +++ b/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch @@ -1,9 +1,9 @@ -From 850e714cfa9823eea1841d36cb29b28434d6ac2d Mon Sep 17 00:00:00 2001 +From 16d33551afe71fce5f6c74376d543ad66293fe9b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 18:52:00 +0200 -Subject: [PATCH 225/328] crypto: cryptd - add a lock instead +Subject: [PATCH 224/325] crypto: cryptd - add a lock instead preempt_disable/local_bh_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 cryptd has a per-CPU lock which protected with local_bh_disable() and preempt_disable(). diff --git a/debian/patches-rt/0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch similarity index 81% rename from debian/patches-rt/0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch rename to debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch index 5edfb54b3..5838bae2a 100644 --- a/debian/patches-rt/0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch +++ b/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch @@ -1,9 +1,9 @@ -From faa87d948486f3da759dc841ad7e5d983e94691a Mon Sep 17 00:00:00 2001 +From d12a028cd42d3b1e973b81f39e15641480bb9ffd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 226/328] panic: skip get_random_bytes for RT_FULL in +Subject: [PATCH 225/325] panic: skip get_random_bytes for RT_FULL in init_oops_id -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 on -RT. If this is invoked from irq-context we will have problems to acquire the sleeping lock. diff --git a/debian/patches-rt/0227-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch similarity index 92% rename from debian/patches-rt/0227-x86-stackprotector-Avoid-random-pool-on-rt.patch rename to debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch index c489cd23c..1c4e0cbdb 100644 --- a/debian/patches-rt/0227-x86-stackprotector-Avoid-random-pool-on-rt.patch +++ b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch @@ -1,8 +1,8 @@ -From fdddc5f9de75c797965fbb4c41826941313f97e3 Mon Sep 17 00:00:00 2001 +From 4e386d000be9c36e56caa970e99aea818986cbec Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Dec 2010 14:25:18 +0100 -Subject: [PATCH 227/328] x86: stackprotector: Avoid random pool on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 226/325] x86: stackprotector: Avoid random pool on rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz CPU bringup calls into the random pool to initialize the stack canary. During boot that works nicely even on RT as the might sleep diff --git a/debian/patches-rt/0228-random-Make-it-work-on-rt.patch b/debian/patches-rt/0227-random-Make-it-work-on-rt.patch similarity index 94% rename from debian/patches-rt/0228-random-Make-it-work-on-rt.patch rename to debian/patches-rt/0227-random-Make-it-work-on-rt.patch index 5d1edc657..be81504e8 100644 --- a/debian/patches-rt/0228-random-Make-it-work-on-rt.patch +++ b/debian/patches-rt/0227-random-Make-it-work-on-rt.patch @@ -1,8 +1,8 @@ -From 5f480f8b688aa96212f301664644d53b0d3a3e95 Mon Sep 17 00:00:00 2001 +From c6da6886f88cf56b43a37670ec2c12c5d0b58044 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Aug 2012 20:38:50 +0200 -Subject: [PATCH 228/328] random: Make it work on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 227/325] random: Make it work on rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Delegate the random insertion to the forced threaded interrupt handler. Store the return IP of the hard interrupt handler in the irq @@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner 7 files changed, 26 insertions(+), 10 deletions(-) diff --git a/drivers/char/random.c b/drivers/char/random.c -index 28b110cd3977..d15dd08a92e2 100644 +index d5f970d039bb..838950ff569f 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1232,28 +1232,27 @@ static __u32 get_reg(struct fast_pool *f, struct pt_regs *regs) @@ -146,10 +146,10 @@ index 38554bc35375..06a80bbf78af 100644 if (!noirqdebug) note_interrupt(desc, retval); diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index 5701774a6d71..ce86341a9e19 100644 +index 1a3cf77b11f8..9591a451e05a 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c -@@ -1110,6 +1110,12 @@ static int irq_thread(void *data) +@@ -1063,6 +1063,12 @@ static int irq_thread(void *data) if (action_ret == IRQ_WAKE_THREAD) irq_wake_secondary(desc, action); diff --git a/debian/patches-rt/0229-cpu-hotplug-Implement-CPU-pinning.patch b/debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch similarity index 95% rename from debian/patches-rt/0229-cpu-hotplug-Implement-CPU-pinning.patch rename to debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch index 5f6bc52f1..b0576a6be 100644 --- a/debian/patches-rt/0229-cpu-hotplug-Implement-CPU-pinning.patch +++ b/debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch @@ -1,8 +1,8 @@ -From cdd389d22cc7f273f3d955eeacc80bda55db5bb8 Mon Sep 17 00:00:00 2001 +From 4e82f79ed7a3629248241e307320aa1ba73aeaa2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Jul 2017 17:31:20 +0200 -Subject: [PATCH 229/328] cpu/hotplug: Implement CPU pinning -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 228/325] cpu/hotplug: Implement CPU pinning +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches-rt/0230-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch b/debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch similarity index 88% rename from debian/patches-rt/0230-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch rename to debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch index 830ecabbf..33c2b9fa4 100644 --- a/debian/patches-rt/0230-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch +++ b/debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch @@ -1,9 +1,9 @@ -From 9c0e36957da69450658952d7d76b7fe79d8e52ac Mon Sep 17 00:00:00 2001 +From 6c85c9d14af744f5849d8a712a166b3673f5d2fa Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 19 Aug 2018 08:28:35 +0200 -Subject: [PATCH 230/328] sched: Allow pinned user tasks to be awakened to the +Subject: [PATCH 229/325] sched: Allow pinned user tasks to be awakened to the CPU they pinned -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 7af443ee16976 ("sched/core: Require cpu_active() in select_task_rq(), for user tasks") select_fallback_rq() will BUG() if diff --git a/debian/patches-rt/0231-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch similarity index 94% rename from debian/patches-rt/0231-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch rename to debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch index aa970e9f0..10e1d1470 100644 --- a/debian/patches-rt/0231-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch +++ b/debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch @@ -1,8 +1,8 @@ -From 678bc8b1f66cac6073d0272788cb512333ae36a2 Mon Sep 17 00:00:00 2001 +From a7ad4f3355c842964614bdfec4ab3c08082dc074 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 18:31:00 +0200 -Subject: [PATCH 231/328] hotplug: duct-tape RT-rwlock usage for non-RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 230/325] hotplug: duct-tape RT-rwlock usage for non-RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz This type is only available on -RT. We need to craft something for non-RT. Since the only migrate_disable() user is -RT only, there is no diff --git a/debian/patches-rt/0232-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch similarity index 85% rename from debian/patches-rt/0232-net-Remove-preemption-disabling-in-netif_rx.patch rename to debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch index cd15c8bce..8ebd4beb3 100644 --- a/debian/patches-rt/0232-net-Remove-preemption-disabling-in-netif_rx.patch +++ b/debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch @@ -1,8 +1,8 @@ -From e55d9a3613381070dbd9c5e107501fb3c8b87b0b Mon Sep 17 00:00:00 2001 +From 49d2a425ffed7592c3ab05c01653311d6f2dc878 Mon Sep 17 00:00:00 2001 From: Priyanka Jain Date: Thu, 17 May 2012 09:35:11 +0530 -Subject: [PATCH 232/328] net: Remove preemption disabling in netif_rx() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 231/325] net: Remove preemption disabling in netif_rx() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by @@ -36,10 +36,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 19e2cd0897b3..935156f1c5d4 100644 +index efebf78b57b2..81174cf6bf9a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4487,7 +4487,7 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4489,7 +4489,7 @@ static int netif_rx_internal(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; @@ -48,7 +48,7 @@ index 19e2cd0897b3..935156f1c5d4 100644 rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); -@@ -4497,14 +4497,14 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4499,14 +4499,14 @@ static int netif_rx_internal(struct sk_buff *skb) ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); diff --git a/debian/patches-rt/0233-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch similarity index 91% rename from debian/patches-rt/0233-net-Another-local_irq_disable-kmalloc-headache.patch rename to debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch index 054fb779d..56306a740 100644 --- a/debian/patches-rt/0233-net-Another-local_irq_disable-kmalloc-headache.patch +++ b/debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch @@ -1,8 +1,8 @@ -From 8e642bd4b1957e712c99588e4b172ffb6ea77cad Mon Sep 17 00:00:00 2001 +From 0b7fd8c1fb0d391cbb75bf3343f4bb1aade387ad Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 26 Sep 2012 16:21:08 +0200 -Subject: [PATCH 233/328] net: Another local_irq_disable/kmalloc headache -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 232/325] net: Another local_irq_disable/kmalloc headache +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Replace it by a local lock. Though that's pretty inefficient :( diff --git a/debian/patches-rt/0234-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch similarity index 95% rename from debian/patches-rt/0234-net-core-protect-users-of-napi_alloc_cache-against-r.patch rename to debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch index 837682ea4..b74bbde4b 100644 --- a/debian/patches-rt/0234-net-core-protect-users-of-napi_alloc_cache-against-r.patch +++ b/debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch @@ -1,9 +1,9 @@ -From ad95e785998d05c5e60430c272511a05a2cf65ca Mon Sep 17 00:00:00 2001 +From 6b203654d8df14f8220b6aca13cea79eca4c401e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 15 Jan 2016 16:33:34 +0100 -Subject: [PATCH 234/328] net/core: protect users of napi_alloc_cache against +Subject: [PATCH 233/325] net/core: protect users of napi_alloc_cache against reentrance -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 code running in BH can not be moved to another CPU so CPU local variable remain local. However the code can be preempted diff --git a/debian/patches-rt/0235-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch similarity index 93% rename from debian/patches-rt/0235-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch rename to debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch index 96b9e2ee1..a8cd6ae28 100644 --- a/debian/patches-rt/0235-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch +++ b/debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch @@ -1,9 +1,9 @@ -From 36ec80a84528a6adb376007baf97560835f37d79 Mon Sep 17 00:00:00 2001 +From 6d3705f90c5a421b590ab921ceec46da6167e5a9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 28 Oct 2012 11:18:08 +0100 -Subject: [PATCH 235/328] net: netfilter: Serialize xt_write_recseq sections on +Subject: [PATCH 234/325] net: netfilter: Serialize xt_write_recseq sections 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 netfilter code relies only on the implicit semantics of local_bh_disable() for serializing wt_write_recseq sections. RT breaks diff --git a/debian/patches-rt/0236-net-Add-a-mutex-around-devnet_rename_seq.patch b/debian/patches-rt/0235-net-Add-a-mutex-around-devnet_rename_seq.patch similarity index 94% rename from debian/patches-rt/0236-net-Add-a-mutex-around-devnet_rename_seq.patch rename to debian/patches-rt/0235-net-Add-a-mutex-around-devnet_rename_seq.patch index 8d6465fff..41a7bbd32 100644 --- a/debian/patches-rt/0236-net-Add-a-mutex-around-devnet_rename_seq.patch +++ b/debian/patches-rt/0235-net-Add-a-mutex-around-devnet_rename_seq.patch @@ -1,8 +1,8 @@ -From b93f55390ad8ab8d74d16b0d67fcfdbf8be92dae Mon Sep 17 00:00:00 2001 +From 10dbf1ed93bf3b5e4708bb97a2d690135db04f70 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Mar 2013 18:06:20 +0100 -Subject: [PATCH 236/328] net: Add a mutex around devnet_rename_seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 235/325] net: Add a mutex around devnet_rename_seq +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz On RT write_seqcount_begin() disables preemption and device_rename() allocates memory with GFP_KERNEL and grabs later the sysfs_mutex @@ -22,7 +22,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 935156f1c5d4..dbd9bdffafff 100644 +index 81174cf6bf9a..be33b775565e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -196,6 +196,7 @@ static unsigned int napi_gen_id = NR_CPUS; diff --git a/debian/patches-rt/0237-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches-rt/0236-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch similarity index 93% rename from debian/patches-rt/0237-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch rename to debian/patches-rt/0236-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch index 03a79f38b..2e54589b2 100644 --- a/debian/patches-rt/0237-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +++ b/debian/patches-rt/0236-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch @@ -1,9 +1,9 @@ -From 144e32e34a0d8338cf7a1ae7cf884ed905481732 Mon Sep 17 00:00:00 2001 +From a7433e1568e592ed54f114147646a3ab23d5ce5e Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Mon, 16 Apr 2012 15:01:56 +0800 -Subject: [PATCH 237/328] lockdep: selftest: Only do hardirq context test for +Subject: [PATCH 236/325] lockdep: selftest: Only do hardirq context test for 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 On -rt there is no softirq context any more and rwlock is sleepable, disable softirq context test and rwlock+irq test. diff --git a/debian/patches-rt/0238-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/0237-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch similarity index 96% rename from debian/patches-rt/0238-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch rename to debian/patches-rt/0237-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch index fb7bcbe08..be0653bc8 100644 --- a/debian/patches-rt/0238-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +++ b/debian/patches-rt/0237-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -1,9 +1,9 @@ -From f2f9a4e47d0dc6f3817bba4c178048da4763b0c6 Mon Sep 17 00:00:00 2001 +From 17d81d48ff86eb0c073d5d52660b57dd2b6a3c4c Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Wed, 28 Jan 2015 13:08:45 -0600 -Subject: [PATCH 238/328] lockdep: selftest: fix warnings due to missing +Subject: [PATCH 237/325] lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals -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 "lockdep: Selftest: Only do hardirq context test for raw spinlock" disabled the execution of certain tests with PREEMPT_RT_FULL, but did diff --git a/debian/patches-rt/0239-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0238-sched-Add-support-for-lazy-preemption.patch similarity index 95% rename from debian/patches-rt/0239-sched-Add-support-for-lazy-preemption.patch rename to debian/patches-rt/0238-sched-Add-support-for-lazy-preemption.patch index 9f55d5b3e..bfb0cfb4a 100644 --- a/debian/patches-rt/0239-sched-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0238-sched-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From b4aa63613da31452e5bf88d2a20f1349070b9c9e Mon Sep 17 00:00:00 2001 +From 457f29371e64b1dbd2b086ba9c2a356d2606ec4a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 26 Oct 2012 18:50:54 +0100 -Subject: [PATCH 239/328] sched: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 238/325] sched: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -420,10 +420,10 @@ index 6ef0dcea94d7..a17c765d3fcb 100644 } EXPORT_SYMBOL(migrate_enable); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 27f9f9a785c1..77d991e9ba23 100644 +index fe58e95484cf..ef7dea404f26 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4091,7 +4091,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) +@@ -4104,7 +4104,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) ideal_runtime = sched_slice(cfs_rq, curr); delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime; if (delta_exec > ideal_runtime) { @@ -432,7 +432,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 /* * The current task ran long enough, ensure it doesn't get * re-elected due to buddy favours. -@@ -4115,7 +4115,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) +@@ -4128,7 +4128,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) return; if (delta > ideal_runtime) @@ -441,7 +441,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 } static void -@@ -4257,7 +4257,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued) +@@ -4270,7 +4270,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued) * validating it and just reschedule. */ if (queued) { @@ -450,7 +450,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 return; } /* -@@ -4391,7 +4391,7 @@ static void __account_cfs_rq_runtime(struct cfs_rq *cfs_rq, u64 delta_exec) +@@ -4404,7 +4404,7 @@ static void __account_cfs_rq_runtime(struct cfs_rq *cfs_rq, u64 delta_exec) * hierarchy can be throttled */ if (!assign_cfs_rq_runtime(cfs_rq) && likely(cfs_rq->curr)) @@ -459,7 +459,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 } static __always_inline -@@ -5091,7 +5091,7 @@ static void hrtick_start_fair(struct rq *rq, struct task_struct *p) +@@ -5112,7 +5112,7 @@ static void hrtick_start_fair(struct rq *rq, struct task_struct *p) if (delta < 0) { if (rq->curr == p) @@ -468,7 +468,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 return; } hrtick_start(rq, delta); -@@ -6684,7 +6684,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ +@@ -6705,7 +6705,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ return; preempt: @@ -477,7 +477,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 /* * Only set the backward buddy when the current task is still * on the rq. This can happen when a wakeup gets interleaved -@@ -9785,7 +9785,7 @@ static void task_fork_fair(struct task_struct *p) +@@ -9826,7 +9826,7 @@ static void task_fork_fair(struct task_struct *p) * 'current' within the tree based on its new key value. */ swap(curr->vruntime, se->vruntime); @@ -486,7 +486,7 @@ index 27f9f9a785c1..77d991e9ba23 100644 } se->vruntime -= cfs_rq->min_vruntime; -@@ -9809,7 +9809,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio) +@@ -9850,7 +9850,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio) */ if (rq->curr == p) { if (p->prio > oldprio) @@ -530,10 +530,10 @@ index c79e32488940..c90574112bca 100644 extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 5eccf1c201db..d13b58073bce 100644 +index 1fac8a2de78f..89d54ed4f9a7 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2137,6 +2137,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, +@@ -2139,6 +2139,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, struct task_struct *tsk = current; entry->preempt_count = pc & 0xff; @@ -541,7 +541,7 @@ index 5eccf1c201db..d13b58073bce 100644 entry->pid = (tsk) ? tsk->pid : 0; entry->flags = #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT -@@ -2147,7 +2148,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, +@@ -2149,7 +2150,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, ((pc & NMI_MASK ) ? TRACE_FLAG_NMI : 0) | ((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) | ((pc & SOFTIRQ_OFFSET) ? TRACE_FLAG_SOFTIRQ : 0) | @@ -551,7 +551,7 @@ index 5eccf1c201db..d13b58073bce 100644 (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0); entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0; -@@ -3349,15 +3351,17 @@ get_total_entries(struct trace_buffer *buf, +@@ -3351,15 +3353,17 @@ get_total_entries(struct trace_buffer *buf, static void print_lat_help_header(struct seq_file *m) { @@ -578,7 +578,7 @@ index 5eccf1c201db..d13b58073bce 100644 } static void print_event_info(struct trace_buffer *buf, struct seq_file *m) -@@ -3395,15 +3399,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file +@@ -3397,15 +3401,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file tgid ? tgid_space : space); seq_printf(m, "# %s / _----=> need-resched\n", tgid ? tgid_space : space); diff --git a/debian/patches-rt/0240-ftrace-Fix-trace-header-alignment.patch b/debian/patches-rt/0239-ftrace-Fix-trace-header-alignment.patch similarity index 89% rename from debian/patches-rt/0240-ftrace-Fix-trace-header-alignment.patch rename to debian/patches-rt/0239-ftrace-Fix-trace-header-alignment.patch index bd46249dc..9e4c1bf58 100644 --- a/debian/patches-rt/0240-ftrace-Fix-trace-header-alignment.patch +++ b/debian/patches-rt/0239-ftrace-Fix-trace-header-alignment.patch @@ -1,8 +1,8 @@ -From 9f97e04e5ea92015801bab08af99228bbe2f4085 Mon Sep 17 00:00:00 2001 +From 64b09bacabda019a04a3a3186650578b7a6c9ea6 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 16 Oct 2016 05:08:30 +0200 -Subject: [PATCH 240/328] ftrace: Fix trace header alignment -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 239/325] ftrace: Fix trace header alignment +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Line up helper arrows to the right column. @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index d13b58073bce..99dde9db6e3e 100644 +index 89d54ed4f9a7..1d7fc29ac791 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -3351,17 +3351,17 @@ get_total_entries(struct trace_buffer *buf, +@@ -3353,17 +3353,17 @@ get_total_entries(struct trace_buffer *buf, static void print_lat_help_header(struct seq_file *m) { diff --git a/debian/patches-rt/0241-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0240-x86-Support-for-lazy-preemption.patch similarity index 97% rename from debian/patches-rt/0241-x86-Support-for-lazy-preemption.patch rename to debian/patches-rt/0240-x86-Support-for-lazy-preemption.patch index 601724248..bc03b6787 100644 --- a/debian/patches-rt/0241-x86-Support-for-lazy-preemption.patch +++ b/debian/patches-rt/0240-x86-Support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 963f0a5965bbcac189d89f4501cdd7a26bd823df Mon Sep 17 00:00:00 2001 +From 4568f5dff51999abb9a5d5714f7989d5fe3896dd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 11:03:47 +0100 -Subject: [PATCH 241/328] x86: Support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 240/325] x86: Support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Implement the x86 pieces for lazy preempt. diff --git a/debian/patches-rt/0242-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0241-x86-lazy-preempt-properly-check-against-preempt-mask.patch similarity index 86% rename from debian/patches-rt/0242-x86-lazy-preempt-properly-check-against-preempt-mask.patch rename to debian/patches-rt/0241-x86-lazy-preempt-properly-check-against-preempt-mask.patch index 9c6b21747..f2b3501a6 100644 --- a/debian/patches-rt/0242-x86-lazy-preempt-properly-check-against-preempt-mask.patch +++ b/debian/patches-rt/0241-x86-lazy-preempt-properly-check-against-preempt-mask.patch @@ -1,9 +1,9 @@ -From 9e04eb54c312d0436d51e83306de05517b13d458 Mon Sep 17 00:00:00 2001 +From be6b5fb800c318f640ab6ec8eb4d73e6e66eaf40 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 18 Feb 2019 16:57:09 +0100 -Subject: [PATCH 242/328] x86: lazy-preempt: properly check against +Subject: [PATCH 241/325] x86: lazy-preempt: properly check against preempt-mask -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 should_resched() should check against preempt_offset after unmasking the need-resched-bit. Otherwise should_resched() won't work for diff --git a/debian/patches-rt/0243-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch b/debian/patches-rt/0242-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch similarity index 89% rename from debian/patches-rt/0243-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch rename to debian/patches-rt/0242-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch index 7c7afce4b..46d6c907b 100644 --- a/debian/patches-rt/0243-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch +++ b/debian/patches-rt/0242-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch @@ -1,9 +1,9 @@ -From 95f51ccaa646d290d44e1c6a6fece8cebcce7f82 Mon Sep 17 00:00:00 2001 +From 8ffe4b93b950bae866bc4ea9089408f5b8328d5b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Feb 2019 14:53:49 +0100 -Subject: [PATCH 243/328] x86: lazy-preempt: use proper return label on +Subject: [PATCH 242/325] x86: lazy-preempt: use proper return label on 32bit-x86 -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 lazy-preempt uses the wrong return label in case preemption isn't possible. This results crash while returning to the kernel. diff --git a/debian/patches-rt/0244-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0243-arm-Add-support-for-lazy-preemption.patch similarity index 97% rename from debian/patches-rt/0244-arm-Add-support-for-lazy-preemption.patch rename to debian/patches-rt/0243-arm-Add-support-for-lazy-preemption.patch index 7cf567061..7f2ac7827 100644 --- a/debian/patches-rt/0244-arm-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0243-arm-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 36713bb8882eef3bd06bc3de88d56fcaa0d968c8 Mon Sep 17 00:00:00 2001 +From 43660867519b464d2fe3cda84c73f92020f2bf96 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 31 Oct 2012 12:04:11 +0100 -Subject: [PATCH 244/328] arm: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 243/325] arm: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Implement the arm pieces for lazy preempt. diff --git a/debian/patches-rt/0245-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0244-powerpc-Add-support-for-lazy-preemption.patch similarity index 97% rename from debian/patches-rt/0245-powerpc-Add-support-for-lazy-preemption.patch rename to debian/patches-rt/0244-powerpc-Add-support-for-lazy-preemption.patch index 91ad65d33..5d5642f33 100644 --- a/debian/patches-rt/0245-powerpc-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0244-powerpc-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From e02242904650a778f562757a77e406336000d790 Mon Sep 17 00:00:00 2001 +From 8e284ba9115056adda44a911dffce7bfa383fb6a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 10:14:11 +0100 -Subject: [PATCH 245/328] powerpc: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 244/325] powerpc: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Implement the powerpc pieces for lazy preempt. diff --git a/debian/patches-rt/0246-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0245-arch-arm64-Add-lazy-preempt-support.patch similarity index 97% rename from debian/patches-rt/0246-arch-arm64-Add-lazy-preempt-support.patch rename to debian/patches-rt/0245-arch-arm64-Add-lazy-preempt-support.patch index 498906a10..998a30032 100644 --- a/debian/patches-rt/0246-arch-arm64-Add-lazy-preempt-support.patch +++ b/debian/patches-rt/0245-arch-arm64-Add-lazy-preempt-support.patch @@ -1,8 +1,8 @@ -From c5e73ec6d12a2a6a7b3da8b83afdd210570489c7 Mon Sep 17 00:00:00 2001 +From 3dfd8be63b6736541e2c6c0decab854778573c65 Mon Sep 17 00:00:00 2001 From: Anders Roxell Date: Thu, 14 May 2015 17:52:17 +0200 -Subject: [PATCH 246/328] arch/arm64: Add lazy preempt support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 245/325] arch/arm64: Add lazy preempt support +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz arm64 is missing support for PREEMPT_RT. The main feature which is lacking is support for lazy preemption. The arch-specific entry code, diff --git a/debian/patches-rt/0247-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches-rt/0246-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch similarity index 94% rename from debian/patches-rt/0247-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch rename to debian/patches-rt/0246-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch index 996113f88..3261221ed 100644 --- a/debian/patches-rt/0247-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +++ b/debian/patches-rt/0246-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch @@ -1,9 +1,9 @@ -From 8d0546a63b1afa99131c556d9f273f8865eaf480 Mon Sep 17 00:00:00 2001 +From 1eed9b912ffd15cfa4b21eed03047caa1a342793 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 16 Oct 2016 05:11:54 +0200 -Subject: [PATCH 247/328] connector/cn_proc: Protect send_msg() with a local +Subject: [PATCH 246/325] connector/cn_proc: Protect send_msg() with a local lock 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 |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 |in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep diff --git a/debian/patches-rt/0248-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/0247-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch similarity index 94% rename from debian/patches-rt/0248-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch rename to debian/patches-rt/0247-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch index 3faa65d19..308e3c380 100644 --- a/debian/patches-rt/0248-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +++ b/debian/patches-rt/0247-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -1,9 +1,9 @@ -From 50ea98cbb28042ef353cdb79d52d70d051d45c50 Mon Sep 17 00:00:00 2001 +From a7c2fa6469af6930d216847445366a31e578c551 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 31 Mar 2016 04:08:28 +0200 -Subject: [PATCH 248/328] drivers/block/zram: Replace bit spinlocks with +Subject: [PATCH 247/325] drivers/block/zram: Replace bit spinlocks with rtmutex 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 They're nondeterministic, and lead to ___might_sleep() splats in -rt. OTOH, they're a lot less wasteful than an rtmutex per page. diff --git a/debian/patches-rt/0249-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches-rt/0248-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch similarity index 95% rename from debian/patches-rt/0249-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch rename to debian/patches-rt/0248-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch index 782912e84..0928ea5ee 100644 --- a/debian/patches-rt/0249-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +++ b/debian/patches-rt/0248-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch @@ -1,9 +1,9 @@ -From 88b91a35eb7f80af3482c12cfcb4ceebca3a88d8 Mon Sep 17 00:00:00 2001 +From 0df868e81dab3ab27436db83c1c4450762e18732 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 20 Oct 2016 11:15:22 +0200 -Subject: [PATCH 249/328] drivers/zram: Don't disable preemption in +Subject: [PATCH 248/325] drivers/zram: Don't disable preemption in zcomp_stream_get/put() -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 v4.7, the driver switched to percpu compression streams, disabling preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We diff --git a/debian/patches-rt/0250-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/debian/patches-rt/0249-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch similarity index 89% rename from debian/patches-rt/0250-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch rename to debian/patches-rt/0249-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch index a37d5d0ef..f697465da 100644 --- a/debian/patches-rt/0250-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch +++ b/debian/patches-rt/0249-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch @@ -1,9 +1,9 @@ -From 4423c47dc0bff765fc58fb223ef9d4cd3b23c634 Mon Sep 17 00:00:00 2001 +From 44c6e90b8eb58224617f979562d4614543ec3df1 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 23 Aug 2017 11:57:29 +0200 -Subject: [PATCH 250/328] drivers/zram: fix zcomp_stream_get() +Subject: [PATCH 249/325] drivers/zram: fix zcomp_stream_get() smp_processor_id() use in preemptible code -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 get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding smp_processor_id() in preemptible code. diff --git a/debian/patches-rt/0251-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0250-tpm_tis-fix-stall-after-iowrite-s.patch similarity index 94% rename from debian/patches-rt/0251-tpm_tis-fix-stall-after-iowrite-s.patch rename to debian/patches-rt/0250-tpm_tis-fix-stall-after-iowrite-s.patch index bd709b51c..027838e84 100644 --- a/debian/patches-rt/0251-tpm_tis-fix-stall-after-iowrite-s.patch +++ b/debian/patches-rt/0250-tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,8 +1,8 @@ -From fb812057ed5c5dbdbdd983f9d261dcce58bc7376 Mon Sep 17 00:00:00 2001 +From 2fd4af0cf67e67ff4d6de0cd2302ebf9729c03a9 Mon Sep 17 00:00:00 2001 From: Haris Okanovic Date: Tue, 15 Aug 2017 15:13:08 -0500 -Subject: [PATCH 251/328] tpm_tis: fix stall after iowrite*()s -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 250/325] tpm_tis: fix stall after iowrite*()s +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. diff --git a/debian/patches-rt/0252-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/0251-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch similarity index 95% rename from debian/patches-rt/0252-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch rename to debian/patches-rt/0251-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch index 91937dff3..f9947ff3f 100644 --- a/debian/patches-rt/0252-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch +++ b/debian/patches-rt/0251-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch @@ -1,8 +1,8 @@ -From e0da41ef4940b26cb433c9598a4940e2476d3dbe Mon Sep 17 00:00:00 2001 +From fb131ef07b6163f19997356ad5267dc46fbe0514 Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Fri, 28 Sep 2018 21:03:51 +0000 -Subject: [PATCH 252/328] watchdog: prevent deferral of watchdogd wakeup on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 251/325] watchdog: prevent deferral of watchdogd wakeup on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz When PREEMPT_RT_FULL is enabled, all hrtimer expiry functions are deferred for execution into the context of ktimersoftd unless otherwise diff --git a/debian/patches-rt/0253-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches-rt/0252-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch similarity index 93% rename from debian/patches-rt/0253-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch rename to debian/patches-rt/0252-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch index ef9d05954..2a8294928 100644 --- a/debian/patches-rt/0253-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +++ b/debian/patches-rt/0252-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch @@ -1,9 +1,9 @@ -From e3f6a9293311449cca5306673eae21802410ed18 Mon Sep 17 00:00:00 2001 +From fa2aaf043441bd422f017ee044eec3e113cc18b9 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 08:09:11 +0100 -Subject: [PATCH 253/328] drm,radeon,i915: Use preempt_disable/enable_rt() +Subject: [PATCH 252/325] drm,radeon,i915: Use preempt_disable/enable_rt() where recommended -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 DRM folks identified the spots, so use them. diff --git a/debian/patches-rt/0254-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/debian/patches-rt/0253-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch similarity index 97% rename from debian/patches-rt/0254-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch rename to debian/patches-rt/0253-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch index 14670b654..45c48e14d 100644 --- a/debian/patches-rt/0254-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch +++ b/debian/patches-rt/0253-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch @@ -1,9 +1,9 @@ -From ae86e298bae75579cf4bc0009251aad847d4d4a2 Mon Sep 17 00:00:00 2001 +From c034b59f5f74a92a5f458798943b0d403ec9b6fb Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 09:01:42 +0100 -Subject: [PATCH 254/328] drm,i915: Use local_lock/unlock_irq() in +Subject: [PATCH 253/325] drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() -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 [ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918 [ 8.014041] in_atomic(): 0, irqs_disabled(): 1, pid: 78, name: kworker/u4:4 diff --git a/debian/patches-rt/0255-drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/0254-drm-i915-disable-tracing-on-RT.patch similarity index 90% rename from debian/patches-rt/0255-drm-i915-disable-tracing-on-RT.patch rename to debian/patches-rt/0254-drm-i915-disable-tracing-on-RT.patch index 913d41db2..e632caa7e 100644 --- a/debian/patches-rt/0255-drm-i915-disable-tracing-on-RT.patch +++ b/debian/patches-rt/0254-drm-i915-disable-tracing-on-RT.patch @@ -1,8 +1,8 @@ -From 3aed1fe6522f79b259e8106ff18e0c8324020675 Mon Sep 17 00:00:00 2001 +From b1e8ce0ff9f46bde59b57c93c8ead49803e285b6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 09:52:20 +0100 -Subject: [PATCH 255/328] drm/i915: disable tracing on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 254/325] drm/i915: disable tracing on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 diff --git a/debian/patches-rt/0256-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0255-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch similarity index 87% rename from debian/patches-rt/0256-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch rename to debian/patches-rt/0255-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index 7fc47f304..0aecef1c4 100644 --- a/debian/patches-rt/0256-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/debian/patches-rt/0255-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -1,9 +1,9 @@ -From 3d4557d91951a9964b97c806777b13cca8e11dee Mon Sep 17 00:00:00 2001 +From bca71bc9e1a90a3042f05c97da73dfb6320032d6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 19 Dec 2018 10:47:02 +0100 -Subject: [PATCH 256/328] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with +Subject: [PATCH 255/325] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -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 order of the header files is important. If this header file is included after tracepoint.h was included then the NOTRACE here becomes a diff --git a/debian/patches-rt/0257-cgroups-use-simple-wait-in-css_release.patch b/debian/patches-rt/0256-cgroups-use-simple-wait-in-css_release.patch similarity index 89% rename from debian/patches-rt/0257-cgroups-use-simple-wait-in-css_release.patch rename to debian/patches-rt/0256-cgroups-use-simple-wait-in-css_release.patch index 031ece3ba..964521092 100644 --- a/debian/patches-rt/0257-cgroups-use-simple-wait-in-css_release.patch +++ b/debian/patches-rt/0256-cgroups-use-simple-wait-in-css_release.patch @@ -1,8 +1,8 @@ -From 33ef8c81b2c33d47247da6b0b5d534c41dd7359a Mon Sep 17 00:00:00 2001 +From 299712e35cd293828bfac75868a4306a17ac365d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 13 Feb 2015 15:52:24 +0100 -Subject: [PATCH 257/328] cgroups: use simple wait in css_release() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 256/325] cgroups: use simple wait in css_release() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz To avoid: |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 @@ -55,10 +55,10 @@ index a01ebb630abc..34fb541e90be 100644 /* diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c -index 08bd40d90066..aceac97f78f4 100644 +index 877ba6dacca8..97ff80283248 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c -@@ -4667,10 +4667,10 @@ static void css_free_rwork_fn(struct work_struct *work) +@@ -4680,10 +4680,10 @@ static void css_free_rwork_fn(struct work_struct *work) } } @@ -71,7 +71,7 @@ index 08bd40d90066..aceac97f78f4 100644 struct cgroup_subsys *ss = css->ss; struct cgroup *cgrp = css->cgroup; -@@ -4732,8 +4732,8 @@ static void css_release(struct percpu_ref *ref) +@@ -4745,8 +4745,8 @@ static void css_release(struct percpu_ref *ref) struct cgroup_subsys_state *css = container_of(ref, struct cgroup_subsys_state, refcnt); @@ -82,7 +82,7 @@ index 08bd40d90066..aceac97f78f4 100644 } static void init_and_link_css(struct cgroup_subsys_state *css, -@@ -5459,6 +5459,7 @@ static int __init cgroup_wq_init(void) +@@ -5472,6 +5472,7 @@ static int __init cgroup_wq_init(void) */ cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1); BUG_ON(!cgroup_destroy_wq); diff --git a/debian/patches-rt/0258-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0257-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch similarity index 98% rename from debian/patches-rt/0258-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch rename to debian/patches-rt/0257-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch index a30ded87d..5bb45e41b 100644 --- a/debian/patches-rt/0258-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0257-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From 86e3ee73627056c1c97053b2201b942bfad09b26 Mon Sep 17 00:00:00 2001 +From fc0fb050aa602ebda16444e1860d24f585ccb2e9 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 8 Jan 2017 09:32:25 +0100 -Subject: [PATCH 258/328] cpuset: Convert callback_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 +Subject: [PATCH 257/325] cpuset: Convert callback_lock to raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz The two commits below add up to a cpuset might_sleep() splat for RT: diff --git a/debian/patches-rt/0259-apparmor-use-a-locallock-instead-preempt_disable.patch b/debian/patches-rt/0258-apparmor-use-a-locallock-instead-preempt_disable.patch similarity index 94% rename from debian/patches-rt/0259-apparmor-use-a-locallock-instead-preempt_disable.patch rename to debian/patches-rt/0258-apparmor-use-a-locallock-instead-preempt_disable.patch index 41cf3d511..738418766 100644 --- a/debian/patches-rt/0259-apparmor-use-a-locallock-instead-preempt_disable.patch +++ b/debian/patches-rt/0258-apparmor-use-a-locallock-instead-preempt_disable.patch @@ -1,8 +1,8 @@ -From 7d1cc83845fbfeae6cbe51a05849c8934e40bc56 Mon Sep 17 00:00:00 2001 +From 59bd47021b903cbbfbead935035e188e9bf01ef4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 11 Oct 2017 17:43:49 +0200 -Subject: [PATCH 259/328] apparmor: use a locallock instead preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 258/325] apparmor: use a locallock instead preempt_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz get_buffers() disables preemption which acts as a lock for the per-CPU variable. Since we can't disable preemption here on RT, a local_lock is diff --git a/debian/patches-rt/0260-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches-rt/0259-workqueue-Prevent-deadlock-stall-on-RT.patch similarity index 94% rename from debian/patches-rt/0260-workqueue-Prevent-deadlock-stall-on-RT.patch rename to debian/patches-rt/0259-workqueue-Prevent-deadlock-stall-on-RT.patch index 4ca6b23dd..9a0133bcc 100644 --- a/debian/patches-rt/0260-workqueue-Prevent-deadlock-stall-on-RT.patch +++ b/debian/patches-rt/0259-workqueue-Prevent-deadlock-stall-on-RT.patch @@ -1,8 +1,8 @@ -From 3a793fb8d0b6d6f02988068bdba2a88b42d6c9c7 Mon Sep 17 00:00:00 2001 +From 2d869f40619ff62322b415c543fcb325846fe261 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 27 Jun 2014 16:24:52 +0200 -Subject: [PATCH 260/328] workqueue: Prevent deadlock/stall on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 259/325] workqueue: Prevent deadlock/stall on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Austin reported a XFS deadlock/stall on RT where scheduled work gets never exececuted and tasks are waiting for each other for ever. @@ -68,7 +68,7 @@ index a17c765d3fcb..cfde725e1017 100644 * If we are going to sleep and we have plugged IO queued, * make sure to submit it to avoid deadlocks. diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 045b82ca0eb5..714d0cfe4d56 100644 +index 77ae44a1a9ee..9c10264d2679 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -125,6 +125,11 @@ enum { @@ -172,7 +172,7 @@ index 045b82ca0eb5..714d0cfe4d56 100644 } /** -@@ -1675,7 +1703,9 @@ static void worker_enter_idle(struct worker *worker) +@@ -1677,7 +1705,9 @@ static void worker_enter_idle(struct worker *worker) worker->last_active = jiffies; /* idle_list is LIFO */ @@ -182,7 +182,7 @@ index 045b82ca0eb5..714d0cfe4d56 100644 if (too_many_workers(pool) && !timer_pending(&pool->idle_timer)) mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT); -@@ -1708,7 +1738,9 @@ static void worker_leave_idle(struct worker *worker) +@@ -1710,7 +1740,9 @@ static void worker_leave_idle(struct worker *worker) return; worker_clr_flags(worker, WORKER_IDLE); pool->nr_idle--; @@ -192,7 +192,7 @@ index 045b82ca0eb5..714d0cfe4d56 100644 } static struct worker *alloc_worker(int node) -@@ -1876,7 +1908,9 @@ static void destroy_worker(struct worker *worker) +@@ -1878,7 +1910,9 @@ static void destroy_worker(struct worker *worker) pool->nr_workers--; pool->nr_idle--; diff --git a/debian/patches-rt/0261-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/0260-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch similarity index 75% rename from debian/patches-rt/0261-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch rename to debian/patches-rt/0260-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch index 3291744f4..3e6e803e3 100644 --- a/debian/patches-rt/0261-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/debian/patches-rt/0260-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,8 +1,8 @@ -From e35585fe22932e9eb9cf60dc1080b05935cc99ce Mon Sep 17 00:00:00 2001 +From 1bbb897c03f7cb3649001d6235621c4097871d52 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:56 -0500 -Subject: [PATCH 261/328] signals: Allow rt tasks to cache one sigqueue struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 260/325] signals: Allow rt tasks to cache one sigqueue struct +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. @@ -16,9 +16,11 @@ Signed-off-by: Thomas Gleixner kernel/signal.c | 69 +++++++++++++++++++++++++++++++++++++++--- 5 files changed, 70 insertions(+), 5 deletions(-) +diff --git a/include/linux/sched.h b/include/linux/sched.h +index a8ebd49c4f96..854a6cb456af 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h -@@ -895,6 +895,8 @@ +@@ -895,6 +895,8 @@ struct task_struct { /* Signal handlers: */ struct signal_struct *signal; struct sighand_struct *sighand; @@ -27,9 +29,11 @@ Signed-off-by: Thomas Gleixner sigset_t blocked; sigset_t real_blocked; /* Restored if set_restore_sigmask() was used: */ +diff --git a/include/linux/signal.h b/include/linux/signal.h +index 0be5ce2375cb..6495fda18c2c 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h -@@ -245,6 +245,7 @@ +@@ -245,6 +245,7 @@ static inline void init_sigpending(struct sigpending *sig) } extern void flush_sigqueue(struct sigpending *queue); @@ -37,9 +41,11 @@ Signed-off-by: Thomas Gleixner /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */ static inline int valid_signal(unsigned long sig) +diff --git a/kernel/exit.c b/kernel/exit.c +index 54c3269b8dda..c66f21193cf1 100644 --- a/kernel/exit.c +++ b/kernel/exit.c -@@ -160,7 +160,7 @@ +@@ -160,7 +160,7 @@ static void __exit_signal(struct task_struct *tsk) * Do this under ->siglock, we can race with another thread * doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals. */ @@ -48,9 +54,11 @@ Signed-off-by: Thomas Gleixner tsk->sighand = NULL; spin_unlock(&sighand->siglock); +diff --git a/kernel/fork.c b/kernel/fork.c +index ecec0f8bef7e..234e0ca9a74b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -1842,6 +1842,7 @@ +@@ -1832,6 +1832,7 @@ static __latent_entropy struct task_struct *copy_process( spin_lock_init(&p->alloc_lock); init_sigpending(&p->pending); @@ -58,6 +66,8 @@ Signed-off-by: Thomas Gleixner p->utime = p->stime = p->gtime = 0; #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME +diff --git a/kernel/signal.c b/kernel/signal.c +index d1fa3c405784..5c04f2891487 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -19,6 +19,7 @@ @@ -68,7 +78,7 @@ Signed-off-by: Thomas Gleixner #include #include #include -@@ -397,13 +398,30 @@ +@@ -397,13 +398,30 @@ void task_join_group_stop(struct task_struct *task) } } @@ -100,7 +110,7 @@ Signed-off-by: Thomas Gleixner { struct sigqueue *q = NULL; struct user_struct *user; -@@ -425,7 +443,10 @@ +@@ -425,7 +443,10 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi rcu_read_unlock(); if (override_rlimit || likely(sigpending <= task_rlimit(t, RLIMIT_SIGPENDING))) { @@ -112,7 +122,7 @@ Signed-off-by: Thomas Gleixner } else { print_dropped_signal(sig); } -@@ -442,6 +463,13 @@ +@@ -442,6 +463,13 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi return q; } @@ -126,7 +136,7 @@ Signed-off-by: Thomas Gleixner static void __sigqueue_free(struct sigqueue *q) { if (q->flags & SIGQUEUE_PREALLOC) -@@ -451,6 +479,21 @@ +@@ -451,6 +479,21 @@ static void __sigqueue_free(struct sigqueue *q) kmem_cache_free(sigqueue_cachep, q); } @@ -148,10 +158,11 @@ Signed-off-by: Thomas Gleixner void flush_sigqueue(struct sigpending *queue) { struct sigqueue *q; -@@ -464,6 +507,21 @@ +@@ -463,6 +506,21 @@ void flush_sigqueue(struct sigpending *queue) + } } - /* ++/* + * Called from __exit_signal. Flush tsk->pending and + * tsk->sigqueue_cache + */ @@ -166,11 +177,10 @@ Signed-off-by: Thomas Gleixner + kmem_cache_free(sigqueue_cachep, q); +} + -+/* + /* * Flush all pending signals for this kthread. */ - void flush_signals(struct task_struct *t) -@@ -586,7 +644,7 @@ +@@ -586,7 +644,7 @@ static void collect_signal(int sig, struct sigpending *list, siginfo_t *info, (info->si_code == SI_TIMER) && (info->si_sys_private); @@ -179,7 +189,7 @@ Signed-off-by: Thomas Gleixner } else { /* * Ok, it wasn't in the queue. This must be -@@ -623,6 +681,8 @@ +@@ -623,6 +681,8 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) bool resched_timer = false; int signr; @@ -188,7 +198,7 @@ Signed-off-by: Thomas Gleixner /* We only dequeue private signals from ourselves, we don't let * signalfd steal them */ -@@ -1762,7 +1822,8 @@ +@@ -1761,7 +1821,8 @@ EXPORT_SYMBOL(kill_pid); */ struct sigqueue *sigqueue_alloc(void) { @@ -198,3 +208,6 @@ Signed-off-by: Thomas Gleixner if (q) q->flags |= SIGQUEUE_PREALLOC; +-- +2.25.1 + diff --git a/debian/patches-rt/0262-Add-localversion-for-RT-release.patch b/debian/patches-rt/0261-Add-localversion-for-RT-release.patch similarity index 74% rename from debian/patches-rt/0262-Add-localversion-for-RT-release.patch rename to debian/patches-rt/0261-Add-localversion-for-RT-release.patch index 5ef481432..bd5275339 100644 --- a/debian/patches-rt/0262-Add-localversion-for-RT-release.patch +++ b/debian/patches-rt/0261-Add-localversion-for-RT-release.patch @@ -1,8 +1,8 @@ -From ae23509557da3f7ee876249340937db31d277915 Mon Sep 17 00:00:00 2001 +From 1bda071743a7670613cfe289a43ac9db4d6648cc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 -Subject: [PATCH 262/328] Add localversion for -RT release -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 261/325] Add localversion for -RT release +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches-rt/0263-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/debian/patches-rt/0262-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch similarity index 95% rename from debian/patches-rt/0263-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch rename to debian/patches-rt/0262-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch index b7103c7f4..4861f9943 100644 --- a/debian/patches-rt/0263-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch +++ b/debian/patches-rt/0262-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch @@ -1,9 +1,9 @@ -From b84964140e4a5f15b5710e2ddd99a6560411542d Mon Sep 17 00:00:00 2001 +From 1038e9afab3fe09ade4404d6185b1ab081594593 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:54 +0100 -Subject: [PATCH 263/328] powerpc/pseries/iommu: Use a locallock instead +Subject: [PATCH 262/325] powerpc/pseries/iommu: Use a locallock instead 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 locallock protects the per-CPU variable tce_page. The function attempts to allocate memory while tce_page is protected (by disabling diff --git a/debian/patches-rt/0264-powerpc-reshuffle-TIF-bits.patch b/debian/patches-rt/0263-powerpc-reshuffle-TIF-bits.patch similarity index 97% rename from debian/patches-rt/0264-powerpc-reshuffle-TIF-bits.patch rename to debian/patches-rt/0263-powerpc-reshuffle-TIF-bits.patch index fea93bf5b..858ba7cfb 100644 --- a/debian/patches-rt/0264-powerpc-reshuffle-TIF-bits.patch +++ b/debian/patches-rt/0263-powerpc-reshuffle-TIF-bits.patch @@ -1,8 +1,8 @@ -From a42bc60446357a00c18c446a7600b5b7fd090069 Mon Sep 17 00:00:00 2001 +From 88b8c212455534d5cda58f57dd35faa8ce864011 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 22 Mar 2019 17:15:58 +0100 -Subject: [PATCH 264/328] powerpc: reshuffle TIF bits -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 263/325] powerpc: reshuffle TIF bits +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Powerpc32/64 does not compile because TIF_SYSCALL_TRACE's bit is higher than 15 and the assembly instructions don't expect that. diff --git a/debian/patches-rt/0265-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0264-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch similarity index 91% rename from debian/patches-rt/0265-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch rename to debian/patches-rt/0264-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch index 333c049ec..0a4243b50 100644 --- a/debian/patches-rt/0265-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0264-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From ee919711fd01ec12c0d389243a78631d57c83e60 Mon Sep 17 00:00:00 2001 +From 11cc64f8488856ca21bd2ce62502060ffc5cea52 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Wed, 13 Mar 2019 11:40:34 +0000 -Subject: [PATCH 265/328] tty/sysrq: Convert show_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 +Subject: [PATCH 264/325] tty/sysrq: Convert show_lock to raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Systems which don't provide arch_trigger_cpumask_backtrace() will invoke showacpu() from a smp_call_function() function which is invoked @@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c -index 06ed20dd01ba..627517ad55bf 100644 +index cee0274806c5..f785ca55fb85 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c @@ -215,7 +215,7 @@ static struct sysrq_key_op sysrq_showlocks_op = { diff --git a/debian/patches-rt/0266-drm-i915-Don-t-disable-interrupts-independently-of-t.patch b/debian/patches-rt/0265-drm-i915-Don-t-disable-interrupts-independently-of-t.patch similarity index 91% rename from debian/patches-rt/0266-drm-i915-Don-t-disable-interrupts-independently-of-t.patch rename to debian/patches-rt/0265-drm-i915-Don-t-disable-interrupts-independently-of-t.patch index 5d2404446..d0348d75d 100644 --- a/debian/patches-rt/0266-drm-i915-Don-t-disable-interrupts-independently-of-t.patch +++ b/debian/patches-rt/0265-drm-i915-Don-t-disable-interrupts-independently-of-t.patch @@ -1,9 +1,9 @@ -From ed7f01fba8a5fbc0d32f5bab0fa3fca250530999 Mon Sep 17 00:00:00 2001 +From 0a78b08d39369e6a8d6092e1e5f1fdb7baf61dbc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 10 Apr 2019 11:01:37 +0200 -Subject: [PATCH 266/328] drm/i915: Don't disable interrupts independently of +Subject: [PATCH 265/325] drm/i915: Don't disable interrupts independently of the 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 locks (timeline->lock and rq->lock) need to be taken with disabled interrupts. This is done in __retire_engine_request() by disabling the diff --git a/debian/patches-rt/0267-sched-completion-Fix-a-lockup-in-wait_for_completion.patch b/debian/patches-rt/0266-sched-completion-Fix-a-lockup-in-wait_for_completion.patch similarity index 93% rename from debian/patches-rt/0267-sched-completion-Fix-a-lockup-in-wait_for_completion.patch rename to debian/patches-rt/0266-sched-completion-Fix-a-lockup-in-wait_for_completion.patch index cc7886783..f53718ca0 100644 --- a/debian/patches-rt/0267-sched-completion-Fix-a-lockup-in-wait_for_completion.patch +++ b/debian/patches-rt/0266-sched-completion-Fix-a-lockup-in-wait_for_completion.patch @@ -1,9 +1,9 @@ -From 62aaf2e45d6bc981cec8335fd58bfe5216343cce Mon Sep 17 00:00:00 2001 +From 03e061f70cacf8cd22a7d1bc073f9b70e5b85c71 Mon Sep 17 00:00:00 2001 From: Corey Minyard Date: Thu, 9 May 2019 14:33:20 -0500 -Subject: [PATCH 267/328] sched/completion: Fix a lockup in +Subject: [PATCH 266/325] sched/completion: Fix a lockup in wait_for_completion() -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 Consider following race: diff --git a/debian/patches-rt/0268-kthread-add-a-global-worker-thread.patch b/debian/patches-rt/0267-kthread-add-a-global-worker-thread.patch similarity index 97% rename from debian/patches-rt/0268-kthread-add-a-global-worker-thread.patch rename to debian/patches-rt/0267-kthread-add-a-global-worker-thread.patch index b89518787..9bdc9cea9 100644 --- a/debian/patches-rt/0268-kthread-add-a-global-worker-thread.patch +++ b/debian/patches-rt/0267-kthread-add-a-global-worker-thread.patch @@ -1,8 +1,8 @@ -From e63273e590c9d2a348ac876a3e0a86fe0053be88 Mon Sep 17 00:00:00 2001 +From a344e1caa7443342c35e83701b2e1abb3124bb99 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 12 Feb 2019 15:09:38 +0100 -Subject: [PATCH 268/328] kthread: add a global worker thread. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 267/325] kthread: add a global worker thread. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 0532e87d9d44795221aa921ba7024bde689cc894 ] diff --git a/debian/patches-rt/0271-arm-imx6-cpuidle-Use-raw_spinlock_t.patch b/debian/patches-rt/0268-arm-imx6-cpuidle-Use-raw_spinlock_t.patch similarity index 90% rename from debian/patches-rt/0271-arm-imx6-cpuidle-Use-raw_spinlock_t.patch rename to debian/patches-rt/0268-arm-imx6-cpuidle-Use-raw_spinlock_t.patch index ad3802f13..2b86a1860 100644 --- a/debian/patches-rt/0271-arm-imx6-cpuidle-Use-raw_spinlock_t.patch +++ b/debian/patches-rt/0268-arm-imx6-cpuidle-Use-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From 0db2daea3de433d6d516bde0bd855fc8be716a8c Mon Sep 17 00:00:00 2001 +From cbc9d01e75de1a578f850190725900af27d430c6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 14 May 2019 17:07:44 +0200 -Subject: [PATCH 271/328] arm: imx6: cpuidle: Use raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 268/325] arm: imx6: cpuidle: Use raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 40d0332ec8312e9c090f0a5414d9c90e12b13611 ] diff --git a/debian/patches-rt/0269-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch b/debian/patches-rt/0269-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch deleted file mode 100644 index 1d7edec5a..000000000 --- a/debian/patches-rt/0269-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch +++ /dev/null @@ -1,94 +0,0 @@ -From ea09ce2ccce72c0a8abbd8c5971aee290b24b222 Mon Sep 17 00:00:00 2001 -From: Sebastian Andrzej Siewior -Date: Wed, 21 Aug 2013 17:48:46 +0200 -Subject: [PATCH 269/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 - -[ Upstream commit 2122adbe011cdc0eb62ad62494e181005b23c76a ] - -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 -Signed-off-by: Steven Rostedt (VMware) ---- - include/linux/interrupt.h | 5 ++--- - kernel/irq/manage.c | 19 ++++--------------- - 2 files changed, 6 insertions(+), 18 deletions(-) - ---- a/include/linux/interrupt.h -+++ b/include/linux/interrupt.h -@@ -13,7 +13,7 @@ - #include - #include - #include --#include -+#include - - #include - #include -@@ -228,7 +228,6 @@ - * 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. -@@ -241,7 +240,7 @@ - unsigned int irq; - struct kref kref; - #ifdef CONFIG_PREEMPT_RT_BASE -- struct swork_event swork; -+ struct kthread_work work; - #else - struct work_struct work; - #endif ---- a/kernel/irq/manage.c -+++ b/kernel/irq/manage.c -@@ -287,7 +287,7 @@ - kref_get(&desc->affinity_notify->kref); - - #ifdef CONFIG_PREEMPT_RT_BASE -- if (!swork_queue(&desc->affinity_notify->swork)) { -+ if (!kthread_schedule_work(&desc->affinity_notify->work)) { - #else - if (!schedule_work(&desc->affinity_notify->work)) { - #endif -@@ -356,21 +356,11 @@ - } - - #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) -+static void irq_affinity_notify(struct kthread_work *work) - { - struct irq_affinity_notify *notify = -- container_of(swork, struct irq_affinity_notify, swork); -+ container_of(work, struct irq_affinity_notify, work); - _irq_affinity_notify(notify); - } - -@@ -413,8 +403,7 @@ - notify->irq = irq; - kref_init(¬ify->kref); - #ifdef CONFIG_PREEMPT_RT_BASE -- INIT_SWORK(¬ify->swork, irq_affinity_notify); -- init_helper_thread(); -+ kthread_init_work(¬ify->work, irq_affinity_notify); - #else - INIT_WORK(¬ify->work, irq_affinity_notify); - #endif diff --git a/debian/patches-rt/0272-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch b/debian/patches-rt/0269-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch similarity index 87% rename from debian/patches-rt/0272-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch rename to debian/patches-rt/0269-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch index 268de0cc8..f60788faa 100644 --- a/debian/patches-rt/0272-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch +++ b/debian/patches-rt/0269-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch @@ -1,9 +1,9 @@ -From 63e76d2c0af10f033768782de397bb94afd9c20b Mon Sep 17 00:00:00 2001 +From 29483b5cb7e491f38927246ae4b2838bc300f5e8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 24 Jun 2019 18:29:13 +0200 -Subject: [PATCH 272/328] rcu: Don't allow to change rcu_normal_after_boot on +Subject: [PATCH 269/325] rcu: Don't allow to change rcu_normal_after_boot 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 [ Upstream commit c6c058c10577815a2491ce661876cff00a4c3b15 ] diff --git a/debian/patches-rt/0270-genirq-Handle-missing-work_struct-in-irq_set_affinit.patch b/debian/patches-rt/0270-genirq-Handle-missing-work_struct-in-irq_set_affinit.patch deleted file mode 100644 index 559dc2a9d..000000000 --- a/debian/patches-rt/0270-genirq-Handle-missing-work_struct-in-irq_set_affinit.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2c123db44d2e5daa7c6012fa43715d99706c84a5 Mon Sep 17 00:00:00 2001 -From: Sebastian Andrzej Siewior -Date: Tue, 28 May 2019 10:42:15 +0200 -Subject: [PATCH 270/328] genirq: Handle missing work_struct in - irq_set_affinity_notifier() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz - -[ Upstream commit bbc4d2a7d6ff54ba923640d9a42c7bef7185fe98 ] - -The backported stable commit - 59c39840f5abf ("genirq: Prevent use-after-free and work list corruption") - -added cancel_work_sync() on a work_struct element which is not available -in RT. - -Replace cancel_work_sync() with kthread_cancel_work_sync() on RT. - -Signed-off-by: Sebastian Andrzej Siewior -Signed-off-by: Steven Rostedt (VMware) ---- - kernel/irq/manage.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- a/kernel/irq/manage.c -+++ b/kernel/irq/manage.c -@@ -415,13 +415,14 @@ - raw_spin_unlock_irqrestore(&desc->lock, flags); - - if (old_notify) { --#ifndef CONFIG_PREEMPT_RT_BASE -- /* Need to address this for PREEMPT_RT */ -+#ifdef CONFIG_PREEMPT_RT_BASE -+ if (kthread_cancel_work_sync(¬ify->work)) { -+#else - if (cancel_work_sync(&old_notify->work)) { -+#endif - /* 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); - } - diff --git a/debian/patches-rt/0273-pci-switchtec-fix-stream_open.cocci-warnings.patch b/debian/patches-rt/0270-pci-switchtec-fix-stream_open.cocci-warnings.patch similarity index 89% rename from debian/patches-rt/0273-pci-switchtec-fix-stream_open.cocci-warnings.patch rename to debian/patches-rt/0270-pci-switchtec-fix-stream_open.cocci-warnings.patch index af9e52c4c..edbd8f9a8 100644 --- a/debian/patches-rt/0273-pci-switchtec-fix-stream_open.cocci-warnings.patch +++ b/debian/patches-rt/0270-pci-switchtec-fix-stream_open.cocci-warnings.patch @@ -1,8 +1,8 @@ -From 57434065eaa488e6dc4ab73d2e0915a3e6bc3992 Mon Sep 17 00:00:00 2001 +From 6566c0af08d10f160b57f889133e227a9334f9d4 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Sat, 13 Apr 2019 11:22:51 +0800 -Subject: [PATCH 273/328] pci/switchtec: fix stream_open.cocci warnings -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 270/325] pci/switchtec: fix stream_open.cocci warnings +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 9462c69e29307adc95c289f50839d5d683973891 ] diff --git a/debian/patches-rt/0274-sched-core-Drop-a-preempt_disable_rt-statement.patch b/debian/patches-rt/0271-sched-core-Drop-a-preempt_disable_rt-statement.patch similarity index 88% rename from debian/patches-rt/0274-sched-core-Drop-a-preempt_disable_rt-statement.patch rename to debian/patches-rt/0271-sched-core-Drop-a-preempt_disable_rt-statement.patch index c888c0a02..e7b8a1580 100644 --- a/debian/patches-rt/0274-sched-core-Drop-a-preempt_disable_rt-statement.patch +++ b/debian/patches-rt/0271-sched-core-Drop-a-preempt_disable_rt-statement.patch @@ -1,8 +1,8 @@ -From c373cd893601a19b54d0926c87daa939d6953f47 Mon Sep 17 00:00:00 2001 +From f0b092a791f59beb56cf987be5fbe18bb68df764 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 24 Jun 2019 19:33:16 +0200 -Subject: [PATCH 274/328] sched/core: Drop a preempt_disable_rt() statement -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 271/325] sched/core: Drop a preempt_disable_rt() statement +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 761126efdcbe3fa3e99c9079fa0ad6eca2f251f2 ] diff --git a/debian/patches-rt/0275-timers-Redo-the-notification-of-canceling-timers-on-.patch b/debian/patches-rt/0272-timers-Redo-the-notification-of-canceling-timers-on-.patch similarity index 99% rename from debian/patches-rt/0275-timers-Redo-the-notification-of-canceling-timers-on-.patch rename to debian/patches-rt/0272-timers-Redo-the-notification-of-canceling-timers-on-.patch index de6483fa5..0ea8b1cd8 100644 --- a/debian/patches-rt/0275-timers-Redo-the-notification-of-canceling-timers-on-.patch +++ b/debian/patches-rt/0272-timers-Redo-the-notification-of-canceling-timers-on-.patch @@ -1,9 +1,9 @@ -From b624498d8a6db63e6d6390bbd5f560f37929a500 Mon Sep 17 00:00:00 2001 +From 97fc8e3efcfeae8f91109c03a560a35a2f560985 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 24 Jun 2019 19:39:06 +0200 -Subject: [PATCH 275/328] timers: Redo the notification of canceling timers on +Subject: [PATCH 272/325] timers: Redo the notification of canceling timers 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 [ Upstream commit c71273154c2ad12e13333aada340ff30e826a11b ] diff --git a/debian/patches-rt/0276-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch b/debian/patches-rt/0273-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch similarity index 77% rename from debian/patches-rt/0276-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch rename to debian/patches-rt/0273-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch index e110b6c7d..a925ef247 100644 --- a/debian/patches-rt/0276-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch +++ b/debian/patches-rt/0273-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch @@ -1,9 +1,9 @@ -From b53286215979d7a0944e4d1e7483b8ef3b91d1d4 Mon Sep 17 00:00:00 2001 +From e1744f07e1c8a1ac358a3488d40bfc17164dc397 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 26 Jun 2019 17:44:13 +0200 -Subject: [PATCH 276/328] Revert "futex: Ensure lock/unlock symetry versus +Subject: [PATCH 273/325] Revert "futex: Ensure lock/unlock symetry versus pi_lock and hash bucket 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 [ Upstream commit 6a773b70cf105b46298ed3b44e77c102ce31d9ec ] @@ -17,10 +17,10 @@ Signed-off-by: Steven Rostedt (VMware) 1 file changed, 2 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index 4c448dddce3c..38f53b95e370 100644 +index 084527af43d4..b99266393c52 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -921,9 +921,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -938,9 +938,7 @@ void exit_pi_state_list(struct task_struct *curr) if (head->next != next) { /* retain curr->pi_lock for the loop invariant */ raw_spin_unlock(&pi_state->pi_mutex.wait_lock); diff --git a/debian/patches-rt/0277-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch b/debian/patches-rt/0274-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch similarity index 94% rename from debian/patches-rt/0277-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch rename to debian/patches-rt/0274-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch index 83eb78ef9..793aa67b5 100644 --- a/debian/patches-rt/0277-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch +++ b/debian/patches-rt/0274-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch @@ -1,9 +1,9 @@ -From 72c47093b9b237534280c6953d3cc0c635a96d3c Mon Sep 17 00:00:00 2001 +From ce2eb15023161fb6b08da540631b9245997a35ca Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 26 Jun 2019 17:44:18 +0200 -Subject: [PATCH 277/328] Revert "futex: Fix bug on when a requeued RT task +Subject: [PATCH 274/325] Revert "futex: Fix bug on when a requeued RT task times out" -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 f1a170cb3289a48df26cae3c60d77608f7a988bb ] diff --git a/debian/patches-rt/0278-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch b/debian/patches-rt/0275-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch similarity index 93% rename from debian/patches-rt/0278-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch rename to debian/patches-rt/0275-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch index 3d40805c3..a42422c66 100644 --- a/debian/patches-rt/0278-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch +++ b/debian/patches-rt/0275-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch @@ -1,9 +1,9 @@ -From a5fc42329ec8c08a961d8bc3f1a6d565ec867bcc Mon Sep 17 00:00:00 2001 +From 239b06f7ca78e179c96acf891fd3ab78b534f44e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 26 Jun 2019 17:44:21 +0200 -Subject: [PATCH 278/328] Revert "rtmutex: Handle the various new futex race +Subject: [PATCH 275/325] Revert "rtmutex: Handle the various new futex race conditions" -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 9e0265c21af4d6388d47dcd5ce20f76ec3a2e468 ] @@ -19,10 +19,10 @@ Signed-off-by: Steven Rostedt (VMware) 3 files changed, 21 insertions(+), 94 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index 38f53b95e370..6ee55df4f3de 100644 +index b99266393c52..1f9dd186b00c 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -2150,16 +2150,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2167,16 +2167,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, requeue_pi_wake_futex(this, &key2, hb2); drop_count++; continue; @@ -39,7 +39,7 @@ index 38f53b95e370..6ee55df4f3de 100644 } else if (ret) { /* * rt_mutex_start_proxy_lock() detected a -@@ -3238,7 +3228,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3255,7 +3245,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, struct hrtimer_sleeper timeout, *to = NULL; struct futex_pi_state *pi_state = NULL; struct rt_mutex_waiter rt_waiter; @@ -48,7 +48,7 @@ index 38f53b95e370..6ee55df4f3de 100644 union futex_key key2 = FUTEX_KEY_INIT; struct futex_q q = futex_q_init; int res, ret; -@@ -3296,55 +3286,20 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3313,55 +3303,20 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, /* Queue the futex_q, drop the hb lock, wait for wakeup. */ futex_wait_queue_me(hb, &q, to); @@ -115,7 +115,7 @@ index 38f53b95e370..6ee55df4f3de 100644 /* Check if the requeue code acquired the second futex for us. */ if (!q.rt_waiter) { -@@ -3353,8 +3308,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3370,8 +3325,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * did a lock-steal - fix up the PI-state in that case. */ if (q.pi_state && (q.pi_state->owner != current)) { @@ -125,7 +125,7 @@ index 38f53b95e370..6ee55df4f3de 100644 ret = fixup_pi_state_owner(uaddr2, &q, current); if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) { pi_state = q.pi_state; -@@ -3365,7 +3319,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3382,7 +3336,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * the requeue_pi() code acquired for us. */ put_pi_state(q.pi_state); @@ -134,7 +134,7 @@ index 38f53b95e370..6ee55df4f3de 100644 } } else { struct rt_mutex *pi_mutex; -@@ -3379,8 +3333,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3396,8 +3350,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, pi_mutex = &q.pi_state->pi_mutex; ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter); diff --git a/debian/patches-rt/0279-Revert-futex-workaround-migrate_disable-enable-in-di.patch b/debian/patches-rt/0276-Revert-futex-workaround-migrate_disable-enable-in-di.patch similarity index 83% rename from debian/patches-rt/0279-Revert-futex-workaround-migrate_disable-enable-in-di.patch rename to debian/patches-rt/0276-Revert-futex-workaround-migrate_disable-enable-in-di.patch index 313db3730..65cfae756 100644 --- a/debian/patches-rt/0279-Revert-futex-workaround-migrate_disable-enable-in-di.patch +++ b/debian/patches-rt/0276-Revert-futex-workaround-migrate_disable-enable-in-di.patch @@ -1,9 +1,9 @@ -From af703381dea29f442e4b3a7c4d8998379034f59a Mon Sep 17 00:00:00 2001 +From 8e9071d524a0b1b0539aba8b3e2e30cba6871be3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 26 Jun 2019 17:44:27 +0200 -Subject: [PATCH 279/328] Revert "futex: workaround migrate_disable/enable in +Subject: [PATCH 276/325] Revert "futex: workaround migrate_disable/enable in different 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 [ Upstream commit a71221d81cc4873891ae44f3aa02df596079b786 ] @@ -17,10 +17,10 @@ Signed-off-by: Steven Rostedt (VMware) 1 file changed, 19 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index 6ee55df4f3de..f636dcc706ec 100644 +index 1f9dd186b00c..9900c3f30124 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -2878,14 +2878,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2895,14 +2895,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, * before __rt_mutex_start_proxy_lock() is done. */ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -35,7 +35,7 @@ index 6ee55df4f3de..f636dcc706ec 100644 spin_unlock(q.lock_ptr); /* * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter -@@ -2894,7 +2886,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2911,7 +2903,6 @@ 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); raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -43,7 +43,7 @@ index 6ee55df4f3de..f636dcc706ec 100644 if (ret) { if (ret == 1) -@@ -3043,21 +3034,11 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3060,21 +3051,11 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) * rt_waiter. Also see the WARN in wake_futex_pi(). */ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); diff --git a/debian/patches-rt/0280-futex-Make-the-futex_hash_bucket-lock-raw.patch b/debian/patches-rt/0277-futex-Make-the-futex_hash_bucket-lock-raw.patch similarity index 84% rename from debian/patches-rt/0280-futex-Make-the-futex_hash_bucket-lock-raw.patch rename to debian/patches-rt/0277-futex-Make-the-futex_hash_bucket-lock-raw.patch index 156384c8f..17f09c5f1 100644 --- a/debian/patches-rt/0280-futex-Make-the-futex_hash_bucket-lock-raw.patch +++ b/debian/patches-rt/0277-futex-Make-the-futex_hash_bucket-lock-raw.patch @@ -1,8 +1,8 @@ -From 44953b81eb56f8bf4910a8d447d7e3695c25370e Mon Sep 17 00:00:00 2001 +From 4da5579cff42dcfc92f67bdcff08cdb3c440178b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 26 Jun 2019 11:59:44 +0200 -Subject: [PATCH 280/328] futex: Make the futex_hash_bucket lock raw -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 277/325] futex: Make the futex_hash_bucket lock raw +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit f646521aadedab78801c9befe193e2e8a0c99298 ] @@ -23,7 +23,7 @@ Signed-off-by: Steven Rostedt (VMware) 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index f636dcc706ec..a9d9283605e5 100644 +index 9900c3f30124..8e8658df69d9 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -243,7 +243,7 @@ struct futex_q { @@ -44,7 +44,7 @@ index f636dcc706ec..a9d9283605e5 100644 struct plist_head chain; } ____cacheline_aligned_in_smp; -@@ -911,7 +911,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -928,7 +928,7 @@ void exit_pi_state_list(struct task_struct *curr) } raw_spin_unlock_irq(&curr->pi_lock); @@ -53,7 +53,7 @@ index f636dcc706ec..a9d9283605e5 100644 raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); raw_spin_lock(&curr->pi_lock); /* -@@ -921,7 +921,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -938,7 +938,7 @@ void exit_pi_state_list(struct task_struct *curr) if (head->next != next) { /* retain curr->pi_lock for the loop invariant */ raw_spin_unlock(&pi_state->pi_mutex.wait_lock); @@ -62,7 +62,7 @@ index f636dcc706ec..a9d9283605e5 100644 put_pi_state(pi_state); continue; } -@@ -933,7 +933,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -950,7 +950,7 @@ void exit_pi_state_list(struct task_struct *curr) raw_spin_unlock(&curr->pi_lock); raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); @@ -71,7 +71,7 @@ index f636dcc706ec..a9d9283605e5 100644 rt_mutex_futex_unlock(&pi_state->pi_mutex); put_pi_state(pi_state); -@@ -1427,7 +1427,7 @@ static void __unqueue_futex(struct futex_q *q) +@@ -1444,7 +1444,7 @@ static void __unqueue_futex(struct futex_q *q) { struct futex_hash_bucket *hb; @@ -80,7 +80,7 @@ index f636dcc706ec..a9d9283605e5 100644 || WARN_ON(plist_node_empty(&q->list))) return; -@@ -1555,21 +1555,21 @@ static inline void +@@ -1572,21 +1572,21 @@ static inline void double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2) { if (hb1 <= hb2) { @@ -108,7 +108,7 @@ index f636dcc706ec..a9d9283605e5 100644 } /* -@@ -1597,7 +1597,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) +@@ -1614,7 +1614,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) if (!hb_waiters_pending(hb)) goto out_put_key; @@ -117,7 +117,7 @@ index f636dcc706ec..a9d9283605e5 100644 plist_for_each_entry_safe(this, next, &hb->chain, list) { if (match_futex (&this->key, &key)) { -@@ -1616,7 +1616,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) +@@ -1633,7 +1633,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) } } @@ -126,7 +126,7 @@ index f636dcc706ec..a9d9283605e5 100644 wake_up_q(&wake_q); out_put_key: put_futex_key(&key); -@@ -2221,7 +2221,7 @@ static inline struct futex_hash_bucket *queue_lock(struct futex_q *q) +@@ -2238,7 +2238,7 @@ static inline struct futex_hash_bucket *queue_lock(struct futex_q *q) q->lock_ptr = &hb->lock; @@ -135,7 +135,7 @@ index f636dcc706ec..a9d9283605e5 100644 return hb; } -@@ -2229,7 +2229,7 @@ static inline void +@@ -2246,7 +2246,7 @@ static inline void queue_unlock(struct futex_hash_bucket *hb) __releases(&hb->lock) { @@ -144,7 +144,7 @@ index f636dcc706ec..a9d9283605e5 100644 hb_waiters_dec(hb); } -@@ -2268,7 +2268,7 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) +@@ -2285,7 +2285,7 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) __releases(&hb->lock) { __queue_me(q, hb); @@ -153,7 +153,7 @@ index f636dcc706ec..a9d9283605e5 100644 } /** -@@ -2284,41 +2284,41 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) +@@ -2301,41 +2301,41 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) */ static int unqueue_me(struct futex_q *q) { @@ -206,7 +206,7 @@ index f636dcc706ec..a9d9283605e5 100644 ret = 1; } -@@ -2340,7 +2340,7 @@ static void unqueue_me_pi(struct futex_q *q) +@@ -2357,7 +2357,7 @@ static void unqueue_me_pi(struct futex_q *q) put_pi_state(q->pi_state); q->pi_state = NULL; @@ -215,7 +215,7 @@ index f636dcc706ec..a9d9283605e5 100644 } static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, -@@ -2473,7 +2473,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, +@@ -2490,7 +2490,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, */ handle_err: raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); @@ -224,7 +224,7 @@ index f636dcc706ec..a9d9283605e5 100644 switch (err) { case -EFAULT: -@@ -2491,7 +2491,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, +@@ -2508,7 +2508,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, break; } @@ -233,7 +233,7 @@ index f636dcc706ec..a9d9283605e5 100644 raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); /* -@@ -2587,7 +2587,7 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q, +@@ -2604,7 +2604,7 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q, /* * The task state is guaranteed to be set before another task can * wake it. set_current_state() is implemented using smp_store_mb() and @@ -242,7 +242,7 @@ index f636dcc706ec..a9d9283605e5 100644 * access to the hash list and forcing another memory barrier. */ set_current_state(TASK_INTERRUPTIBLE); -@@ -2878,7 +2878,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2895,7 +2895,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, * before __rt_mutex_start_proxy_lock() is done. */ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -251,7 +251,7 @@ index f636dcc706ec..a9d9283605e5 100644 /* * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter * such that futex_unlock_pi() is guaranteed to observe the waiter when -@@ -2899,7 +2899,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2916,7 +2916,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, ret = rt_mutex_wait_proxy_lock(&q.pi_state->pi_mutex, to, &rt_waiter); cleanup: @@ -260,7 +260,7 @@ index f636dcc706ec..a9d9283605e5 100644 /* * If we failed to acquire the lock (deadlock/signal/timeout), we must * first acquire the hb->lock before removing the lock from the -@@ -3000,7 +3000,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3017,7 +3017,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) return ret; hb = hash_futex(&key); @@ -269,7 +269,7 @@ index f636dcc706ec..a9d9283605e5 100644 /* * Check waiters first. We do not trust user space values at -@@ -3034,7 +3034,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3051,7 +3051,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) * rt_waiter. Also see the WARN in wake_futex_pi(). */ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); @@ -278,7 +278,7 @@ index f636dcc706ec..a9d9283605e5 100644 /* drops pi_state->pi_mutex.wait_lock */ ret = wake_futex_pi(uaddr, uval, pi_state); -@@ -3073,7 +3073,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3090,7 +3090,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) * owner. */ if ((ret = cmpxchg_futex_value_locked(&curval, uaddr, uval, 0))) { @@ -287,7 +287,7 @@ index f636dcc706ec..a9d9283605e5 100644 switch (ret) { case -EFAULT: goto pi_faulted; -@@ -3093,7 +3093,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3110,7 +3110,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) ret = (curval == uval) ? 0 : -EAGAIN; out_unlock: @@ -296,7 +296,7 @@ index f636dcc706ec..a9d9283605e5 100644 out_putkey: put_futex_key(&key); return ret; -@@ -3267,9 +3267,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3284,9 +3284,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, /* Queue the futex_q, drop the hb lock, wait for wakeup. */ futex_wait_queue_me(hb, &q, to); @@ -308,7 +308,7 @@ index f636dcc706ec..a9d9283605e5 100644 if (ret) goto out_put_keys; -@@ -3289,7 +3289,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3306,7 +3306,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * did a lock-steal - fix up the PI-state in that case. */ if (q.pi_state && (q.pi_state->owner != current)) { @@ -317,7 +317,7 @@ index f636dcc706ec..a9d9283605e5 100644 ret = fixup_pi_state_owner(uaddr2, &q, current); if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) { pi_state = q.pi_state; -@@ -3300,7 +3300,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3317,7 +3317,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * the requeue_pi() code acquired for us. */ put_pi_state(q.pi_state); @@ -326,7 +326,7 @@ index f636dcc706ec..a9d9283605e5 100644 } } else { struct rt_mutex *pi_mutex; -@@ -3314,7 +3314,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3331,7 +3331,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, pi_mutex = &q.pi_state->pi_mutex; ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter); @@ -335,7 +335,7 @@ index f636dcc706ec..a9d9283605e5 100644 if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter)) ret = 0; -@@ -3981,7 +3981,7 @@ static int __init futex_init(void) +@@ -3998,7 +3998,7 @@ static int __init futex_init(void) for (i = 0; i < futex_hashsize; i++) { atomic_set(&futex_queues[i].waiters, 0); plist_head_init(&futex_queues[i].chain); diff --git a/debian/patches-rt/0281-futex-Delay-deallocation-of-pi_state.patch b/debian/patches-rt/0278-futex-Delay-deallocation-of-pi_state.patch similarity index 82% rename from debian/patches-rt/0281-futex-Delay-deallocation-of-pi_state.patch rename to debian/patches-rt/0278-futex-Delay-deallocation-of-pi_state.patch index ee93ed4a2..174aaa572 100644 --- a/debian/patches-rt/0281-futex-Delay-deallocation-of-pi_state.patch +++ b/debian/patches-rt/0278-futex-Delay-deallocation-of-pi_state.patch @@ -1,8 +1,8 @@ -From b4da585eac644bd89c26ced3290b61d735d50481 Mon Sep 17 00:00:00 2001 +From e66a69b90bc31990bfb8bff7b02090e7664cf97b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 26 Jun 2019 13:35:36 +0200 -Subject: [PATCH 281/328] futex: Delay deallocation of pi_state -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 278/325] futex: Delay deallocation of pi_state +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit d7c7cf8cb68b7df17e6e50be1f25f35d83e686c7 ] @@ -18,10 +18,10 @@ Signed-off-by: Steven Rostedt (VMware) 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index a9d9283605e5..0b8cff8d9162 100644 +index 8e8658df69d9..3c604e3eb20a 100644 --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -825,13 +825,13 @@ static void get_pi_state(struct futex_pi_state *pi_state) +@@ -842,13 +842,13 @@ static void get_pi_state(struct futex_pi_state *pi_state) * Drops a reference to the pi_state object and frees or caches it * when the last reference is gone. */ @@ -38,7 +38,7 @@ index a9d9283605e5..0b8cff8d9162 100644 /* * If pi_state->owner is NULL, the owner is most probably dying -@@ -851,9 +851,7 @@ static void put_pi_state(struct futex_pi_state *pi_state) +@@ -868,9 +868,7 @@ static void put_pi_state(struct futex_pi_state *pi_state) raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); } @@ -49,7 +49,7 @@ index a9d9283605e5..0b8cff8d9162 100644 /* * pi_state->list is already empty. * clear pi_state->owner. -@@ -862,6 +860,30 @@ static void put_pi_state(struct futex_pi_state *pi_state) +@@ -879,6 +877,30 @@ static void put_pi_state(struct futex_pi_state *pi_state) pi_state->owner = NULL; atomic_set(&pi_state->refcount, 1); current->pi_state_cache = pi_state; @@ -80,7 +80,7 @@ index a9d9283605e5..0b8cff8d9162 100644 } } -@@ -878,6 +900,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -895,6 +917,7 @@ void exit_pi_state_list(struct task_struct *curr) struct futex_pi_state *pi_state; struct futex_hash_bucket *hb; union futex_key key = FUTEX_KEY_INIT; @@ -88,7 +88,7 @@ index a9d9283605e5..0b8cff8d9162 100644 if (!futex_cmpxchg_enabled) return; -@@ -922,7 +945,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -939,7 +962,7 @@ void exit_pi_state_list(struct task_struct *curr) /* retain curr->pi_lock for the loop invariant */ raw_spin_unlock(&pi_state->pi_mutex.wait_lock); raw_spin_unlock(&hb->lock); @@ -97,7 +97,7 @@ index a9d9283605e5..0b8cff8d9162 100644 continue; } -@@ -941,6 +964,8 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -958,6 +981,8 @@ void exit_pi_state_list(struct task_struct *curr) raw_spin_lock_irq(&curr->pi_lock); } raw_spin_unlock_irq(&curr->pi_lock); @@ -106,7 +106,7 @@ index a9d9283605e5..0b8cff8d9162 100644 } #endif -@@ -1923,6 +1948,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -1940,6 +1965,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, struct futex_hash_bucket *hb1, *hb2; struct futex_q *this, *next; DEFINE_WAKE_Q(wake_q); @@ -114,7 +114,7 @@ index a9d9283605e5..0b8cff8d9162 100644 if (nr_wake < 0 || nr_requeue < 0) return -EINVAL; -@@ -2160,7 +2186,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2177,7 +2203,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, * object. */ this->pi_state = NULL; @@ -123,7 +123,7 @@ index a9d9283605e5..0b8cff8d9162 100644 /* * We stop queueing more waiters and let user * space deal with the mess. -@@ -2177,7 +2203,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2194,7 +2220,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, * in futex_proxy_trylock_atomic() or in lookup_pi_state(). We * need to drop it here again. */ @@ -132,7 +132,7 @@ index a9d9283605e5..0b8cff8d9162 100644 out_unlock: double_unlock_hb(hb1, hb2); -@@ -2198,6 +2224,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2215,6 +2241,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, out_put_key1: put_futex_key(&key1); out: @@ -140,7 +140,7 @@ index a9d9283605e5..0b8cff8d9162 100644 return ret ? ret : task_count; } -@@ -2334,13 +2361,16 @@ static int unqueue_me(struct futex_q *q) +@@ -2351,13 +2378,16 @@ static int unqueue_me(struct futex_q *q) static void unqueue_me_pi(struct futex_q *q) __releases(q->lock_ptr) { @@ -158,7 +158,7 @@ index a9d9283605e5..0b8cff8d9162 100644 } static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, -@@ -3289,6 +3319,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3306,6 +3336,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * did a lock-steal - fix up the PI-state in that case. */ if (q.pi_state && (q.pi_state->owner != current)) { @@ -167,7 +167,7 @@ index a9d9283605e5..0b8cff8d9162 100644 raw_spin_lock(q.lock_ptr); ret = fixup_pi_state_owner(uaddr2, &q, current); if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) { -@@ -3299,8 +3331,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3316,8 +3348,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * Drop the reference to the pi state which * the requeue_pi() code acquired for us. */ diff --git a/debian/patches-rt/0282-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch b/debian/patches-rt/0279-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch similarity index 96% rename from debian/patches-rt/0282-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch rename to debian/patches-rt/0279-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch index 2664fae12..268d7d7d7 100644 --- a/debian/patches-rt/0282-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch +++ b/debian/patches-rt/0279-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch @@ -1,9 +1,9 @@ -From 4ae018a1f3fabfd075da5e5e1c764d47df47c191 Mon Sep 17 00:00:00 2001 +From 46c3a76e3d5c44d8f02e3aa42b0a8c34aae326a1 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" Date: Tue, 25 Jun 2019 11:28:04 -0300 -Subject: [PATCH 282/328] mm/zswap: Do not disable preemption in +Subject: [PATCH 279/325] mm/zswap: Do not disable preemption in zswap_frontswap_store() -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 4e4cf4be79635e67144632d9135286381acbc95a ] diff --git a/debian/patches-rt/0283-revert-aio.patch b/debian/patches-rt/0280-revert-aio.patch similarity index 93% rename from debian/patches-rt/0283-revert-aio.patch rename to debian/patches-rt/0280-revert-aio.patch index 900784afa..3cb1b4e4c 100644 --- a/debian/patches-rt/0283-revert-aio.patch +++ b/debian/patches-rt/0280-revert-aio.patch @@ -1,8 +1,8 @@ -From ab2dc29034ff92024537b768305a45a2d4b138fb Mon Sep 17 00:00:00 2001 +From 7a9d62da76af5ba2a2a0002d4955115fa7e2c018 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Fri, 20 Sep 2019 17:50:53 -0400 -Subject: [PATCH 283/328] revert-aio -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 280/325] revert-aio +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz revert: fs/aio: simple simple work diff --git a/debian/patches-rt/0284-fs-aio-simple-simple-work.patch b/debian/patches-rt/0281-fs-aio-simple-simple-work.patch similarity index 94% rename from debian/patches-rt/0284-fs-aio-simple-simple-work.patch rename to debian/patches-rt/0281-fs-aio-simple-simple-work.patch index 07aa4380e..c5389ab3a 100644 --- a/debian/patches-rt/0284-fs-aio-simple-simple-work.patch +++ b/debian/patches-rt/0281-fs-aio-simple-simple-work.patch @@ -1,8 +1,8 @@ -From 81433e7d902d1cc6192315d52f22c51ab06a2e63 Mon Sep 17 00:00:00 2001 +From 4bb78531ae9d77ab3d0b681c733db6e53eb754a4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 16 Feb 2015 18:49:10 +0100 -Subject: [PATCH 284/328] 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 +Subject: [PATCH 281/325] fs/aio: simple simple work +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 1a142116f6435ef070ecebb66d2d599507c10601 ] diff --git a/debian/patches-rt/0285-revert-thermal.patch b/debian/patches-rt/0282-revert-thermal.patch similarity index 95% rename from debian/patches-rt/0285-revert-thermal.patch rename to debian/patches-rt/0282-revert-thermal.patch index 7e0ddcb19..6ec050aa8 100644 --- a/debian/patches-rt/0285-revert-thermal.patch +++ b/debian/patches-rt/0282-revert-thermal.patch @@ -1,8 +1,8 @@ -From c02161642bb7a1a67a5deeca8370d86f1901a30c Mon Sep 17 00:00:00 2001 +From 267418caf8f37f685310bb311fe5fa28e3e25dfe Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Fri, 20 Sep 2019 17:50:53 -0400 -Subject: [PATCH 285/328] revert-thermal -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 282/325] revert-thermal +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Revert: thermal: Defer thermal wakups to threads diff --git a/debian/patches-rt/0286-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0283-thermal-Defer-thermal-wakups-to-threads.patch similarity index 94% rename from debian/patches-rt/0286-thermal-Defer-thermal-wakups-to-threads.patch rename to debian/patches-rt/0283-thermal-Defer-thermal-wakups-to-threads.patch index 405b94382..d7e338d96 100644 --- a/debian/patches-rt/0286-thermal-Defer-thermal-wakups-to-threads.patch +++ b/debian/patches-rt/0283-thermal-Defer-thermal-wakups-to-threads.patch @@ -1,8 +1,8 @@ -From 6ce01aa7368b545641a370a0dde81ac0d4c5ba41 Mon Sep 17 00:00:00 2001 +From bba3e5357a4fc4ecfbee11c3bd4d20f790ef81f3 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 17 Feb 2015 09:37:44 +0100 -Subject: [PATCH 286/328] thermal: Defer thermal wakups to threads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 283/325] thermal: Defer thermal wakups to threads +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit ad2408dc248fe58536eef5b2b5734d8f9d3a280b ] diff --git a/debian/patches-rt/0287-revert-block.patch b/debian/patches-rt/0284-revert-block.patch similarity index 94% rename from debian/patches-rt/0287-revert-block.patch rename to debian/patches-rt/0284-revert-block.patch index 41dd6e78d..15518f752 100644 --- a/debian/patches-rt/0287-revert-block.patch +++ b/debian/patches-rt/0284-revert-block.patch @@ -1,8 +1,8 @@ -From ffad188bfa63fa513c05850bf64eebe5e519c14d Mon Sep 17 00:00:00 2001 +From 171ac6b8fbc78b0623d086b254df171edb190cbe Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Fri, 20 Sep 2019 17:50:54 -0400 -Subject: [PATCH 287/328] revert-block -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 284/325] revert-block +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz Revert swork version of: block: blk-mq: move blk_queue_usage_counter_release() into process context diff --git a/debian/patches-rt/0288-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0285-block-blk-mq-move-blk_queue_usage_counter_release-in.patch similarity index 96% rename from debian/patches-rt/0288-block-blk-mq-move-blk_queue_usage_counter_release-in.patch rename to debian/patches-rt/0285-block-blk-mq-move-blk_queue_usage_counter_release-in.patch index d22718f93..2d38a8a08 100644 --- a/debian/patches-rt/0288-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +++ b/debian/patches-rt/0285-block-blk-mq-move-blk_queue_usage_counter_release-in.patch @@ -1,9 +1,9 @@ -From 2793f1c2fe23bf8db5eb818139db6bdc8c0d0ff3 Mon Sep 17 00:00:00 2001 +From 4621d1e6d5d9c259cd3fc808ea502b2fdaf859f6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 13 Mar 2018 13:49:16 +0100 -Subject: [PATCH 288/328] block: blk-mq: move blk_queue_usage_counter_release() +Subject: [PATCH 285/325] block: blk-mq: move blk_queue_usage_counter_release() into process 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 [ Upstream commit 61c928ecf4fe200bda9b49a0813b5ba0f43995b5 ] diff --git a/debian/patches-rt/0289-workqueue-rework.patch b/debian/patches-rt/0286-workqueue-rework.patch similarity index 78% rename from debian/patches-rt/0289-workqueue-rework.patch rename to debian/patches-rt/0286-workqueue-rework.patch index 335125303..1c78b445a 100644 --- a/debian/patches-rt/0289-workqueue-rework.patch +++ b/debian/patches-rt/0286-workqueue-rework.patch @@ -1,8 +1,8 @@ -From 30d6766aa0a5077a70137d4bb9b044aa73fe9f7e Mon Sep 17 00:00:00 2001 +From 9fff0e73dcf79af1aab70aae151379fe86845cff Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 29 May 2019 18:52:27 +0200 -Subject: [PATCH 289/328] workqueue: rework -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 286/325] workqueue: rework +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit d15a862f24df983458533aebd6fa207ecdd1095a ] @@ -22,23 +22,23 @@ Signed-off-by: Steven Rostedt (VMware) fs/aio.c | 10 +- include/linux/blk-cgroup.h | 2 +- include/linux/blkdev.h | 2 +- - include/linux/interrupt.h | 5 - include/linux/kthread-cgroup.h | 17 -- include/linux/kthread.h | 15 +- include/linux/swait.h | 14 ++ include/linux/workqueue.h | 4 - init/main.c | 1 - - kernel/irq/manage.c | 36 +-- kernel/kthread.c | 14 -- kernel/sched/core.c | 1 + kernel/time/hrtimer.c | 24 -- kernel/workqueue.c | 304 +++++++++++-------------- - 18 files changed, 166 insertions(+), 320 deletions(-) + 16 files changed, 163 insertions(+), 282 deletions(-) delete mode 100644 include/linux/kthread-cgroup.h +diff --git a/block/blk-core.c b/block/blk-core.c +index 7d709465876e..752c9e754509 100644 --- a/block/blk-core.c +++ b/block/blk-core.c -@@ -973,7 +973,7 @@ +@@ -973,7 +973,7 @@ void blk_queue_exit(struct request_queue *q) percpu_ref_put(&q->q_usage_counter); } @@ -47,7 +47,7 @@ Signed-off-by: Steven Rostedt (VMware) { struct request_queue *q = container_of(work, struct request_queue, mq_pcpu_wake); -@@ -987,7 +987,7 @@ +@@ -987,7 +987,7 @@ static void blk_queue_usage_counter_release(struct percpu_ref *ref) container_of(ref, struct request_queue, q_usage_counter); if (wq_has_sleeper(&q->mq_freeze_wq)) @@ -56,7 +56,7 @@ Signed-off-by: Steven Rostedt (VMware) } static void blk_rq_timed_out_timer(struct timer_list *t) -@@ -1084,7 +1084,7 @@ +@@ -1084,7 +1084,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id, queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q); init_waitqueue_head(&q->mq_freeze_wq); @@ -65,6 +65,8 @@ Signed-off-by: Steven Rostedt (VMware) /* * Init percpu_ref in atomic mode so that it's faster to shutdown. +diff --git a/drivers/block/loop.c b/drivers/block/loop.c +index 351ea22ffb56..9cd231a27328 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -70,7 +70,7 @@ @@ -76,6 +78,8 @@ Signed-off-by: Steven Rostedt (VMware) #include #include #include +diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c +index 63b10236eb05..185bbdce62b1 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c @@ -22,7 +22,6 @@ @@ -86,6 +90,8 @@ Signed-off-by: Steven Rostedt (VMware) #define DRIVER_NAME "rockchip-spi" +diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c +index 82f21fd4afb0..1ef937d799e4 100644 --- a/drivers/thermal/x86_pkg_temp_thermal.c +++ b/drivers/thermal/x86_pkg_temp_thermal.c @@ -29,7 +29,6 @@ @@ -96,7 +102,7 @@ Signed-off-by: Steven Rostedt (VMware) #include #include -@@ -330,7 +329,7 @@ +@@ -330,7 +329,7 @@ static void pkg_thermal_schedule_work(int cpu, struct delayed_work *work) schedule_delayed_work_on(cpu, work, ms); } @@ -105,7 +111,7 @@ Signed-off-by: Steven Rostedt (VMware) { int cpu = smp_processor_id(); struct pkg_device *pkgdev; -@@ -349,32 +348,8 @@ +@@ -349,32 +348,8 @@ static void pkg_thermal_notify_work(struct kthread_work *work) } spin_unlock_irqrestore(&pkg_temp_lock, flags); @@ -138,7 +144,7 @@ Signed-off-by: Steven Rostedt (VMware) static int pkg_temp_thermal_device_add(unsigned int cpu) { -@@ -573,7 +548,6 @@ +@@ -573,7 +548,6 @@ static void __exit pkg_temp_thermal_exit(void) platform_thermal_package_rate_control = NULL; cpuhp_remove_state(pkg_thermal_hp_state); @@ -146,9 +152,11 @@ Signed-off-by: Steven Rostedt (VMware) debugfs_remove_recursive(debugfs); kfree(packages); } +diff --git a/fs/aio.c b/fs/aio.c +index a92119e05869..37e75bb0c406 100644 --- a/fs/aio.c +++ b/fs/aio.c -@@ -121,7 +121,7 @@ +@@ -121,7 +121,7 @@ struct kioctx { long nr_pages; struct rcu_work free_rwork; /* see free_ioctx() */ @@ -157,7 +165,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * signals when all in-flight requests are done -@@ -607,9 +607,9 @@ +@@ -607,9 +607,9 @@ static void free_ioctx_reqs(struct percpu_ref *ref) * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted - * now it's safe to cancel any that need to be. */ @@ -169,7 +177,7 @@ Signed-off-by: Steven Rostedt (VMware) struct aio_kiocb *req; spin_lock_irq(&ctx->ctx_lock); -@@ -631,8 +631,8 @@ +@@ -631,8 +631,8 @@ static void free_ioctx_users(struct percpu_ref *ref) { struct kioctx *ctx = container_of(ref, struct kioctx, users); @@ -180,6 +188,8 @@ Signed-off-by: Steven Rostedt (VMware) } static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm) +diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h +index 0473efda4c65..da587e60fe86 100644 --- a/include/linux/blk-cgroup.h +++ b/include/linux/blk-cgroup.h @@ -14,7 +14,7 @@ @@ -191,9 +201,11 @@ Signed-off-by: Steven Rostedt (VMware) #include #include #include +diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h +index 981103415cd8..6a0bfa0a2c52 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h -@@ -656,7 +656,7 @@ +@@ -656,7 +656,7 @@ struct request_queue { #endif struct rcu_head rcu_head; wait_queue_head_t mq_freeze_wq; @@ -202,28 +214,9 @@ Signed-off-by: Steven Rostedt (VMware) struct percpu_ref q_usage_counter; struct list_head all_q_node; ---- a/include/linux/interrupt.h -+++ b/include/linux/interrupt.h -@@ -13,7 +13,6 @@ - #include - #include - #include --#include - - #include - #include -@@ -239,11 +238,7 @@ - struct irq_affinity_notify { - unsigned int irq; - struct kref kref; --#ifdef CONFIG_PREEMPT_RT_BASE -- struct kthread_work work; --#else - struct work_struct work; --#endif - void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask); - void (*release)(struct kref *ref); - }; +diff --git a/include/linux/kthread-cgroup.h b/include/linux/kthread-cgroup.h +deleted file mode 100644 +index 53d34bca9d72..000000000000 --- a/include/linux/kthread-cgroup.h +++ /dev/null @@ -1,17 +0,0 @@ @@ -244,6 +237,8 @@ Signed-off-by: Steven Rostedt (VMware) -} -#endif -#endif +diff --git a/include/linux/kthread.h b/include/linux/kthread.h +index 7cf56eb54103..6b8c064f0cbc 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h @@ -4,6 +4,7 @@ @@ -254,7 +249,7 @@ Signed-off-by: Steven Rostedt (VMware) __printf(4, 5) struct task_struct *kthread_create_on_node(int (*threadfn)(void *data), -@@ -197,12 +198,14 @@ +@@ -197,12 +198,14 @@ bool kthread_cancel_delayed_work_sync(struct kthread_delayed_work *work); void kthread_destroy_worker(struct kthread_worker *worker); @@ -275,9 +270,11 @@ Signed-off-by: Steven Rostedt (VMware) - +#endif #endif /* _LINUX_KTHREAD_H */ +diff --git a/include/linux/swait.h b/include/linux/swait.h +index f426a0661aa0..21ae66cd41d3 100644 --- a/include/linux/swait.h +++ b/include/linux/swait.h -@@ -299,4 +299,18 @@ +@@ -299,4 +299,18 @@ do { \ __ret; \ }) @@ -296,9 +293,11 @@ Signed-off-by: Steven Rostedt (VMware) + } while (0) + #endif /* _LINUX_SWAIT_H */ +diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h +index 60d673e15632..546aa73fba6a 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h -@@ -455,10 +455,6 @@ +@@ -455,10 +455,6 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active, extern void destroy_workqueue(struct workqueue_struct *wq); @@ -309,9 +308,11 @@ Signed-off-by: Steven Rostedt (VMware) int workqueue_set_unbound_cpumask(cpumask_var_t cpumask); extern bool queue_work_on(int cpu, struct workqueue_struct *wq, +diff --git a/init/main.c b/init/main.c +index e514dd93de76..6e02188386a7 100644 --- a/init/main.c +++ b/init/main.c -@@ -1129,7 +1129,6 @@ +@@ -1129,7 +1129,6 @@ static noinline void __init kernel_init_freeable(void) smp_prepare_cpus(setup_max_cpus); workqueue_init(); @@ -319,83 +320,8 @@ Signed-off-by: Steven Rostedt (VMware) init_mm_internals(); ---- a/kernel/irq/manage.c -+++ b/kernel/irq/manage.c -@@ -285,12 +285,7 @@ - - if (desc->affinity_notify) { - kref_get(&desc->affinity_notify->kref); -- --#ifdef CONFIG_PREEMPT_RT_BASE -- if (!kthread_schedule_work(&desc->affinity_notify->work)) { --#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); -@@ -332,8 +327,10 @@ - } - EXPORT_SYMBOL_GPL(irq_set_affinity_hint); - --static void _irq_affinity_notify(struct irq_affinity_notify *notify) -+static void irq_affinity_notify(struct work_struct *work) - { -+ 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; -@@ -355,25 +352,6 @@ - kref_put(¬ify->kref, notify->release); - } - --#ifdef CONFIG_PREEMPT_RT_BASE -- --static void irq_affinity_notify(struct kthread_work *work) --{ -- struct irq_affinity_notify *notify = -- container_of(work, struct irq_affinity_notify, work); -- _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 -@@ -402,11 +380,7 @@ - if (notify) { - notify->irq = irq; - kref_init(¬ify->kref); --#ifdef CONFIG_PREEMPT_RT_BASE -- kthread_init_work(¬ify->work, irq_affinity_notify); --#else - INIT_WORK(¬ify->work, irq_affinity_notify); --#endif - } - - raw_spin_lock_irqsave(&desc->lock, flags); -@@ -415,11 +389,7 @@ - raw_spin_unlock_irqrestore(&desc->lock, flags); - - if (old_notify) { --#ifdef CONFIG_PREEMPT_RT_BASE -- if (kthread_cancel_work_sync(¬ify->work)) { --#else - if (cancel_work_sync(&old_notify->work)) { --#endif - /* Pending work had a ref, put that one too */ - kref_put(&old_notify->kref, old_notify->release); - } +diff --git a/kernel/kthread.c b/kernel/kthread.c +index 9db017761a1f..5641b55783a6 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -20,7 +20,6 @@ @@ -406,7 +332,7 @@ Signed-off-by: Steven Rostedt (VMware) #include static DEFINE_SPINLOCK(kthread_create_lock); -@@ -1181,19 +1180,6 @@ +@@ -1181,19 +1180,6 @@ void kthread_destroy_worker(struct kthread_worker *worker) } EXPORT_SYMBOL(kthread_destroy_worker); @@ -426,9 +352,11 @@ Signed-off-by: Steven Rostedt (VMware) #ifdef CONFIG_BLK_CGROUP /** * kthread_associate_blkcg - associate blkcg to current kthread +diff --git a/kernel/sched/core.c b/kernel/sched/core.c +index 678c2c4de4f5..a1c0123e7636 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -3607,6 +3607,7 @@ +@@ -3607,6 +3607,7 @@ static inline void sched_submit_work(struct task_struct *tsk) { if (!tsk->state) return; @@ -436,9 +364,11 @@ Signed-off-by: Steven Rostedt (VMware) /* * If a worker went to sleep, notify and ask workqueue whether * it wants to wake up a task to maintain concurrency. +diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c +index ed5d8d51ca91..94d97eae0a46 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c -@@ -730,29 +730,6 @@ +@@ -730,29 +730,6 @@ static void hrtimer_switch_to_hres(void) retrigger_next_event(NULL); } @@ -468,7 +398,7 @@ Signed-off-by: Steven Rostedt (VMware) static void clock_was_set_work(struct work_struct *work) { clock_was_set(); -@@ -768,7 +745,6 @@ +@@ -768,7 +745,6 @@ void clock_was_set_delayed(void) { schedule_work(&hrtimer_work); } @@ -476,6 +406,8 @@ Signed-off-by: Steven Rostedt (VMware) #else +diff --git a/kernel/workqueue.c b/kernel/workqueue.c +index 9c10264d2679..e6a96fe8896b 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -49,8 +49,6 @@ @@ -487,7 +419,7 @@ Signed-off-by: Steven Rostedt (VMware) #include "workqueue_internal.h" -@@ -125,11 +123,6 @@ +@@ -125,11 +123,6 @@ enum { * cpu or grabbing pool->lock is enough for read access. If * POOL_DISASSOCIATED is set, it's identical to L. * @@ -499,7 +431,7 @@ Signed-off-by: Steven Rostedt (VMware) * A: wq_pool_attach_mutex protected. * * PL: wq_pool_mutex protected. -@@ -151,7 +144,7 @@ +@@ -151,7 +144,7 @@ enum { /* struct worker is defined in workqueue_internal.h */ struct worker_pool { @@ -508,7 +440,7 @@ Signed-off-by: Steven Rostedt (VMware) int cpu; /* I: the associated cpu */ int node; /* I: the associated node ID */ int id; /* I: pool ID */ -@@ -304,8 +297,8 @@ +@@ -304,8 +297,8 @@ static struct workqueue_attrs *wq_update_unbound_numa_attrs_buf; static DEFINE_MUTEX(wq_pool_mutex); /* protects pools and workqueues list */ static DEFINE_MUTEX(wq_pool_attach_mutex); /* protects worker attach/detach */ @@ -519,7 +451,7 @@ Signed-off-by: Steven Rostedt (VMware) static LIST_HEAD(workqueues); /* PR: list of all workqueues */ static bool workqueue_freezing; /* PL: have wqs started freezing? */ -@@ -357,8 +350,6 @@ +@@ -357,8 +350,6 @@ EXPORT_SYMBOL_GPL(system_power_efficient_wq); struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly; EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq); @@ -528,7 +460,7 @@ Signed-off-by: Steven Rostedt (VMware) static int worker_thread(void *__worker); static void workqueue_sysfs_unregister(struct workqueue_struct *wq); -@@ -435,31 +426,6 @@ +@@ -435,31 +426,6 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq); if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \ else @@ -560,7 +492,7 @@ Signed-off-by: Steven Rostedt (VMware) #ifdef CONFIG_DEBUG_OBJECTS_WORK static struct debug_obj_descr work_debug_descr; -@@ -862,20 +828,14 @@ +@@ -862,20 +828,14 @@ static struct worker *first_idle_worker(struct worker_pool *pool) * Wake up the first idle worker of @pool. * * CONTEXT: @@ -583,7 +515,7 @@ Signed-off-by: Steven Rostedt (VMware) } /** -@@ -904,7 +864,7 @@ +@@ -904,7 +864,7 @@ void wq_worker_running(struct task_struct *task) */ void wq_worker_sleeping(struct task_struct *task) { @@ -592,7 +524,7 @@ Signed-off-by: Steven Rostedt (VMware) struct worker_pool *pool; /* -@@ -921,18 +881,26 @@ +@@ -921,18 +881,26 @@ void wq_worker_sleeping(struct task_struct *task) return; worker->sleeping = 1; @@ -622,7 +554,7 @@ Signed-off-by: Steven Rostedt (VMware) } /** -@@ -943,7 +911,7 @@ +@@ -943,7 +911,7 @@ void wq_worker_sleeping(struct task_struct *task) * Set @flags in @worker->flags and adjust nr_running accordingly. * * CONTEXT: @@ -631,7 +563,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static inline void worker_set_flags(struct worker *worker, unsigned int flags) { -@@ -968,7 +936,7 @@ +@@ -968,7 +936,7 @@ static inline void worker_set_flags(struct worker *worker, unsigned int flags) * Clear @flags in @worker->flags and adjust nr_running accordingly. * * CONTEXT: @@ -640,7 +572,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static inline void worker_clr_flags(struct worker *worker, unsigned int flags) { -@@ -1016,7 +984,7 @@ +@@ -1016,7 +984,7 @@ static inline void worker_clr_flags(struct worker *worker, unsigned int flags) * actually occurs, it should be easy to locate the culprit work function. * * CONTEXT: @@ -649,7 +581,7 @@ Signed-off-by: Steven Rostedt (VMware) * * Return: * Pointer to worker which is executing @work if found, %NULL -@@ -1051,7 +1019,7 @@ +@@ -1051,7 +1019,7 @@ static struct worker *find_worker_executing_work(struct worker_pool *pool, * nested inside outer list_for_each_entry_safe(). * * CONTEXT: @@ -658,7 +590,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void move_linked_works(struct work_struct *work, struct list_head *head, struct work_struct **nextp) -@@ -1129,11 +1097,9 @@ +@@ -1129,11 +1097,9 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq) * As both pwqs and pools are RCU protected, the * following lock operations are safe. */ @@ -672,7 +604,7 @@ Signed-off-by: Steven Rostedt (VMware) } } -@@ -1166,7 +1132,7 @@ +@@ -1166,7 +1132,7 @@ static void pwq_activate_first_delayed(struct pool_workqueue *pwq) * decrement nr_in_flight of its pwq and handle workqueue flushing. * * CONTEXT: @@ -681,7 +613,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void pwq_dec_nr_in_flight(struct pool_workqueue *pwq, int color) { -@@ -1237,7 +1203,7 @@ +@@ -1237,7 +1203,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork, struct worker_pool *pool; struct pool_workqueue *pwq; @@ -690,7 +622,7 @@ Signed-off-by: Steven Rostedt (VMware) /* try to steal the timer if it exists */ if (is_dwork) { -@@ -1265,7 +1231,7 @@ +@@ -1265,7 +1231,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork, if (!pool) goto fail; @@ -699,7 +631,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * work->data is guaranteed to point to pwq only while the work * item is queued on pwq->wq, and both updating work->data to point -@@ -1294,17 +1260,17 @@ +@@ -1294,17 +1260,17 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork, /* work->data points to pwq iff queued, point to pool */ set_work_pool_and_keep_pending(work, pool->id); @@ -721,7 +653,7 @@ Signed-off-by: Steven Rostedt (VMware) return -EAGAIN; } -@@ -1319,7 +1285,7 @@ +@@ -1319,7 +1285,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork, * work_struct flags. * * CONTEXT: @@ -730,7 +662,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void insert_work(struct pool_workqueue *pwq, struct work_struct *work, struct list_head *head, unsigned int extra_flags) -@@ -1406,13 +1372,7 @@ +@@ -1406,13 +1372,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, * queued or lose PENDING. Grabbing PENDING and queueing should * happen with IRQ disabled. */ @@ -744,7 +676,7 @@ Signed-off-by: Steven Rostedt (VMware) debug_work_activate(work); -@@ -1442,7 +1402,7 @@ +@@ -1442,7 +1402,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, if (last_pool && last_pool != pwq->pool) { struct worker *worker; @@ -753,7 +685,7 @@ Signed-off-by: Steven Rostedt (VMware) worker = find_worker_executing_work(last_pool, work); -@@ -1450,11 +1410,11 @@ +@@ -1450,11 +1410,11 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, pwq = worker->current_pwq; } else { /* meh... not running there, queue here */ @@ -768,7 +700,7 @@ Signed-off-by: Steven Rostedt (VMware) } /* -@@ -1467,7 +1427,7 @@ +@@ -1467,7 +1427,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, */ if (unlikely(!pwq->refcnt)) { if (wq->flags & WQ_UNBOUND) { @@ -777,7 +709,7 @@ Signed-off-by: Steven Rostedt (VMware) cpu_relax(); goto retry; } -@@ -1499,7 +1459,7 @@ +@@ -1499,7 +1459,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq, insert_work(pwq, work, worklist, work_flags); out: @@ -786,7 +718,7 @@ Signed-off-by: Steven Rostedt (VMware) rcu_read_unlock(); } -@@ -1520,14 +1480,14 @@ +@@ -1520,14 +1480,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq, bool ret = false; unsigned long flags; @@ -803,7 +735,7 @@ Signed-off-by: Steven Rostedt (VMware) return ret; } EXPORT_SYMBOL(queue_work_on); -@@ -1535,12 +1495,11 @@ +@@ -1535,12 +1495,11 @@ EXPORT_SYMBOL(queue_work_on); void delayed_work_timer_fn(struct timer_list *t) { struct delayed_work *dwork = from_timer(dwork, t, timer); @@ -819,7 +751,7 @@ Signed-off-by: Steven Rostedt (VMware) } EXPORT_SYMBOL(delayed_work_timer_fn); -@@ -1595,14 +1554,14 @@ +@@ -1595,14 +1554,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq, unsigned long flags; /* read the comment in __queue_work() */ @@ -836,7 +768,7 @@ Signed-off-by: Steven Rostedt (VMware) return ret; } EXPORT_SYMBOL(queue_delayed_work_on); -@@ -1637,7 +1596,7 @@ +@@ -1637,7 +1596,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq, if (likely(ret >= 0)) { __queue_delayed_work(cpu, wq, dwork, delay); @@ -845,7 +777,7 @@ Signed-off-by: Steven Rostedt (VMware) } /* -ENOENT from try_to_grab_pending() becomes %true */ -@@ -1648,12 +1607,11 @@ +@@ -1648,12 +1607,11 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on); static void rcu_work_rcufn(struct rcu_head *rcu) { struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu); @@ -860,7 +792,7 @@ Signed-off-by: Steven Rostedt (VMware) } /** -@@ -1688,7 +1646,7 @@ +@@ -1688,7 +1646,7 @@ EXPORT_SYMBOL(queue_rcu_work); * necessary. * * LOCKING: @@ -869,7 +801,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void worker_enter_idle(struct worker *worker) { -@@ -1705,9 +1663,7 @@ +@@ -1705,9 +1663,7 @@ static void worker_enter_idle(struct worker *worker) worker->last_active = jiffies; /* idle_list is LIFO */ @@ -879,7 +811,7 @@ Signed-off-by: Steven Rostedt (VMware) if (too_many_workers(pool) && !timer_pending(&pool->idle_timer)) mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT); -@@ -1730,7 +1686,7 @@ +@@ -1730,7 +1686,7 @@ static void worker_enter_idle(struct worker *worker) * @worker is leaving idle state. Update stats. * * LOCKING: @@ -888,7 +820,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void worker_leave_idle(struct worker *worker) { -@@ -1740,9 +1696,7 @@ +@@ -1740,9 +1696,7 @@ static void worker_leave_idle(struct worker *worker) return; worker_clr_flags(worker, WORKER_IDLE); pool->nr_idle--; @@ -898,7 +830,7 @@ Signed-off-by: Steven Rostedt (VMware) } static struct worker *alloc_worker(int node) -@@ -1870,11 +1824,11 @@ +@@ -1870,11 +1824,11 @@ static struct worker *create_worker(struct worker_pool *pool) worker_attach_to_pool(worker, pool); /* start the newly created worker */ @@ -912,7 +844,7 @@ Signed-off-by: Steven Rostedt (VMware) return worker; -@@ -1893,7 +1847,7 @@ +@@ -1893,7 +1847,7 @@ static struct worker *create_worker(struct worker_pool *pool) * be idle. * * CONTEXT: @@ -921,7 +853,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void destroy_worker(struct worker *worker) { -@@ -1910,9 +1864,7 @@ +@@ -1910,9 +1864,7 @@ static void destroy_worker(struct worker *worker) pool->nr_workers--; pool->nr_idle--; @@ -931,7 +863,7 @@ Signed-off-by: Steven Rostedt (VMware) worker->flags |= WORKER_DIE; wake_up_process(worker->task); } -@@ -1921,7 +1873,7 @@ +@@ -1921,7 +1873,7 @@ static void idle_worker_timeout(struct timer_list *t) { struct worker_pool *pool = from_timer(pool, t, idle_timer); @@ -940,7 +872,7 @@ Signed-off-by: Steven Rostedt (VMware) while (too_many_workers(pool)) { struct worker *worker; -@@ -1939,7 +1891,7 @@ +@@ -1939,7 +1891,7 @@ static void idle_worker_timeout(struct timer_list *t) destroy_worker(worker); } @@ -949,7 +881,7 @@ Signed-off-by: Steven Rostedt (VMware) } static void send_mayday(struct work_struct *work) -@@ -1970,8 +1922,8 @@ +@@ -1970,8 +1922,8 @@ static void pool_mayday_timeout(struct timer_list *t) struct worker_pool *pool = from_timer(pool, t, mayday_timer); struct work_struct *work; @@ -960,7 +892,7 @@ Signed-off-by: Steven Rostedt (VMware) if (need_to_create_worker(pool)) { /* -@@ -1984,8 +1936,8 @@ +@@ -1984,8 +1936,8 @@ static void pool_mayday_timeout(struct timer_list *t) send_mayday(work); } @@ -971,7 +903,7 @@ Signed-off-by: Steven Rostedt (VMware) mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INTERVAL); } -@@ -2004,7 +1956,7 @@ +@@ -2004,7 +1956,7 @@ static void pool_mayday_timeout(struct timer_list *t) * may_start_working() %true. * * LOCKING: @@ -980,7 +912,7 @@ Signed-off-by: Steven Rostedt (VMware) * multiple times. Does GFP_KERNEL allocations. Called only from * manager. */ -@@ -2013,7 +1965,7 @@ +@@ -2013,7 +1965,7 @@ __releases(&pool->lock) __acquires(&pool->lock) { restart: @@ -989,7 +921,7 @@ Signed-off-by: Steven Rostedt (VMware) /* if we don't make progress in MAYDAY_INITIAL_TIMEOUT, call for help */ mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INITIAL_TIMEOUT); -@@ -2029,7 +1981,7 @@ +@@ -2029,7 +1981,7 @@ __acquires(&pool->lock) } del_timer_sync(&pool->mayday_timer); @@ -998,7 +930,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * This is necessary even after a new worker was just successfully * created as @pool->lock was dropped and the new worker might have -@@ -2052,7 +2004,7 @@ +@@ -2052,7 +2004,7 @@ __acquires(&pool->lock) * and may_start_working() is true. * * CONTEXT: @@ -1007,7 +939,7 @@ Signed-off-by: Steven Rostedt (VMware) * multiple times. Does GFP_KERNEL allocations. * * Return: -@@ -2075,7 +2027,7 @@ +@@ -2075,7 +2027,7 @@ static bool manage_workers(struct worker *worker) pool->manager = NULL; pool->flags &= ~POOL_MANAGER_ACTIVE; @@ -1016,7 +948,7 @@ Signed-off-by: Steven Rostedt (VMware) return true; } -@@ -2091,7 +2043,7 @@ +@@ -2091,7 +2043,7 @@ static bool manage_workers(struct worker *worker) * call this function to process a work. * * CONTEXT: @@ -1025,7 +957,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void process_one_work(struct worker *worker, struct work_struct *work) __releases(&pool->lock) -@@ -2173,7 +2125,7 @@ +@@ -2173,7 +2125,7 @@ __acquires(&pool->lock) */ set_work_pool_and_clear_pending(work, pool->id); @@ -1034,7 +966,7 @@ Signed-off-by: Steven Rostedt (VMware) lock_map_acquire(&pwq->wq->lockdep_map); lock_map_acquire(&lockdep_map); -@@ -2228,7 +2180,7 @@ +@@ -2228,7 +2180,7 @@ __acquires(&pool->lock) */ cond_resched(); @@ -1043,7 +975,7 @@ Signed-off-by: Steven Rostedt (VMware) /* clear cpu intensive status */ if (unlikely(cpu_intensive)) -@@ -2251,7 +2203,7 @@ +@@ -2251,7 +2203,7 @@ __acquires(&pool->lock) * fetches a work from the top and executes it. * * CONTEXT: @@ -1052,7 +984,7 @@ Signed-off-by: Steven Rostedt (VMware) * multiple times. */ static void process_scheduled_works(struct worker *worker) -@@ -2293,11 +2245,11 @@ +@@ -2293,11 +2245,11 @@ static int worker_thread(void *__worker) /* tell the scheduler that this is a workqueue worker */ set_pf_worker(true); woke_up: @@ -1066,7 +998,7 @@ Signed-off-by: Steven Rostedt (VMware) WARN_ON_ONCE(!list_empty(&worker->entry)); set_pf_worker(false); -@@ -2363,7 +2315,7 @@ +@@ -2363,7 +2315,7 @@ static int worker_thread(void *__worker) */ worker_enter_idle(worker); __set_current_state(TASK_IDLE); @@ -1075,7 +1007,7 @@ Signed-off-by: Steven Rostedt (VMware) schedule(); goto woke_up; } -@@ -2417,7 +2369,7 @@ +@@ -2417,7 +2369,7 @@ static int rescuer_thread(void *__rescuer) should_stop = kthread_should_stop(); /* see whether any pwq is asking for help */ @@ -1084,7 +1016,7 @@ Signed-off-by: Steven Rostedt (VMware) while (!list_empty(&wq->maydays)) { struct pool_workqueue *pwq = list_first_entry(&wq->maydays, -@@ -2429,11 +2381,11 @@ +@@ -2429,11 +2381,11 @@ static int rescuer_thread(void *__rescuer) __set_current_state(TASK_RUNNING); list_del_init(&pwq->mayday_node); @@ -1098,7 +1030,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * Slurp in all works issued via this workqueue and -@@ -2462,7 +2414,7 @@ +@@ -2462,7 +2414,7 @@ static int rescuer_thread(void *__rescuer) * incur MAYDAY_INTERVAL delay inbetween. */ if (need_to_create_worker(pool)) { @@ -1107,7 +1039,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * Queue iff we aren't racing destruction * and somebody else hasn't queued it already. -@@ -2471,7 +2423,7 @@ +@@ -2471,7 +2423,7 @@ static int rescuer_thread(void *__rescuer) get_pwq(pwq); list_add_tail(&pwq->mayday_node, &wq->maydays); } @@ -1116,7 +1048,7 @@ Signed-off-by: Steven Rostedt (VMware) } } -@@ -2489,14 +2441,14 @@ +@@ -2489,14 +2441,14 @@ static int rescuer_thread(void *__rescuer) if (need_more_worker(pool)) wake_up_worker(pool); @@ -1134,7 +1066,7 @@ Signed-off-by: Steven Rostedt (VMware) if (should_stop) { __set_current_state(TASK_RUNNING); -@@ -2576,7 +2528,7 @@ +@@ -2576,7 +2528,7 @@ static void wq_barrier_func(struct work_struct *work) * underneath us, so we can't reliably determine pwq from @target. * * CONTEXT: @@ -1143,7 +1075,7 @@ Signed-off-by: Steven Rostedt (VMware) */ static void insert_wq_barrier(struct pool_workqueue *pwq, struct wq_barrier *barr, -@@ -2663,7 +2615,7 @@ +@@ -2663,7 +2615,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq, for_each_pwq(pwq, wq) { struct worker_pool *pool = pwq->pool; @@ -1152,7 +1084,7 @@ Signed-off-by: Steven Rostedt (VMware) if (flush_color >= 0) { WARN_ON_ONCE(pwq->flush_color != -1); -@@ -2680,7 +2632,7 @@ +@@ -2680,7 +2632,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq, pwq->work_color = work_color; } @@ -1161,7 +1093,7 @@ Signed-off-by: Steven Rostedt (VMware) } if (flush_color >= 0 && atomic_dec_and_test(&wq->nr_pwqs_to_flush)) -@@ -2880,9 +2832,9 @@ +@@ -2880,9 +2832,9 @@ void drain_workqueue(struct workqueue_struct *wq) for_each_pwq(pwq, wq) { bool drained; @@ -1173,7 +1105,7 @@ Signed-off-by: Steven Rostedt (VMware) if (drained) continue; -@@ -2918,7 +2870,7 @@ +@@ -2918,7 +2870,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr, return false; } @@ -1182,7 +1114,7 @@ Signed-off-by: Steven Rostedt (VMware) /* see the comment in try_to_grab_pending() with the same code */ pwq = get_work_pwq(work); if (pwq) { -@@ -2934,7 +2886,7 @@ +@@ -2934,7 +2886,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr, check_flush_dependency(pwq->wq, work); insert_wq_barrier(pwq, barr, work, worker); @@ -1191,7 +1123,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * Force a lock recursion deadlock when using flush_work() inside a -@@ -2953,7 +2905,7 @@ +@@ -2953,7 +2905,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr, rcu_read_unlock(); return true; already_gone: @@ -1200,7 +1132,7 @@ Signed-off-by: Steven Rostedt (VMware) rcu_read_unlock(); return false; } -@@ -3054,7 +3006,7 @@ +@@ -3054,7 +3006,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork) /* tell other tasks trying to grab @work to back off */ mark_work_canceling(work); @@ -1209,7 +1141,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * This allows canceling during early boot. We know that @work -@@ -3115,10 +3067,10 @@ +@@ -3115,10 +3067,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync); */ bool flush_delayed_work(struct delayed_work *dwork) { @@ -1222,7 +1154,7 @@ Signed-off-by: Steven Rostedt (VMware) return flush_work(&dwork->work); } EXPORT_SYMBOL(flush_delayed_work); -@@ -3156,7 +3108,7 @@ +@@ -3156,7 +3108,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork) return false; set_work_pool_and_clear_pending(work, get_work_pool_id(work)); @@ -1231,7 +1163,7 @@ Signed-off-by: Steven Rostedt (VMware) return ret; } -@@ -3266,7 +3218,7 @@ +@@ -3266,7 +3218,7 @@ EXPORT_SYMBOL_GPL(execute_in_process_context); * * Undo alloc_workqueue_attrs(). */ @@ -1240,7 +1172,7 @@ Signed-off-by: Steven Rostedt (VMware) { if (attrs) { free_cpumask_var(attrs->cpumask); -@@ -3276,21 +3228,20 @@ +@@ -3276,21 +3228,20 @@ void free_workqueue_attrs(struct workqueue_attrs *attrs) /** * alloc_workqueue_attrs - allocate a workqueue_attrs @@ -1265,7 +1197,7 @@ Signed-off-by: Steven Rostedt (VMware) goto fail; cpumask_copy(attrs->cpumask, cpu_possible_mask); -@@ -3347,7 +3298,7 @@ +@@ -3347,7 +3298,7 @@ static bool wqattrs_equal(const struct workqueue_attrs *a, */ static int init_worker_pool(struct worker_pool *pool) { @@ -1274,7 +1206,7 @@ Signed-off-by: Steven Rostedt (VMware) pool->id = -1; pool->cpu = -1; pool->node = NUMA_NO_NODE; -@@ -3368,7 +3319,7 @@ +@@ -3368,7 +3319,7 @@ static int init_worker_pool(struct worker_pool *pool) pool->refcnt = 1; /* shouldn't fail above this point */ @@ -1283,7 +1215,7 @@ Signed-off-by: Steven Rostedt (VMware) if (!pool->attrs) return -ENOMEM; return 0; -@@ -3433,15 +3384,15 @@ +@@ -3433,15 +3384,15 @@ static void put_unbound_pool(struct worker_pool *pool) * @pool's workers from blocking on attach_mutex. We're the last * manager and @pool gets freed with the flag set. */ @@ -1302,7 +1234,7 @@ Signed-off-by: Steven Rostedt (VMware) mutex_lock(&wq_pool_attach_mutex); if (!list_empty(&pool->workers)) -@@ -3595,7 +3546,7 @@ +@@ -3595,7 +3546,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq) return; /* this function can be called during early boot w/ irq disabled */ @@ -1311,7 +1243,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * During [un]freezing, the caller is responsible for ensuring that -@@ -3618,7 +3569,7 @@ +@@ -3618,7 +3569,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq) pwq->max_active = 0; } @@ -1320,7 +1252,7 @@ Signed-off-by: Steven Rostedt (VMware) } /* initialize newly alloced @pwq which is associated with @wq and @pool */ -@@ -3791,8 +3742,8 @@ +@@ -3791,8 +3742,8 @@ apply_wqattrs_prepare(struct workqueue_struct *wq, ctx = kzalloc(struct_size(ctx, pwq_tbl, nr_node_ids), GFP_KERNEL); @@ -1331,7 +1263,7 @@ Signed-off-by: Steven Rostedt (VMware) if (!ctx || !new_attrs || !tmp_attrs) goto out_free; -@@ -3928,7 +3879,7 @@ +@@ -3928,7 +3879,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq, * * Return: 0 on success and -errno on failure. */ @@ -1340,7 +1272,7 @@ Signed-off-by: Steven Rostedt (VMware) const struct workqueue_attrs *attrs) { int ret; -@@ -3939,7 +3890,6 @@ +@@ -3939,7 +3890,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq, return ret; } @@ -1348,7 +1280,7 @@ Signed-off-by: Steven Rostedt (VMware) /** * wq_update_unbound_numa - update NUMA affinity of a wq for CPU hot[un]plug -@@ -4017,9 +3967,9 @@ +@@ -4017,9 +3967,9 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu, use_dfl_pwq: mutex_lock(&wq->mutex); @@ -1360,7 +1292,7 @@ Signed-off-by: Steven Rostedt (VMware) old_pwq = numa_pwq_tbl_install(wq, node, wq->dfl_pwq); out_unlock: mutex_unlock(&wq->mutex); -@@ -4138,7 +4088,7 @@ +@@ -4138,7 +4088,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt, return NULL; if (flags & WQ_UNBOUND) { @@ -1369,7 +1301,7 @@ Signed-off-by: Steven Rostedt (VMware) if (!wq->unbound_attrs) goto err_free_wq; } -@@ -4225,9 +4175,9 @@ +@@ -4225,9 +4175,9 @@ void destroy_workqueue(struct workqueue_struct *wq) struct worker *rescuer = wq->rescuer; /* this prevents new queueing */ @@ -1381,7 +1313,7 @@ Signed-off-by: Steven Rostedt (VMware) /* rescuer will empty maydays list before exiting */ kthread_stop(rescuer->task); -@@ -4422,10 +4372,10 @@ +@@ -4422,10 +4372,10 @@ unsigned int work_busy(struct work_struct *work) rcu_read_lock(); pool = get_work_pool(work); if (pool) { @@ -1394,7 +1326,7 @@ Signed-off-by: Steven Rostedt (VMware) } rcu_read_unlock(); -@@ -4632,10 +4582,10 @@ +@@ -4632,10 +4582,10 @@ void show_workqueue_state(void) pr_info("workqueue %s: flags=0x%x\n", wq->name, wq->flags); for_each_pwq(pwq, wq) { @@ -1407,7 +1339,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * We could be printing a lot from atomic context, e.g. * sysrq-t -> show_workqueue_state(). Avoid triggering -@@ -4649,7 +4599,7 @@ +@@ -4649,7 +4599,7 @@ void show_workqueue_state(void) struct worker *worker; bool first = true; @@ -1416,7 +1348,7 @@ Signed-off-by: Steven Rostedt (VMware) if (pool->nr_workers == pool->nr_idle) goto next_pool; -@@ -4668,7 +4618,7 @@ +@@ -4668,7 +4618,7 @@ void show_workqueue_state(void) } pr_cont("\n"); next_pool: @@ -1425,7 +1357,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * We could be printing a lot from atomic context, e.g. * sysrq-t -> show_workqueue_state(). Avoid triggering -@@ -4698,7 +4648,7 @@ +@@ -4698,7 +4648,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task) struct worker_pool *pool = worker->pool; if (pool) { @@ -1434,7 +1366,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * ->desc tracks information (wq name or * set_worker_desc()) for the latest execution. If -@@ -4712,7 +4662,7 @@ +@@ -4712,7 +4662,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task) scnprintf(buf + off, size - off, "-%s", worker->desc); } @@ -1443,7 +1375,7 @@ Signed-off-by: Steven Rostedt (VMware) } } -@@ -4743,7 +4693,7 @@ +@@ -4743,7 +4693,7 @@ static void unbind_workers(int cpu) for_each_cpu_worker_pool(pool, cpu) { mutex_lock(&wq_pool_attach_mutex); @@ -1452,7 +1384,7 @@ Signed-off-by: Steven Rostedt (VMware) /* * We've blocked all attach/detach operations. Make all workers -@@ -4757,7 +4707,7 @@ +@@ -4757,7 +4707,7 @@ static void unbind_workers(int cpu) pool->flags |= POOL_DISASSOCIATED; @@ -1461,7 +1393,7 @@ Signed-off-by: Steven Rostedt (VMware) mutex_unlock(&wq_pool_attach_mutex); /* -@@ -4783,9 +4733,9 @@ +@@ -4783,9 +4733,9 @@ static void unbind_workers(int cpu) * worker blocking could lead to lengthy stalls. Kick off * unbound chain execution of currently pending work items. */ @@ -1473,7 +1405,7 @@ Signed-off-by: Steven Rostedt (VMware) } } -@@ -4812,7 +4762,7 @@ +@@ -4812,7 +4762,7 @@ static void rebind_workers(struct worker_pool *pool) WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, pool->attrs->cpumask) < 0); @@ -1482,7 +1414,7 @@ Signed-off-by: Steven Rostedt (VMware) pool->flags &= ~POOL_DISASSOCIATED; -@@ -4851,7 +4801,7 @@ +@@ -4851,7 +4801,7 @@ static void rebind_workers(struct worker_pool *pool) WRITE_ONCE(worker->flags, worker_flags); } @@ -1491,7 +1423,7 @@ Signed-off-by: Steven Rostedt (VMware) } /** -@@ -5303,7 +5253,7 @@ +@@ -5303,7 +5253,7 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq) lockdep_assert_held(&wq_pool_mutex); @@ -1500,7 +1432,7 @@ Signed-off-by: Steven Rostedt (VMware) if (!attrs) return NULL; -@@ -5725,7 +5675,7 @@ +@@ -5725,7 +5675,7 @@ static void __init wq_numa_init(void) return; } @@ -1509,7 +1441,7 @@ Signed-off-by: Steven Rostedt (VMware) BUG_ON(!wq_update_unbound_numa_attrs_buf); /* -@@ -5800,7 +5750,7 @@ +@@ -5800,7 +5750,7 @@ int __init workqueue_init_early(void) for (i = 0; i < NR_STD_WORKER_POOLS; i++) { struct workqueue_attrs *attrs; @@ -1518,7 +1450,7 @@ Signed-off-by: Steven Rostedt (VMware) attrs->nice = std_nice[i]; unbound_std_wq_attrs[i] = attrs; -@@ -5809,7 +5759,7 @@ +@@ -5809,7 +5759,7 @@ int __init workqueue_init_early(void) * guaranteed by max_active which is enforced by pwqs. * Turn off NUMA so that dfl_pwq is used for all nodes. */ @@ -1527,3 +1459,6 @@ Signed-off-by: Steven Rostedt (VMware) attrs->nice = std_nice[i]; attrs->no_numa = true; ordered_wq_attrs[i] = attrs; +-- +2.25.1 + diff --git a/debian/patches-rt/0290-i2c-exynos5-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0287-i2c-exynos5-Remove-IRQF_ONESHOT.patch similarity index 91% rename from debian/patches-rt/0290-i2c-exynos5-Remove-IRQF_ONESHOT.patch rename to debian/patches-rt/0287-i2c-exynos5-Remove-IRQF_ONESHOT.patch index 5bc966c35..6587cba8e 100644 --- a/debian/patches-rt/0290-i2c-exynos5-Remove-IRQF_ONESHOT.patch +++ b/debian/patches-rt/0287-i2c-exynos5-Remove-IRQF_ONESHOT.patch @@ -1,8 +1,8 @@ -From 7c3f8afe7bf7bfc55e4dd00b2cdc0471d7fa56b4 Mon Sep 17 00:00:00 2001 +From a6f963a5d04359e6b27fc6a6ec9da5754729d0e0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 13 Aug 2019 12:30:12 +0200 -Subject: [PATCH 290/328] i2c: exynos5: Remove IRQF_ONESHOT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 287/325] i2c: exynos5: Remove IRQF_ONESHOT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 4b217df0ab3f7910c96e42091cc7d9f221d05f01 ] diff --git a/debian/patches-rt/0291-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0288-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch similarity index 88% rename from debian/patches-rt/0291-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch rename to debian/patches-rt/0288-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch index ca30c9289..8829b6154 100644 --- a/debian/patches-rt/0291-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch +++ b/debian/patches-rt/0288-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch @@ -1,8 +1,8 @@ -From d1b1f2e9ff0c025196d564544a0b808fdb73cc16 Mon Sep 17 00:00:00 2001 +From 3b4a2b1bd8409f08d5a027e51b14fd5e6eb31708 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 13 Aug 2019 12:30:37 +0200 -Subject: [PATCH 291/328] i2c: hix5hd2: Remove IRQF_ONESHOT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 288/325] i2c: hix5hd2: Remove IRQF_ONESHOT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit e88b481f3f86f11e3243e0808a830e5ca5782a9d ] @@ -24,7 +24,7 @@ Signed-off-by: Steven Rostedt (VMware) 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/i2c/busses/i2c-hix5hd2.c b/drivers/i2c/busses/i2c-hix5hd2.c -index 061a4bfb03f4..575aff50b19a 100644 +index b5ad7696adf9..0f08ef1f7f41 100644 --- a/drivers/i2c/busses/i2c-hix5hd2.c +++ b/drivers/i2c/busses/i2c-hix5hd2.c @@ -449,8 +449,7 @@ static int hix5hd2_i2c_probe(struct platform_device *pdev) diff --git a/debian/patches-rt/0292-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch b/debian/patches-rt/0289-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch similarity index 91% rename from debian/patches-rt/0292-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch rename to debian/patches-rt/0289-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch index e312070f9..6f42cb4cc 100644 --- a/debian/patches-rt/0292-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch +++ b/debian/patches-rt/0289-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch @@ -1,9 +1,9 @@ -From adb807c2fbd6d2f64515708367de2cae2b106925 Mon Sep 17 00:00:00 2001 +From 7775d07be42794e09d02410ecec003db98b79c44 Mon Sep 17 00:00:00 2001 From: Juri Lelli Date: Wed, 31 Jul 2019 12:37:15 +0200 -Subject: [PATCH 292/328] sched/deadline: Ensure inactive_timer runs in hardirq +Subject: [PATCH 289/325] sched/deadline: Ensure inactive_timer runs in hardirq 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 [ Upstream commit ba94e7aed7405c58251b1380e6e7d73aa8284b41 ] diff --git a/debian/patches-rt/0293-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch b/debian/patches-rt/0290-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch similarity index 96% rename from debian/patches-rt/0293-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch rename to debian/patches-rt/0290-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch index 57e3fbafc..091d31ecb 100644 --- a/debian/patches-rt/0293-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch +++ b/debian/patches-rt/0290-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch @@ -1,9 +1,9 @@ -From 40e46d2cf474897d209be74b3c6471dbdf4f2aea Mon Sep 17 00:00:00 2001 +From 9af59981c8191547bb127a9be2984f0009085b2e Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Mon, 15 Jul 2019 15:25:00 -0500 -Subject: [PATCH 293/328] thermal/x86_pkg_temp: make pkg_temp_lock a raw +Subject: [PATCH 290/325] thermal/x86_pkg_temp: make pkg_temp_lock a 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 [ Upstream commit 8b03bb3ea7861b70b506199a69b1c8f81fe2d4d0 ] diff --git a/debian/patches-rt/0294-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch b/debian/patches-rt/0291-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch similarity index 98% rename from debian/patches-rt/0294-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch rename to debian/patches-rt/0291-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch index 9eb78cb3d..0acfba85b 100644 --- a/debian/patches-rt/0294-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch +++ b/debian/patches-rt/0291-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch @@ -1,8 +1,8 @@ -From fb3773dcd97159de33e77ec876a5ec0f3d70d576 Mon Sep 17 00:00:00 2001 +From fc310572745c255840931c77c058698ed0ee811c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Aug 2019 16:38:43 +0200 -Subject: [PATCH 294/328] dma-buf: Use seqlock_t instread disabling preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 291/325] dma-buf: Use seqlock_t instread disabling preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 240610aa31094f51f299f06eb8dae8d4cd8d4500 ] diff --git a/debian/patches-rt/0295-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch b/debian/patches-rt/0292-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch similarity index 92% rename from debian/patches-rt/0295-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch rename to debian/patches-rt/0292-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch index 2a6ee7748..f9ce98627 100644 --- a/debian/patches-rt/0295-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch +++ b/debian/patches-rt/0292-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch @@ -1,9 +1,9 @@ -From 616f33b56d89956d43be1ee3a48873012a5e01f2 Mon Sep 17 00:00:00 2001 +From 92af1484300b2fb481fb3cde9f813abebc1b9fd2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Aug 2019 14:29:41 +0200 -Subject: [PATCH 295/328] KVM: arm/arm64: Let the timer expire in hardirq +Subject: [PATCH 292/325] KVM: arm/arm64: Let the timer expire in hardirq context 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 [ Upstream commit 719cc080c914045a6e35787bf4dc3ba91cfd3efb ] diff --git a/debian/patches-rt/0296-x86-preempt-Check-preemption-level-before-looking-at.patch b/debian/patches-rt/0293-x86-preempt-Check-preemption-level-before-looking-at.patch similarity index 86% rename from debian/patches-rt/0296-x86-preempt-Check-preemption-level-before-looking-at.patch rename to debian/patches-rt/0293-x86-preempt-Check-preemption-level-before-looking-at.patch index 99cbac316..9edd25af5 100644 --- a/debian/patches-rt/0296-x86-preempt-Check-preemption-level-before-looking-at.patch +++ b/debian/patches-rt/0293-x86-preempt-Check-preemption-level-before-looking-at.patch @@ -1,9 +1,9 @@ -From 3ff694fd2d9a9eeb03196cbfbb4dd353a83d680e Mon Sep 17 00:00:00 2001 +From b7ae4952818be75c5a6069dd33747475b78ecf6c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Aug 2019 17:08:58 +0200 -Subject: [PATCH 296/328] x86: preempt: Check preemption level before looking +Subject: [PATCH 293/325] x86: preempt: Check preemption level before looking at lazy-preempt -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 19fc8557f2323c52b26561651ed4d51fc688a740 ] diff --git a/debian/patches-rt/0297-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch b/debian/patches-rt/0294-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch similarity index 89% rename from debian/patches-rt/0297-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch rename to debian/patches-rt/0294-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch index d1686c361..c1b472cdd 100644 --- a/debian/patches-rt/0297-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch +++ b/debian/patches-rt/0294-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch @@ -1,9 +1,9 @@ -From 20fa662be972ae5c608f2e5c919aedc9bbdc8930 Mon Sep 17 00:00:00 2001 +From e7c83855d0557c416f5940cc7c57095b166f993f Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Wed, 21 Aug 2019 10:24:07 +0100 -Subject: [PATCH 297/328] hrtimer: Use READ_ONCE to access timer->base in +Subject: [PATCH 294/325] hrtimer: Use READ_ONCE to access timer->base in hrimer_grab_expiry_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 [ Upstream commit 2c8fdbe7ef0ad06c1a326886c5954e117b5657d6 ] diff --git a/debian/patches-rt/0298-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch b/debian/patches-rt/0295-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch similarity index 89% rename from debian/patches-rt/0298-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch rename to debian/patches-rt/0295-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch index f889cbb31..61490c32f 100644 --- a/debian/patches-rt/0298-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch +++ b/debian/patches-rt/0295-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch @@ -1,9 +1,9 @@ -From 3097c6c64c15f7942c9b280325c27db70de41d04 Mon Sep 17 00:00:00 2001 +From 37beb738da51dc49fd9ffe9bfa816a6f6429fe45 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Wed, 21 Aug 2019 10:24:08 +0100 -Subject: [PATCH 298/328] hrtimer: Don't grab the expiry lock for non-soft +Subject: [PATCH 295/325] hrtimer: Don't grab the expiry lock for non-soft hrtimer -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 fd420354bea2f57c11f3de191dffdeea76531e76 ] diff --git a/debian/patches-rt/0299-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch b/debian/patches-rt/0296-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch similarity index 90% rename from debian/patches-rt/0299-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch rename to debian/patches-rt/0296-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch index c1bbffc83..fca3b84e1 100644 --- a/debian/patches-rt/0299-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch +++ b/debian/patches-rt/0296-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch @@ -1,9 +1,9 @@ -From 0167d3fb02b4f30f0f219f65726e5344ad871f9f Mon Sep 17 00:00:00 2001 +From 4d9809e6dfca5b4213ff9fae00819c0af0d4f15d Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Wed, 21 Aug 2019 10:24:09 +0100 -Subject: [PATCH 299/328] hrtimer: Prevent using hrtimer_grab_expiry_lock() on +Subject: [PATCH 296/325] hrtimer: Prevent using hrtimer_grab_expiry_lock() on migration_base -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 cef1b87f98823af923a386f3f69149acb212d4a1 ] diff --git a/debian/patches-rt/0300-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch b/debian/patches-rt/0297-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch similarity index 94% rename from debian/patches-rt/0300-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch rename to debian/patches-rt/0297-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch index 280f30b91..f5d3f182a 100644 --- a/debian/patches-rt/0300-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch +++ b/debian/patches-rt/0297-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch @@ -1,9 +1,9 @@ -From 6aecd0ba09e1dbf7afd6d646c65f732654892d29 Mon Sep 17 00:00:00 2001 +From 40b9a01ca24b87e815110263dc6a8d4d23618a57 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 4 Sep 2019 16:55:27 +0200 -Subject: [PATCH 300/328] hrtimer: Add a missing bracket and hide +Subject: [PATCH 297/325] hrtimer: Add a missing bracket and hide `migration_base' on !SMP -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 47b6de0b7f22c28b40275aeede3993d807668c3b ] diff --git a/debian/patches-rt/0301-posix-timers-Unlock-expiry-lock-in-the-early-return.patch b/debian/patches-rt/0298-posix-timers-Unlock-expiry-lock-in-the-early-return.patch similarity index 89% rename from debian/patches-rt/0301-posix-timers-Unlock-expiry-lock-in-the-early-return.patch rename to debian/patches-rt/0298-posix-timers-Unlock-expiry-lock-in-the-early-return.patch index 476fd6f29..85fb83dc8 100644 --- a/debian/patches-rt/0301-posix-timers-Unlock-expiry-lock-in-the-early-return.patch +++ b/debian/patches-rt/0298-posix-timers-Unlock-expiry-lock-in-the-early-return.patch @@ -1,8 +1,8 @@ -From ae0252a9cd108b1f72aa0d7ff0dfc9a888a05d81 Mon Sep 17 00:00:00 2001 +From f411ec1b4e6bd2f4b4448fa25f79a55478fa3b45 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 16 Sep 2019 12:33:59 +0200 -Subject: [PATCH 301/328] posix-timers: Unlock expiry lock in the early return -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 298/325] posix-timers: Unlock expiry lock in the early return +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 356a2781375ec58521a9bc3f500488745990c242 ] diff --git a/debian/patches-rt/0302-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch b/debian/patches-rt/0299-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch similarity index 91% rename from debian/patches-rt/0302-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch rename to debian/patches-rt/0299-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch index 70444a7a6..8b9472d18 100644 --- a/debian/patches-rt/0302-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch +++ b/debian/patches-rt/0299-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch @@ -1,12 +1,12 @@ -From 1e2e07b7ee887a2c15a4b686358602b5316d3002 Mon Sep 17 00:00:00 2001 +From d7ead78411ba51a030468c6baaedb44999852db5 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Tue, 24 Sep 2019 14:36:41 +0200 -Subject: [PATCH 302/328] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?= +Subject: [PATCH 299/325] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?= =?UTF-8?q?sleeping=5Flock=E2=80=A6()=20to=20annotate=20sleeping=20points?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 4230dd3824c3e1785504e6f757ce79a4b55651fa ] diff --git a/debian/patches-rt/0303-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch b/debian/patches-rt/0300-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch similarity index 88% rename from debian/patches-rt/0303-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch rename to debian/patches-rt/0300-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch index 34c740317..3ad68add3 100644 --- a/debian/patches-rt/0303-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch +++ b/debian/patches-rt/0300-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch @@ -1,9 +1,9 @@ -From ee49bec178fb001b6bc6d6db36cc4832f1c635c3 Mon Sep 17 00:00:00 2001 +From 1c66a5b365296bd3b4ebb2be7eef2d8ba7688414 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sat, 27 Jul 2019 00:56:32 -0500 -Subject: [PATCH 303/328] sched: __set_cpus_allowed_ptr: Check cpus_mask, not +Subject: [PATCH 300/325] sched: __set_cpus_allowed_ptr: Check cpus_mask, not cpus_ptr -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 e5606fb7b042db634ed62b4dd733d62e050e468f ] diff --git a/debian/patches-rt/0304-sched-Remove-dead-__migrate_disabled-check.patch b/debian/patches-rt/0301-sched-Remove-dead-__migrate_disabled-check.patch similarity index 87% rename from debian/patches-rt/0304-sched-Remove-dead-__migrate_disabled-check.patch rename to debian/patches-rt/0301-sched-Remove-dead-__migrate_disabled-check.patch index da001b5a1..f8acb3503 100644 --- a/debian/patches-rt/0304-sched-Remove-dead-__migrate_disabled-check.patch +++ b/debian/patches-rt/0301-sched-Remove-dead-__migrate_disabled-check.patch @@ -1,8 +1,8 @@ -From 0f49b94879548ccd41d4518afa7cf6b88b578656 Mon Sep 17 00:00:00 2001 +From f46e960055b6cbc8a2b26fef4edad0c1b7d3770a Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sat, 27 Jul 2019 00:56:33 -0500 -Subject: [PATCH 304/328] sched: Remove dead __migrate_disabled() check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 301/325] sched: Remove dead __migrate_disabled() check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 14d9272d534ea91262e15db99443fc5995c7c016 ] diff --git a/debian/patches-rt/0305-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch b/debian/patches-rt/0302-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch similarity index 89% rename from debian/patches-rt/0305-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch rename to debian/patches-rt/0302-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch index 3484579f3..b47281312 100644 --- a/debian/patches-rt/0305-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch +++ b/debian/patches-rt/0302-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch @@ -1,8 +1,8 @@ -From db5f1e12f85243ff54296bf28fa3cd8d0b01dac6 Mon Sep 17 00:00:00 2001 +From e55dacd743cbf8cee043aab134f975732e2c7c3b Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sat, 27 Jul 2019 00:56:34 -0500 -Subject: [PATCH 305/328] sched: migrate disable: Protect cpus_ptr with lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 302/325] sched: migrate disable: Protect cpus_ptr with lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 27ee52a891ed2c7e2e2c8332ccae0de7c2674b09 ] diff --git a/debian/patches-rt/0306-lib-smp_processor_id-Don-t-use-cpumask_equal.patch b/debian/patches-rt/0303-lib-smp_processor_id-Don-t-use-cpumask_equal.patch similarity index 90% rename from debian/patches-rt/0306-lib-smp_processor_id-Don-t-use-cpumask_equal.patch rename to debian/patches-rt/0303-lib-smp_processor_id-Don-t-use-cpumask_equal.patch index 13176547a..d50979312 100644 --- a/debian/patches-rt/0306-lib-smp_processor_id-Don-t-use-cpumask_equal.patch +++ b/debian/patches-rt/0303-lib-smp_processor_id-Don-t-use-cpumask_equal.patch @@ -1,8 +1,8 @@ -From 053a5be342cf9ab6925975f8ce90e62bf13c81b1 Mon Sep 17 00:00:00 2001 +From 2a8268e1b24351654fff43cf71aef1206aebeaf0 Mon Sep 17 00:00:00 2001 From: Waiman Long Date: Thu, 3 Oct 2019 16:36:08 -0400 -Subject: [PATCH 306/328] lib/smp_processor_id: Don't use cpumask_equal() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 303/325] lib/smp_processor_id: Don't use cpumask_equal() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 659252061477862f45b79e1de169e6030f5c8918 ] diff --git a/debian/patches-rt/0307-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch b/debian/patches-rt/0304-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch similarity index 89% rename from debian/patches-rt/0307-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch rename to debian/patches-rt/0304-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch index 96af7377c..01dae0bb1 100644 --- a/debian/patches-rt/0307-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch +++ b/debian/patches-rt/0304-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch @@ -1,9 +1,9 @@ -From 4e0a2787e8d6edaa2dcec8a204194283253d8247 Mon Sep 17 00:00:00 2001 +From adad7dbe4e54e932da34439e96166729050fbdc1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 7 Oct 2019 16:45:18 +0200 -Subject: [PATCH 307/328] futex: Make the futex_hash_bucket spinlock_t again +Subject: [PATCH 304/325] futex: Make the futex_hash_bucket spinlock_t again and bring back its old state -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 954ad80c23edfe71f4e8ce70b961eac884320c3a ] @@ -26,7 +26,7 @@ Signed-off-by: Steven Rostedt (VMware) 3 files changed, 194 insertions(+), 104 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index 0b8cff8d9162..e815cf542b82 100644 +index 3c604e3eb20a..81c8908eae3d 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -243,7 +243,7 @@ struct futex_q { @@ -47,7 +47,7 @@ index 0b8cff8d9162..e815cf542b82 100644 struct plist_head chain; } ____cacheline_aligned_in_smp; -@@ -825,13 +825,13 @@ static void get_pi_state(struct futex_pi_state *pi_state) +@@ -842,13 +842,13 @@ static void get_pi_state(struct futex_pi_state *pi_state) * Drops a reference to the pi_state object and frees or caches it * when the last reference is gone. */ @@ -64,7 +64,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* * If pi_state->owner is NULL, the owner is most probably dying -@@ -851,7 +851,9 @@ static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state) +@@ -868,7 +868,9 @@ static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state) raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); } @@ -75,7 +75,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* * pi_state->list is already empty. * clear pi_state->owner. -@@ -860,30 +862,6 @@ static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state) +@@ -877,30 +879,6 @@ static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state) pi_state->owner = NULL; atomic_set(&pi_state->refcount, 1); current->pi_state_cache = pi_state; @@ -106,7 +106,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } } -@@ -900,7 +878,6 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -917,7 +895,6 @@ void exit_pi_state_list(struct task_struct *curr) struct futex_pi_state *pi_state; struct futex_hash_bucket *hb; union futex_key key = FUTEX_KEY_INIT; @@ -114,7 +114,7 @@ index 0b8cff8d9162..e815cf542b82 100644 if (!futex_cmpxchg_enabled) return; -@@ -934,7 +911,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -951,7 +928,7 @@ void exit_pi_state_list(struct task_struct *curr) } raw_spin_unlock_irq(&curr->pi_lock); @@ -123,7 +123,7 @@ index 0b8cff8d9162..e815cf542b82 100644 raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); raw_spin_lock(&curr->pi_lock); /* -@@ -944,8 +921,10 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -961,8 +938,10 @@ void exit_pi_state_list(struct task_struct *curr) if (head->next != next) { /* retain curr->pi_lock for the loop invariant */ raw_spin_unlock(&pi_state->pi_mutex.wait_lock); @@ -136,7 +136,7 @@ index 0b8cff8d9162..e815cf542b82 100644 continue; } -@@ -956,7 +935,7 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -973,7 +952,7 @@ void exit_pi_state_list(struct task_struct *curr) raw_spin_unlock(&curr->pi_lock); raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); @@ -145,7 +145,7 @@ index 0b8cff8d9162..e815cf542b82 100644 rt_mutex_futex_unlock(&pi_state->pi_mutex); put_pi_state(pi_state); -@@ -964,8 +943,6 @@ void exit_pi_state_list(struct task_struct *curr) +@@ -981,8 +960,6 @@ void exit_pi_state_list(struct task_struct *curr) raw_spin_lock_irq(&curr->pi_lock); } raw_spin_unlock_irq(&curr->pi_lock); @@ -154,7 +154,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } #endif -@@ -1452,7 +1429,7 @@ static void __unqueue_futex(struct futex_q *q) +@@ -1469,7 +1446,7 @@ static void __unqueue_futex(struct futex_q *q) { struct futex_hash_bucket *hb; @@ -163,7 +163,7 @@ index 0b8cff8d9162..e815cf542b82 100644 || WARN_ON(plist_node_empty(&q->list))) return; -@@ -1580,21 +1557,21 @@ static inline void +@@ -1597,21 +1574,21 @@ static inline void double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2) { if (hb1 <= hb2) { @@ -191,7 +191,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } /* -@@ -1622,7 +1599,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) +@@ -1639,7 +1616,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) if (!hb_waiters_pending(hb)) goto out_put_key; @@ -200,7 +200,7 @@ index 0b8cff8d9162..e815cf542b82 100644 plist_for_each_entry_safe(this, next, &hb->chain, list) { if (match_futex (&this->key, &key)) { -@@ -1641,7 +1618,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) +@@ -1658,7 +1635,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset) } } @@ -209,7 +209,7 @@ index 0b8cff8d9162..e815cf542b82 100644 wake_up_q(&wake_q); out_put_key: put_futex_key(&key); -@@ -1948,7 +1925,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -1965,7 +1942,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, struct futex_hash_bucket *hb1, *hb2; struct futex_q *this, *next; DEFINE_WAKE_Q(wake_q); @@ -217,7 +217,7 @@ index 0b8cff8d9162..e815cf542b82 100644 if (nr_wake < 0 || nr_requeue < 0) return -EINVAL; -@@ -2176,6 +2152,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2193,6 +2169,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, requeue_pi_wake_futex(this, &key2, hb2); drop_count++; continue; @@ -234,7 +234,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } else if (ret) { /* * rt_mutex_start_proxy_lock() detected a -@@ -2186,7 +2172,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2203,7 +2189,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, * object. */ this->pi_state = NULL; @@ -243,7 +243,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* * We stop queueing more waiters and let user * space deal with the mess. -@@ -2203,7 +2189,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2220,7 +2206,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, * in futex_proxy_trylock_atomic() or in lookup_pi_state(). We * need to drop it here again. */ @@ -252,7 +252,7 @@ index 0b8cff8d9162..e815cf542b82 100644 out_unlock: double_unlock_hb(hb1, hb2); -@@ -2224,7 +2210,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, +@@ -2241,7 +2227,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, out_put_key1: put_futex_key(&key1); out: @@ -260,7 +260,7 @@ index 0b8cff8d9162..e815cf542b82 100644 return ret ? ret : task_count; } -@@ -2248,7 +2233,7 @@ static inline struct futex_hash_bucket *queue_lock(struct futex_q *q) +@@ -2265,7 +2250,7 @@ static inline struct futex_hash_bucket *queue_lock(struct futex_q *q) q->lock_ptr = &hb->lock; @@ -269,7 +269,7 @@ index 0b8cff8d9162..e815cf542b82 100644 return hb; } -@@ -2256,7 +2241,7 @@ static inline void +@@ -2273,7 +2258,7 @@ static inline void queue_unlock(struct futex_hash_bucket *hb) __releases(&hb->lock) { @@ -278,7 +278,7 @@ index 0b8cff8d9162..e815cf542b82 100644 hb_waiters_dec(hb); } -@@ -2295,7 +2280,7 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) +@@ -2312,7 +2297,7 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) __releases(&hb->lock) { __queue_me(q, hb); @@ -287,7 +287,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } /** -@@ -2311,41 +2296,41 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) +@@ -2328,41 +2313,41 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb) */ static int unqueue_me(struct futex_q *q) { @@ -340,7 +340,7 @@ index 0b8cff8d9162..e815cf542b82 100644 ret = 1; } -@@ -2361,16 +2346,13 @@ static int unqueue_me(struct futex_q *q) +@@ -2378,16 +2363,13 @@ static int unqueue_me(struct futex_q *q) static void unqueue_me_pi(struct futex_q *q) __releases(q->lock_ptr) { @@ -359,7 +359,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, -@@ -2503,7 +2485,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, +@@ -2520,7 +2502,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, */ handle_err: raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); @@ -368,7 +368,7 @@ index 0b8cff8d9162..e815cf542b82 100644 switch (err) { case -EFAULT: -@@ -2521,7 +2503,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, +@@ -2538,7 +2520,7 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, break; } @@ -377,7 +377,7 @@ index 0b8cff8d9162..e815cf542b82 100644 raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); /* -@@ -2617,7 +2599,7 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q, +@@ -2634,7 +2616,7 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q, /* * The task state is guaranteed to be set before another task can * wake it. set_current_state() is implemented using smp_store_mb() and @@ -386,7 +386,7 @@ index 0b8cff8d9162..e815cf542b82 100644 * access to the hash list and forcing another memory barrier. */ set_current_state(TASK_INTERRUPTIBLE); -@@ -2908,7 +2890,15 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2925,7 +2907,15 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, * before __rt_mutex_start_proxy_lock() is done. */ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -403,7 +403,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter * such that futex_unlock_pi() is guaranteed to observe the waiter when -@@ -2916,6 +2906,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2933,6 +2923,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); raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock); @@ -411,7 +411,7 @@ index 0b8cff8d9162..e815cf542b82 100644 if (ret) { if (ret == 1) -@@ -2929,7 +2920,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, +@@ -2946,7 +2937,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, ret = rt_mutex_wait_proxy_lock(&q.pi_state->pi_mutex, to, &rt_waiter); cleanup: @@ -420,7 +420,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* * If we failed to acquire the lock (deadlock/signal/timeout), we must * first acquire the hb->lock before removing the lock from the -@@ -3030,7 +3021,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3047,7 +3038,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) return ret; hb = hash_futex(&key); @@ -429,7 +429,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* * Check waiters first. We do not trust user space values at -@@ -3064,10 +3055,19 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3081,10 +3072,19 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) * rt_waiter. Also see the WARN in wake_futex_pi(). */ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); @@ -450,7 +450,7 @@ index 0b8cff8d9162..e815cf542b82 100644 put_pi_state(pi_state); -@@ -3103,7 +3103,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3120,7 +3120,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) * owner. */ if ((ret = cmpxchg_futex_value_locked(&curval, uaddr, uval, 0))) { @@ -459,7 +459,7 @@ index 0b8cff8d9162..e815cf542b82 100644 switch (ret) { case -EFAULT: goto pi_faulted; -@@ -3123,7 +3123,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) +@@ -3140,7 +3140,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) ret = (curval == uval) ? 0 : -EAGAIN; out_unlock: @@ -468,7 +468,7 @@ index 0b8cff8d9162..e815cf542b82 100644 out_putkey: put_futex_key(&key); return ret; -@@ -3239,7 +3239,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3256,7 +3256,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, struct hrtimer_sleeper timeout, *to = NULL; struct futex_pi_state *pi_state = NULL; struct rt_mutex_waiter rt_waiter; @@ -477,7 +477,7 @@ index 0b8cff8d9162..e815cf542b82 100644 union futex_key key2 = FUTEX_KEY_INIT; struct futex_q q = futex_q_init; int res, ret; -@@ -3297,20 +3297,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3314,20 +3314,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, /* Queue the futex_q, drop the hb lock, wait for wakeup. */ futex_wait_queue_me(hb, &q, to); @@ -544,7 +544,7 @@ index 0b8cff8d9162..e815cf542b82 100644 /* Check if the requeue code acquired the second futex for us. */ if (!q.rt_waiter) { -@@ -3319,9 +3354,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3336,9 +3371,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * did a lock-steal - fix up the PI-state in that case. */ if (q.pi_state && (q.pi_state->owner != current)) { @@ -556,7 +556,7 @@ index 0b8cff8d9162..e815cf542b82 100644 ret = fixup_pi_state_owner(uaddr2, &q, current); if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) { pi_state = q.pi_state; -@@ -3331,9 +3365,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3348,9 +3382,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, * Drop the reference to the pi state which * the requeue_pi() code acquired for us. */ @@ -568,7 +568,7 @@ index 0b8cff8d9162..e815cf542b82 100644 } } else { struct rt_mutex *pi_mutex; -@@ -3347,7 +3380,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, +@@ -3364,7 +3397,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, pi_mutex = &q.pi_state->pi_mutex; ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter); @@ -578,7 +578,7 @@ index 0b8cff8d9162..e815cf542b82 100644 if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter)) ret = 0; -@@ -4014,7 +4048,7 @@ static int __init futex_init(void) +@@ -4031,7 +4065,7 @@ static int __init futex_init(void) for (i = 0; i < futex_hashsize; i++) { atomic_set(&futex_queues[i].waiters, 0); plist_head_init(&futex_queues[i].chain); diff --git a/debian/patches-rt/0308-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch b/debian/patches-rt/0305-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch similarity index 95% rename from debian/patches-rt/0308-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch rename to debian/patches-rt/0305-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch index 80994e6d4..97635bb9e 100644 --- a/debian/patches-rt/0308-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch +++ b/debian/patches-rt/0305-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch @@ -1,9 +1,9 @@ -From 7a083b11dea5905627872e0986c532a3e11716cf Mon Sep 17 00:00:00 2001 +From 7a56801d0e3c06595886dde9df739f3c9a8b1b03 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 30 Sep 2019 18:15:44 +0200 -Subject: [PATCH 308/328] locking/rtmutex: Clean ->pi_blocked_on in the error +Subject: [PATCH 305/325] locking/rtmutex: Clean ->pi_blocked_on in the error case -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 0be4ea6e3ce693101be0fbd55a0cc7ce238ab2eb ] diff --git a/debian/patches-rt/0309-lib-ubsan-Don-t-seralize-UBSAN-report.patch b/debian/patches-rt/0306-lib-ubsan-Don-t-seralize-UBSAN-report.patch similarity index 98% rename from debian/patches-rt/0309-lib-ubsan-Don-t-seralize-UBSAN-report.patch rename to debian/patches-rt/0306-lib-ubsan-Don-t-seralize-UBSAN-report.patch index 0b61fdcb6..3821379a5 100644 --- a/debian/patches-rt/0309-lib-ubsan-Don-t-seralize-UBSAN-report.patch +++ b/debian/patches-rt/0306-lib-ubsan-Don-t-seralize-UBSAN-report.patch @@ -1,8 +1,8 @@ -From 63329ddc5674e1b5c0837ed4a5db590246ba0835 Mon Sep 17 00:00:00 2001 +From 698de15ca2f181483753c9f60b88cb548479f803 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 20 Sep 2019 11:08:35 +0100 -Subject: [PATCH 309/328] lib/ubsan: Don't seralize UBSAN report -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 306/325] lib/ubsan: Don't seralize UBSAN report +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 4702c28ac777b27acb499cbd5e8e787ce1a7d82d ] diff --git a/debian/patches-rt/0310-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch b/debian/patches-rt/0307-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch similarity index 98% rename from debian/patches-rt/0310-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch rename to debian/patches-rt/0307-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch index 131c35fa2..7c5696a4f 100644 --- a/debian/patches-rt/0310-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch +++ b/debian/patches-rt/0307-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch @@ -1,9 +1,9 @@ -From fab900cc4385877aa0753a74950d86a8e88a9cec Mon Sep 17 00:00:00 2001 +From db9ad49e0819b8bc8cfbad6008ac0f52d5e168e1 Mon Sep 17 00:00:00 2001 From: Liu Haitao Date: Fri, 27 Sep 2019 16:22:30 +0800 -Subject: [PATCH 310/328] kmemleak: Change the lock of kmemleak_object to +Subject: [PATCH 307/325] kmemleak: Change the lock of kmemleak_object 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 [ Upstream commit 217847f57119b5fdd377bfa3d344613ddb98d9fc ] diff --git a/debian/patches-rt/0311-sched-migrate_enable-Use-select_fallback_rq.patch b/debian/patches-rt/0308-sched-migrate_enable-Use-select_fallback_rq.patch similarity index 92% rename from debian/patches-rt/0311-sched-migrate_enable-Use-select_fallback_rq.patch rename to debian/patches-rt/0308-sched-migrate_enable-Use-select_fallback_rq.patch index 946484780..cc54b2d4e 100644 --- a/debian/patches-rt/0311-sched-migrate_enable-Use-select_fallback_rq.patch +++ b/debian/patches-rt/0308-sched-migrate_enable-Use-select_fallback_rq.patch @@ -1,8 +1,8 @@ -From 84ff174f45e1a55c38d87b15d8d35cccc0bc9d93 Mon Sep 17 00:00:00 2001 +From 4c2c29a788e99fba068a36c7a2db2a51ff1f0eda Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sat, 12 Oct 2019 01:52:12 -0500 -Subject: [PATCH 311/328] sched: migrate_enable: Use select_fallback_rq() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 308/325] sched: migrate_enable: Use select_fallback_rq() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit adfa969d4cfcc995a9d866020124e50f1827d2d1 ] diff --git a/debian/patches-rt/0312-sched-Lazy-migrate_disable-processing.patch b/debian/patches-rt/0309-sched-Lazy-migrate_disable-processing.patch similarity index 99% rename from debian/patches-rt/0312-sched-Lazy-migrate_disable-processing.patch rename to debian/patches-rt/0309-sched-Lazy-migrate_disable-processing.patch index 93f0d5d89..64a58b254 100644 --- a/debian/patches-rt/0312-sched-Lazy-migrate_disable-processing.patch +++ b/debian/patches-rt/0309-sched-Lazy-migrate_disable-processing.patch @@ -1,8 +1,8 @@ -From 56caa7a47c76572041391ca1b27a68b637539aa3 Mon Sep 17 00:00:00 2001 +From 74e387d61b063ceb45e370bc75b3f0d76bd51061 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sat, 12 Oct 2019 01:52:13 -0500 -Subject: [PATCH 312/328] sched: Lazy migrate_disable processing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 309/325] sched: Lazy migrate_disable processing +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 425c5b38779a860062aa62219dc920d374b13c17 ] diff --git a/debian/patches-rt/0313-sched-migrate_enable-Use-stop_one_cpu_nowait.patch b/debian/patches-rt/0310-sched-migrate_enable-Use-stop_one_cpu_nowait.patch similarity index 95% rename from debian/patches-rt/0313-sched-migrate_enable-Use-stop_one_cpu_nowait.patch rename to debian/patches-rt/0310-sched-migrate_enable-Use-stop_one_cpu_nowait.patch index 8448bcb58..70e049efd 100644 --- a/debian/patches-rt/0313-sched-migrate_enable-Use-stop_one_cpu_nowait.patch +++ b/debian/patches-rt/0310-sched-migrate_enable-Use-stop_one_cpu_nowait.patch @@ -1,8 +1,8 @@ -From 1e6b41517e56302ffcac82be49722031f005e97c Mon Sep 17 00:00:00 2001 +From b18b09e0eb93eaff554f8b9ddf8be859ceea079f Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sat, 12 Oct 2019 01:52:14 -0500 -Subject: [PATCH 313/328] sched: migrate_enable: Use stop_one_cpu_nowait() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 310/325] sched: migrate_enable: Use stop_one_cpu_nowait() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 6b39a1fa8c53cae08dc03afdae193b7d3a78a173 ] diff --git a/debian/patches-rt/0314-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch b/debian/patches-rt/0311-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch similarity index 94% rename from debian/patches-rt/0314-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch rename to debian/patches-rt/0311-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch index e3d348392..8c761c657 100644 --- a/debian/patches-rt/0314-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch +++ b/debian/patches-rt/0311-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch @@ -1,9 +1,9 @@ -From 782db84c043ebd020312649d976fe1c74178ea34 Mon Sep 17 00:00:00 2001 +From 0a88cdae392aebfc8444d6c038aa0e5fbfa4f3f5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 18 Oct 2019 13:04:15 +0200 -Subject: [PATCH 314/328] Revert "ARM: Initialize split page table locks for +Subject: [PATCH 311/325] Revert "ARM: Initialize split page table locks for vector 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 [ Upstream commit 247074c44d8c3e619dfde6404a52295d8d671d38 ] diff --git a/debian/patches-rt/0315-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/0312-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch similarity index 96% rename from debian/patches-rt/0315-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch rename to debian/patches-rt/0312-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch index 754bcff79..56aef004b 100644 --- a/debian/patches-rt/0315-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch +++ b/debian/patches-rt/0312-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch @@ -1,9 +1,9 @@ -From 14da0cff2bdb4c5c183a38c223f4d0b03532852a Mon Sep 17 00:00:00 2001 +From 146edf2faa6c91a7c60ed338adbe4112c0a655bb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Nov 2019 09:25:04 +0100 -Subject: [PATCH 315/328] locking: Make spinlock_t and rwlock_t a RCU section +Subject: [PATCH 312/325] locking: Make spinlock_t and rwlock_t a RCU section 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 [ Upstream commit 84440022a0e1c8c936d61f8f97593674a295d409 ] diff --git a/debian/patches-rt/0316-sched-core-migrate_enable-must-access-takedown_cpu_t.patch b/debian/patches-rt/0313-sched-core-migrate_enable-must-access-takedown_cpu_t.patch similarity index 90% rename from debian/patches-rt/0316-sched-core-migrate_enable-must-access-takedown_cpu_t.patch rename to debian/patches-rt/0313-sched-core-migrate_enable-must-access-takedown_cpu_t.patch index 0f18f6cb5..868f3b1d9 100644 --- a/debian/patches-rt/0316-sched-core-migrate_enable-must-access-takedown_cpu_t.patch +++ b/debian/patches-rt/0313-sched-core-migrate_enable-must-access-takedown_cpu_t.patch @@ -1,9 +1,9 @@ -From 459ffc40b777727525726563ee2522a82ecfa12c Mon Sep 17 00:00:00 2001 +From b36ee36f5d6230ea331f5999401df432180eb114 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 29 Nov 2019 17:24:55 +0100 -Subject: [PATCH 316/328] sched/core: migrate_enable() must access +Subject: [PATCH 313/325] sched/core: migrate_enable() must access takedown_cpu_task on !HOTPLUG_CPU -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 a61d1977f692e46bad99a100f264981ba08cb4bd ] diff --git a/debian/patches-rt/0317-lib-smp_processor_id-Adjust-check_preemption_disable.patch b/debian/patches-rt/0314-lib-smp_processor_id-Adjust-check_preemption_disable.patch similarity index 89% rename from debian/patches-rt/0317-lib-smp_processor_id-Adjust-check_preemption_disable.patch rename to debian/patches-rt/0314-lib-smp_processor_id-Adjust-check_preemption_disable.patch index 743133da7..bd104473a 100644 --- a/debian/patches-rt/0317-lib-smp_processor_id-Adjust-check_preemption_disable.patch +++ b/debian/patches-rt/0314-lib-smp_processor_id-Adjust-check_preemption_disable.patch @@ -1,9 +1,9 @@ -From 9280cd27ed3c962fd0a1c6b2337bdbdd097a7466 Mon Sep 17 00:00:00 2001 +From feb825b2c5296319abdfa796acf01d481332b6a1 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Mon, 16 Dec 2019 16:15:57 +0100 -Subject: [PATCH 317/328] lib/smp_processor_id: Adjust +Subject: [PATCH 314/325] lib/smp_processor_id: Adjust check_preemption_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 [ Upstream commit af3c1c5fdf177870fb5e6e16b24e374696ab28f5 ] diff --git a/debian/patches-rt/0318-sched-migrate_enable-Busy-loop-until-the-migration-r.patch b/debian/patches-rt/0315-sched-migrate_enable-Busy-loop-until-the-migration-r.patch similarity index 92% rename from debian/patches-rt/0318-sched-migrate_enable-Busy-loop-until-the-migration-r.patch rename to debian/patches-rt/0315-sched-migrate_enable-Busy-loop-until-the-migration-r.patch index 90d3d7592..f99dcb6af 100644 --- a/debian/patches-rt/0318-sched-migrate_enable-Busy-loop-until-the-migration-r.patch +++ b/debian/patches-rt/0315-sched-migrate_enable-Busy-loop-until-the-migration-r.patch @@ -1,9 +1,9 @@ -From 7c90df1e8e20e69467cf37d9fafb5a6993f7bf65 Mon Sep 17 00:00:00 2001 +From 61c8b73bfa540c2d761e691f2b52b74e7af0cab3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Dec 2019 10:53:59 +0100 -Subject: [PATCH 318/328] sched: migrate_enable: Busy loop until the migration +Subject: [PATCH 315/325] sched: migrate_enable: Busy loop until the migration request is completed -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 140d7f54a5fff02898d2ca9802b39548bf7455f1 ] diff --git a/debian/patches-rt/0319-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch b/debian/patches-rt/0316-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch similarity index 94% rename from debian/patches-rt/0319-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch rename to debian/patches-rt/0316-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch index 13be06eb1..0cef6870d 100644 --- a/debian/patches-rt/0319-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch +++ b/debian/patches-rt/0316-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch @@ -1,8 +1,8 @@ -From cb67e79f0923a4a0a62dbedf1d5708586aa67d22 Mon Sep 17 00:00:00 2001 +From 4f66ae2e8860bf4d6272dffff2e66f0f28e726b0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 18 Dec 2019 12:25:09 +0100 -Subject: [PATCH 319/328] userfaultfd: Use a seqlock instead of seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 316/325] userfaultfd: Use a seqlock instead of seqcount +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit dc952a564d02997330654be9628bbe97ba2a05d3 ] diff --git a/debian/patches-rt/0320-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch b/debian/patches-rt/0317-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch similarity index 94% rename from debian/patches-rt/0320-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch rename to debian/patches-rt/0317-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch index f6cd965cc..fdafbd7a4 100644 --- a/debian/patches-rt/0320-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch +++ b/debian/patches-rt/0317-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch @@ -1,8 +1,8 @@ -From ed060a7dea70ea820b7816dac901e12ad9e40c8a Mon Sep 17 00:00:00 2001 +From 5ae09731e6eef2497166c6c3520e1537dde2bc31 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Fri, 24 Jan 2020 06:11:46 -0500 -Subject: [PATCH 320/328] sched: migrate_enable: Use per-cpu cpu_stop_work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 317/325] sched: migrate_enable: Use per-cpu cpu_stop_work +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit 2dcd94b443c5dcbc20281666321b7f025f9cc85c ] diff --git a/debian/patches-rt/0321-sched-migrate_enable-Remove-__schedule-call.patch b/debian/patches-rt/0318-sched-migrate_enable-Remove-__schedule-call.patch similarity index 87% rename from debian/patches-rt/0321-sched-migrate_enable-Remove-__schedule-call.patch rename to debian/patches-rt/0318-sched-migrate_enable-Remove-__schedule-call.patch index cff09601f..4a523606d 100644 --- a/debian/patches-rt/0321-sched-migrate_enable-Remove-__schedule-call.patch +++ b/debian/patches-rt/0318-sched-migrate_enable-Remove-__schedule-call.patch @@ -1,8 +1,8 @@ -From 5c7f33dce6217b1e9903dbc0b05492b13a1be8c8 Mon Sep 17 00:00:00 2001 +From 73dfb6f21b436b1f96516f951ca173e0828562c6 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Fri, 24 Jan 2020 06:11:47 -0500 -Subject: [PATCH 321/328] sched: migrate_enable: Remove __schedule() call -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 318/325] sched: migrate_enable: Remove __schedule() call +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit b8162e61e9a33bd1de6452eb838fbf50a93ddd9a ] diff --git a/debian/patches-rt/0322-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch b/debian/patches-rt/0319-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch similarity index 82% rename from debian/patches-rt/0322-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch rename to debian/patches-rt/0319-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch index 71d0b845a..2c464a0ba 100644 --- a/debian/patches-rt/0322-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch +++ b/debian/patches-rt/0319-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch @@ -1,9 +1,9 @@ -From 31f20b92c6fb36429f50063bfab6b642d54013c8 Mon Sep 17 00:00:00 2001 +From f7888a980c01a83b9589e0a56b38997f29ba207d Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Sun, 26 Jan 2020 21:19:45 +0000 -Subject: [PATCH 322/328] mm/memcontrol: Move misplaced +Subject: [PATCH 319/325] mm/memcontrol: Move misplaced local_unlock_irqrestore() -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 071a1d6a6e14d0dec240a8c67b425140d7f92f6a ] @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 421ac74450f6..519528959eef 100644 +index 4156a4e766fb..d059e2a99441 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c -@@ -6540,10 +6540,10 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) +@@ -6538,10 +6538,10 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) mem_cgroup_charge_statistics(memcg, page, PageTransHuge(page), -nr_entries); memcg_check_events(memcg, page); diff --git a/debian/patches-rt/0323-locallock-Include-header-for-the-current-macro.patch b/debian/patches-rt/0320-locallock-Include-header-for-the-current-macro.patch similarity index 83% rename from debian/patches-rt/0323-locallock-Include-header-for-the-current-macro.patch rename to debian/patches-rt/0320-locallock-Include-header-for-the-current-macro.patch index 9ccb3efa5..a47c7aaad 100644 --- a/debian/patches-rt/0323-locallock-Include-header-for-the-current-macro.patch +++ b/debian/patches-rt/0320-locallock-Include-header-for-the-current-macro.patch @@ -1,8 +1,8 @@ -From eed4b1765107814294260e3f2a1838a7837efffa Mon Sep 17 00:00:00 2001 +From 455f22d624a5ef6344c8ff69a8d65ff71bc65672 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 4 Feb 2020 13:29:50 +0100 -Subject: [PATCH 323/328] locallock: Include header for the `current' macro -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 320/325] locallock: Include header for the `current' macro +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz [ Upstream commit e693075a5fd852043fa8d2b0467e078d9e5cb782 ] diff --git a/debian/patches-rt/0324-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch b/debian/patches-rt/0321-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch similarity index 90% rename from debian/patches-rt/0324-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch rename to debian/patches-rt/0321-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch index 6c7eb15c7..b5b549a61 100644 --- a/debian/patches-rt/0324-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch +++ b/debian/patches-rt/0321-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch @@ -1,9 +1,9 @@ -From 7a22dfee8ba8e659823a05703d9efb516e7686d2 Mon Sep 17 00:00:00 2001 +From a6f7c997fb02c34d3cffdffcba7d1c98ae91d171 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Feb 2020 18:57:11 +0100 -Subject: [PATCH 324/328] drm/vmwgfx: Drop preempt_disable() in +Subject: [PATCH 321/325] drm/vmwgfx: Drop preempt_disable() in vmw_fifo_ping_host() -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 b901491e7b9b7a676818d84e482b69be72fc142f ] diff --git a/debian/patches-rt/0325-tracing-make-preempt_lazy-and-migrate_disable-counte.patch b/debian/patches-rt/0322-tracing-make-preempt_lazy-and-migrate_disable-counte.patch similarity index 92% rename from debian/patches-rt/0325-tracing-make-preempt_lazy-and-migrate_disable-counte.patch rename to debian/patches-rt/0322-tracing-make-preempt_lazy-and-migrate_disable-counte.patch index 22b7b1eb6..8f9eb5aa9 100644 --- a/debian/patches-rt/0325-tracing-make-preempt_lazy-and-migrate_disable-counte.patch +++ b/debian/patches-rt/0322-tracing-make-preempt_lazy-and-migrate_disable-counte.patch @@ -1,9 +1,9 @@ -From d64eb967cd8f5dfd95b39da264635c257ac56564 Mon Sep 17 00:00:00 2001 +From 6ef292c7e5f32959f6677108998c006ffd625694 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Feb 2020 18:15:15 +0100 -Subject: [PATCH 325/328] tracing: make preempt_lazy and migrate_disable +Subject: [PATCH 322/325] tracing: make preempt_lazy and migrate_disable counter smaller -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 dd430bf5ecb40f9a89679c85868826475d71de54 ] diff --git a/debian/patches-rt/0326-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch b/debian/patches-rt/0323-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch similarity index 91% rename from debian/patches-rt/0326-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch rename to debian/patches-rt/0323-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch index b8f897d6f..276305ca1 100644 --- a/debian/patches-rt/0326-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch +++ b/debian/patches-rt/0323-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch @@ -1,9 +1,9 @@ -From 14d40a0de6df764cb0284a2f94b5c54c75eba9ee Mon Sep 17 00:00:00 2001 +From 126be7dbd1b1466d09a2314fd0d24af2e72f319d Mon Sep 17 00:00:00 2001 From: Tiejun Chen Date: Mon, 30 Mar 2020 18:45:23 -0400 -Subject: [PATCH 326/328] lib/ubsan: Remove flags parameter from calls to +Subject: [PATCH 323/325] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue() -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 Fails to build with CONFIG_UBSAN=y diff --git a/debian/patches-rt/0327-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch b/debian/patches-rt/0324-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch similarity index 93% rename from debian/patches-rt/0327-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch rename to debian/patches-rt/0324-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch index b2b16fa36..5fc71975b 100644 --- a/debian/patches-rt/0327-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch +++ b/debian/patches-rt/0324-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch @@ -1,9 +1,9 @@ -From 4fcf946bf6e220c1b07cafc8412afffa5b7e1f10 Mon Sep 17 00:00:00 2001 +From 91565eecad8c73f52ef0c7fef8bfb042f142e2e2 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Sun, 22 Mar 2020 00:00:28 +0100 -Subject: [PATCH 327/328] irq_work: Fix checking of IRQ_WORK_LAZY flag set on +Subject: [PATCH 324/325] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_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 When CONFIG_PREEMPT_RT_FULL is not set, some of the checks for using lazy_list are not properly made as the IRQ_WORK_LAZY is not checked. There's diff --git a/debian/patches-rt/0328-Linux-4.19.106-rt46-REBASE.patch b/debian/patches-rt/0325-Linux-4.19.115-rt48-REBASE.patch similarity index 64% rename from debian/patches-rt/0328-Linux-4.19.106-rt46-REBASE.patch rename to debian/patches-rt/0325-Linux-4.19.115-rt48-REBASE.patch index e84ec8f38..1a0001487 100644 --- a/debian/patches-rt/0328-Linux-4.19.106-rt46-REBASE.patch +++ b/debian/patches-rt/0325-Linux-4.19.115-rt48-REBASE.patch @@ -1,20 +1,20 @@ -From aad78d70e503de59191ef6b3a9a86ef08857e902 Mon Sep 17 00:00:00 2001 +From 03030c7da51669f16a21bd1c99bbf8b8ed2cefea Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Tue, 31 Mar 2020 12:32:04 -0400 -Subject: [PATCH 328/328] Linux 4.19.106-rt46 REBASE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz +Subject: [PATCH 325/325] Linux 4.19.115-rt48 REBASE +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.115-rt48.tar.xz --- localversion-rt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-rt b/localversion-rt -index 1199ebade17b..272158183778 100644 +index 1199ebade17b..24707986c321 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt16 -+-rt46 ++-rt48 -- 2.25.1 diff --git a/debian/patches-rt/series b/debian/patches-rt/series index 575c74ca4..14f63a8ff 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -94,235 +94,232 @@ 0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch 0095-completion-Use-simple-wait-queues.patch 0096-fs-aio-simple-simple-work.patch -0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch -0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch -0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch -0100-hrtimers-Prepare-full-preemption.patch -0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch -0102-sched-fair-Make-the-hrtimers-non-hard-again.patch -0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch -0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch -0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch -0106-sched-Move-task_struct-cleanup-to-RCU.patch -0107-sched-Limit-the-number-of-task-migrations-per-batch.patch -0108-sched-Move-mmdrop-to-RCU-on-RT.patch -0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch -0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch -0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch -0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch -0113-sched-Disable-TTWU_QUEUE-on-RT.patch -0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch -0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch -0116-hotplug-Lightweight-get-online-cpus.patch -0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch -0118-lockdep-Make-it-RT-aware.patch -0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch -0120-softirq-Check-preemption-after-reenabling-interrupts.patch -0121-softirq-Disable-softirq-stacks-for-RT.patch -0122-softirq-Split-softirq-locks.patch -0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch -0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch -0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch -0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch -0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch -0128-rtmutex-trylock-is-okay-on-RT.patch -0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch -0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch -0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch -0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch -0133-pid.h-include-atomic.h.patch -0134-arm-include-definition-for-cpumask_t.patch -0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch -0136-rtmutex-Add-rtmutex_lock_killable.patch -0137-rtmutex-Make-lock_killable-work.patch -0138-spinlock-Split-the-lock-types-header.patch -0139-rtmutex-Avoid-include-hell.patch -0140-rbtree-don-t-include-the-rcu-header.patch -0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch -0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch -0143-rtmutex-add-sleeping-lock-implementation.patch -0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch -0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch -0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch -0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch -0148-rtmutex-wire-up-RT-s-locking.patch -0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch -0150-kconfig-Add-PREEMPT_RT_FULL.patch -0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch -0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch -0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch -0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch -0155-rtmutex-annotate-sleeping-lock-context.patch -0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch -0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch -0158-rcu-Frob-softirq-test.patch -0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch -0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch -0161-rcu-Eliminate-softirq-processing-from-rcutree.patch -0162-srcu-use-cpu_online-instead-custom-check.patch -0163-srcu-replace-local_irqsave-with-a-locallock.patch -0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch -0165-tty-serial-omap-Make-the-locking-RT-aware.patch -0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch -0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch -0168-rt-Improve-the-serial-console-PASS_LIMIT.patch -0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch -0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch -0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch -0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch -0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch -0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch -0175-thermal-Defer-thermal-wakups-to-threads.patch -0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch -0177-fs-epoll-Do-not-disable-preemption-on-RT.patch -0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch -0179-block-mq-use-cpu_light.patch -0180-block-mq-do-not-invoke-preempt_disable.patch -0181-block-mq-don-t-complete-requests-via-IPI.patch -0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch -0183-rt-Introduce-cpu_chill.patch -0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch -0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch -0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch -0187-block-Use-cpu_chill-for-retry-loops.patch -0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch -0189-net-Use-cpu_chill-instead-of-cpu_relax.patch -0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch -0191-workqueue-Use-normal-rcu.patch -0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch -0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch -0194-sched-Distangle-worker-accounting-from-rqlock.patch -0195-debugobjects-Make-RT-aware.patch -0196-seqlock-Prevent-rt-starvation.patch -0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch -0198-net-Use-skbufhead-with-raw-lock.patch -0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch -0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch -0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch -0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch -0203-net-add-back-the-missing-serialization-in-ip_send_un.patch -0204-net-add-a-lock-around-icmp_sk.patch -0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch -0206-irqwork-push-most-work-into-softirq-context.patch -0207-printk-Make-rt-aware.patch -0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch -0209-printk-Drop-the-logbuf_lock-more-often.patch -0210-ARM-enable-irq-in-translation-section-permission-fau.patch -0211-genirq-update-irq_set_irqchip_state-documentation.patch -0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch -0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch -0214-kgdb-serial-Short-term-workaround.patch -0215-sysfs-Add-sys-kernel-realtime-entry.patch -0216-mm-rt-kmap_atomic-scheduling.patch -0217-x86-highmem-Add-a-already-used-pte-check.patch -0218-arm-highmem-Flush-tlb-on-unmap.patch -0219-arm-Enable-highmem-for-rt.patch -0220-scsi-fcoe-Make-RT-aware.patch -0221-x86-crypto-Reduce-preempt-disabled-regions.patch -0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch -0223-crypto-limit-more-FPU-enabled-sections.patch -0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch -0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch -0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch -0227-x86-stackprotector-Avoid-random-pool-on-rt.patch -0228-random-Make-it-work-on-rt.patch -0229-cpu-hotplug-Implement-CPU-pinning.patch -0230-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch -0231-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch -0232-net-Remove-preemption-disabling-in-netif_rx.patch -0233-net-Another-local_irq_disable-kmalloc-headache.patch -0234-net-core-protect-users-of-napi_alloc_cache-against-r.patch -0235-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch -0236-net-Add-a-mutex-around-devnet_rename_seq.patch -0237-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch -0238-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch -0239-sched-Add-support-for-lazy-preemption.patch -0240-ftrace-Fix-trace-header-alignment.patch -0241-x86-Support-for-lazy-preemption.patch -0242-x86-lazy-preempt-properly-check-against-preempt-mask.patch -0243-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch -0244-arm-Add-support-for-lazy-preemption.patch -0245-powerpc-Add-support-for-lazy-preemption.patch -0246-arch-arm64-Add-lazy-preempt-support.patch -0247-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch -0248-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch -0249-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch -0250-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch -0251-tpm_tis-fix-stall-after-iowrite-s.patch -0252-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch -0253-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch -0254-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch -0255-drm-i915-disable-tracing-on-RT.patch -0256-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch -0257-cgroups-use-simple-wait-in-css_release.patch -0258-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch -0259-apparmor-use-a-locallock-instead-preempt_disable.patch -0260-workqueue-Prevent-deadlock-stall-on-RT.patch -0261-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch -0262-Add-localversion-for-RT-release.patch -0263-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch -0264-powerpc-reshuffle-TIF-bits.patch -0265-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch -0266-drm-i915-Don-t-disable-interrupts-independently-of-t.patch -0267-sched-completion-Fix-a-lockup-in-wait_for_completion.patch -0268-kthread-add-a-global-worker-thread.patch -0269-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch -0270-genirq-Handle-missing-work_struct-in-irq_set_affinit.patch -0271-arm-imx6-cpuidle-Use-raw_spinlock_t.patch -0272-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch -0273-pci-switchtec-fix-stream_open.cocci-warnings.patch -0274-sched-core-Drop-a-preempt_disable_rt-statement.patch -0275-timers-Redo-the-notification-of-canceling-timers-on-.patch -0276-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch -0277-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch -0278-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch -0279-Revert-futex-workaround-migrate_disable-enable-in-di.patch -0280-futex-Make-the-futex_hash_bucket-lock-raw.patch -0281-futex-Delay-deallocation-of-pi_state.patch -0282-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch -0283-revert-aio.patch -0284-fs-aio-simple-simple-work.patch -0285-revert-thermal.patch -0286-thermal-Defer-thermal-wakups-to-threads.patch -0287-revert-block.patch -0288-block-blk-mq-move-blk_queue_usage_counter_release-in.patch -0289-workqueue-rework.patch -0290-i2c-exynos5-Remove-IRQF_ONESHOT.patch -0291-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch -0292-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch -0293-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch -0294-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch -0295-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch -0296-x86-preempt-Check-preemption-level-before-looking-at.patch -0297-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch -0298-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch -0299-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch -0300-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch -0301-posix-timers-Unlock-expiry-lock-in-the-early-return.patch -0302-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch -0303-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch -0304-sched-Remove-dead-__migrate_disabled-check.patch -0305-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch -0306-lib-smp_processor_id-Don-t-use-cpumask_equal.patch -0307-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch -0308-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch -0309-lib-ubsan-Don-t-seralize-UBSAN-report.patch -0310-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch -0311-sched-migrate_enable-Use-select_fallback_rq.patch -0312-sched-Lazy-migrate_disable-processing.patch -0313-sched-migrate_enable-Use-stop_one_cpu_nowait.patch -0314-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch -0315-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch -0316-sched-core-migrate_enable-must-access-takedown_cpu_t.patch -0317-lib-smp_processor_id-Adjust-check_preemption_disable.patch -0318-sched-migrate_enable-Busy-loop-until-the-migration-r.patch -0319-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch -0320-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch -0321-sched-migrate_enable-Remove-__schedule-call.patch -0322-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch -0323-locallock-Include-header-for-the-current-macro.patch -0324-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch -0325-tracing-make-preempt_lazy-and-migrate_disable-counte.patch -0326-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch -0327-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch -0328-Linux-4.19.106-rt46-REBASE.patch +0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch +0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +0099-hrtimers-Prepare-full-preemption.patch +0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch +0101-sched-fair-Make-the-hrtimers-non-hard-again.patch +0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch +0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch +0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch +0105-sched-Move-task_struct-cleanup-to-RCU.patch +0106-sched-Limit-the-number-of-task-migrations-per-batch.patch +0107-sched-Move-mmdrop-to-RCU-on-RT.patch +0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch +0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch +0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch +0112-sched-Disable-TTWU_QUEUE-on-RT.patch +0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch +0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch +0115-hotplug-Lightweight-get-online-cpus.patch +0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch +0117-lockdep-Make-it-RT-aware.patch +0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +0119-softirq-Check-preemption-after-reenabling-interrupts.patch +0120-softirq-Disable-softirq-stacks-for-RT.patch +0121-softirq-Split-softirq-locks.patch +0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch +0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch +0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch +0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch +0127-rtmutex-trylock-is-okay-on-RT.patch +0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch +0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch +0132-pid.h-include-atomic.h.patch +0133-arm-include-definition-for-cpumask_t.patch +0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +0135-rtmutex-Add-rtmutex_lock_killable.patch +0136-rtmutex-Make-lock_killable-work.patch +0137-spinlock-Split-the-lock-types-header.patch +0138-rtmutex-Avoid-include-hell.patch +0139-rbtree-don-t-include-the-rcu-header.patch +0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch +0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch +0142-rtmutex-add-sleeping-lock-implementation.patch +0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch +0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch +0147-rtmutex-wire-up-RT-s-locking.patch +0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +0149-kconfig-Add-PREEMPT_RT_FULL.patch +0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch +0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch +0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch +0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +0154-rtmutex-annotate-sleeping-lock-context.patch +0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch +0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +0157-rcu-Frob-softirq-test.patch +0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch +0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +0160-rcu-Eliminate-softirq-processing-from-rcutree.patch +0161-srcu-use-cpu_online-instead-custom-check.patch +0162-srcu-replace-local_irqsave-with-a-locallock.patch +0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch +0164-tty-serial-omap-Make-the-locking-RT-aware.patch +0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch +0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch +0167-rt-Improve-the-serial-console-PASS_LIMIT.patch +0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch +0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch +0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch +0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch +0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch +0174-thermal-Defer-thermal-wakups-to-threads.patch +0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch +0176-fs-epoll-Do-not-disable-preemption-on-RT.patch +0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +0178-block-mq-use-cpu_light.patch +0179-block-mq-do-not-invoke-preempt_disable.patch +0180-block-mq-don-t-complete-requests-via-IPI.patch +0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +0182-rt-Introduce-cpu_chill.patch +0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch +0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch +0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +0186-block-Use-cpu_chill-for-retry-loops.patch +0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +0188-net-Use-cpu_chill-instead-of-cpu_relax.patch +0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +0190-workqueue-Use-normal-rcu.patch +0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch +0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch +0193-sched-Distangle-worker-accounting-from-rqlock.patch +0194-debugobjects-Make-RT-aware.patch +0195-seqlock-Prevent-rt-starvation.patch +0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch +0197-net-Use-skbufhead-with-raw-lock.patch +0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch +0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch +0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch +0202-net-add-back-the-missing-serialization-in-ip_send_un.patch +0203-net-add-a-lock-around-icmp_sk.patch +0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch +0205-irqwork-push-most-work-into-softirq-context.patch +0206-printk-Make-rt-aware.patch +0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch +0208-printk-Drop-the-logbuf_lock-more-often.patch +0209-ARM-enable-irq-in-translation-section-permission-fau.patch +0210-genirq-update-irq_set_irqchip_state-documentation.patch +0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch +0213-kgdb-serial-Short-term-workaround.patch +0214-sysfs-Add-sys-kernel-realtime-entry.patch +0215-mm-rt-kmap_atomic-scheduling.patch +0216-x86-highmem-Add-a-already-used-pte-check.patch +0217-arm-highmem-Flush-tlb-on-unmap.patch +0218-arm-Enable-highmem-for-rt.patch +0219-scsi-fcoe-Make-RT-aware.patch +0220-x86-crypto-Reduce-preempt-disabled-regions.patch +0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch +0222-crypto-limit-more-FPU-enabled-sections.patch +0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch +0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch +0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch +0226-x86-stackprotector-Avoid-random-pool-on-rt.patch +0227-random-Make-it-work-on-rt.patch +0228-cpu-hotplug-Implement-CPU-pinning.patch +0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch +0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch +0231-net-Remove-preemption-disabling-in-netif_rx.patch +0232-net-Another-local_irq_disable-kmalloc-headache.patch +0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch +0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch +0235-net-Add-a-mutex-around-devnet_rename_seq.patch +0236-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +0237-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +0238-sched-Add-support-for-lazy-preemption.patch +0239-ftrace-Fix-trace-header-alignment.patch +0240-x86-Support-for-lazy-preemption.patch +0241-x86-lazy-preempt-properly-check-against-preempt-mask.patch +0242-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch +0243-arm-Add-support-for-lazy-preemption.patch +0244-powerpc-Add-support-for-lazy-preemption.patch +0245-arch-arm64-Add-lazy-preempt-support.patch +0246-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +0247-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +0248-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +0249-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch +0250-tpm_tis-fix-stall-after-iowrite-s.patch +0251-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch +0252-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +0253-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch +0254-drm-i915-disable-tracing-on-RT.patch +0255-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +0256-cgroups-use-simple-wait-in-css_release.patch +0257-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +0258-apparmor-use-a-locallock-instead-preempt_disable.patch +0259-workqueue-Prevent-deadlock-stall-on-RT.patch +0260-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +0261-Add-localversion-for-RT-release.patch +0262-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch +0263-powerpc-reshuffle-TIF-bits.patch +0264-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch +0265-drm-i915-Don-t-disable-interrupts-independently-of-t.patch +0266-sched-completion-Fix-a-lockup-in-wait_for_completion.patch +0267-kthread-add-a-global-worker-thread.patch +0268-arm-imx6-cpuidle-Use-raw_spinlock_t.patch +0269-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch +0270-pci-switchtec-fix-stream_open.cocci-warnings.patch +0271-sched-core-Drop-a-preempt_disable_rt-statement.patch +0272-timers-Redo-the-notification-of-canceling-timers-on-.patch +0273-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch +0274-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch +0275-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch +0276-Revert-futex-workaround-migrate_disable-enable-in-di.patch +0277-futex-Make-the-futex_hash_bucket-lock-raw.patch +0278-futex-Delay-deallocation-of-pi_state.patch +0279-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch +0280-revert-aio.patch +0281-fs-aio-simple-simple-work.patch +0282-revert-thermal.patch +0283-thermal-Defer-thermal-wakups-to-threads.patch +0284-revert-block.patch +0285-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +0286-workqueue-rework.patch +0287-i2c-exynos5-Remove-IRQF_ONESHOT.patch +0288-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch +0289-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch +0290-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch +0291-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch +0292-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch +0293-x86-preempt-Check-preemption-level-before-looking-at.patch +0294-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch +0295-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch +0296-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch +0297-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch +0298-posix-timers-Unlock-expiry-lock-in-the-early-return.patch +0299-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch +0300-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch +0301-sched-Remove-dead-__migrate_disabled-check.patch +0302-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch +0303-lib-smp_processor_id-Don-t-use-cpumask_equal.patch +0304-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch +0305-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch +0306-lib-ubsan-Don-t-seralize-UBSAN-report.patch +0307-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch +0308-sched-migrate_enable-Use-select_fallback_rq.patch +0309-sched-Lazy-migrate_disable-processing.patch +0310-sched-migrate_enable-Use-stop_one_cpu_nowait.patch +0311-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch +0312-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch +0313-sched-core-migrate_enable-must-access-takedown_cpu_t.patch +0314-lib-smp_processor_id-Adjust-check_preemption_disable.patch +0315-sched-migrate_enable-Busy-loop-until-the-migration-r.patch +0316-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch +0317-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch +0318-sched-migrate_enable-Remove-__schedule-call.patch +0319-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch +0320-locallock-Include-header-for-the-current-macro.patch +0321-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch +0322-tracing-make-preempt_lazy-and-migrate_disable-counte.patch +0323-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch +0324-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch +0325-Linux-4.19.115-rt48-REBASE.patch