diff options
Diffstat (limited to '')
356 files changed, 458 insertions, 503 deletions
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 19f5afda8..fef3029d3 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,7 +1,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:18 +0200 Subject: [PATCH 001/353] ARM: at91: add TCB registers definitions -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0f8e76648608be71aae7edafa6a30b171f2b2970 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5cb3db0db4af2d71851e972bde6defcd16e3d57 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 3f3c3ec86..5ac210598 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 @@ -2,7 +2,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:19 +0200 Subject: [PATCH 002/353] clocksource/drivers: Add a new driver for the Atmel ARM TC blocks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cad9f391ef986da64693de122126c3a608dd70b3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0043104c9ea190cfd4f18e03d31379ba173b14c3 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 28f7478e9..be67d6de9 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 @@ -2,7 +2,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:20 +0200 Subject: [PATCH 003/353] clocksource/drivers: timer-atmel-tcb: add clockevent device on separate channel -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8438734137350f7aacf45ae690020de5b97db0b8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e8db0c861ea79c7d74cf1dbc062edb0e89b0afd 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 e555c91a0..38dbdc5da 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,7 +1,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:21 +0200 Subject: [PATCH 004/353] clocksource/drivers: atmel-pit: make option silent -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e66e709351a5e6817ed00d12c566292332019881 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f7428d3f6ffc0509868983b6c335c1501a6fb5c 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 743b9b878..27abb0473 100644 --- a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch +++ b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch @@ -1,7 +1,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:22 +0200 Subject: [PATCH 005/353] ARM: at91: Implement clocksource selection -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e008608018ce1dd7be4bfaeb9f5cc7a5eee0f30 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b6e573dad69145114e6fbfb9b10ed033e8d5023d 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 b03132bb2..ee5b16005 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,7 +1,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:23 +0200 Subject: [PATCH 006/353] ARM: configs: at91: use new TCB timer driver -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=607b76bcfc8f2a8ec770b43b487ad235d4b7b940 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7edca352b55054fcb7a53bdc57bcef99c54ea7c 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 4d3057ba1..1540c11d9 100644 --- a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch +++ b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch @@ -1,7 +1,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com> Date: Thu, 13 Sep 2018 13:30:24 +0200 Subject: [PATCH 007/353] ARM: configs: at91: unselect PIT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9026dc7b1b9265e610fb56548d2229f75e7071d2 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6912e32d8641eaf3192f4af0473470c26f0a9cd7 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 fa2e8a043..f0ec996b8 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 @@ -2,7 +2,7 @@ From: Marc Zyngier <marc.zyngier@arm.com> Date: Fri, 27 Jul 2018 13:38:54 +0100 Subject: [PATCH 008/353] irqchip/gic-v3-its: Move pending table allocation to init time -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b992344075e68d94c0630e2db5a77c6da7ffa0d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7eb7d255b9739de589d1a2d546c8c1daf5633957 Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 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 5c2b54f07..3f9100f87 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,7 +1,7 @@ From: Julia Cartwright <julia@ni.com> Date: Fri, 28 Sep 2018 21:03:51 +0000 Subject: [PATCH 009/353] kthread: convert worker lock to raw spinlock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1157b789e0af47a4aae36797f66080a417be1735 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=426a6ad0a12bab66c4e88d71655e74d17e898091 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 55459f795..3c7dbbab5 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 @@ -4,7 +4,7 @@ Subject: [PATCH 010/353] crypto: caam/qi - simplify CGR allocation, freeing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2433c8b8290b53c76f9a6fdf0decd581fb0ead2 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40431aa00beeaaf1d2e1f64b45e33a5da2bffb1a [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 9c21a31ee..80da6cd54 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,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 7 Jan 2019 13:52:31 +0100 Subject: [PATCH 011/353] sched/fair: Robustify CFS-bandwidth timer locking -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f49715d6f5238237e005258f1d8c7b0c4c87e82 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23a5dc393375842c47361eba6404190b31263bfb Traditionally hrtimer callbacks were run with IRQs disabled, but with the introduction of HRTIMER_MODE_SOFT it is possible they run from 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 7eca0c56b..ae495296f 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,7 +1,7 @@ From: Frank Rowand <frank.rowand@am.sony.com> Date: Mon, 19 Sep 2011 14:51:14 -0700 Subject: [PATCH 012/353] arm: Convert arm boot_lock to raw -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c98a1f617672a545b5c841bf7c320048a96a00c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c17a706b066459255d4cc288052f9ebda6c9ab5 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 c0c88207e..181ea4ef4 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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 17 Jul 2018 18:25:31 +0200 Subject: [PATCH 013/353] x86/ioapic: Don't let setaffinity unmask threaded EOI interrupt too early -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b5c75c30b266d93ca24a3352c4c16e53fe5812d8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a012e6bfc9f9eee8339a470aedd643034212801 There is an issue with threaded interrupts which are marked ONESHOT and using the fasteoi handler. @@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c -index 677508baf95a..b1a7f453415f 100644 +index af59aa9c5523..5d7590e6feb1 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -1732,7 +1732,7 @@ static bool io_apic_level_ack_pending(struct mp_chip_data *data) 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 fa18111f9..368e55003 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 3 Jul 2018 18:19:48 +0200 Subject: [PATCH 014/353] cgroup: use irqsave in cgroup_rstat_flush_locked() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=512f4cf1610e17ab70fda9dcb826e50bc06f93e2 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4d45fc5437cdc3df495f053b7d44a079d97bc19 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 a3f208de2..2f3ede44c 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,7 +1,7 @@ From: Clark Williams <williams@redhat.com> Date: Tue, 3 Jul 2018 13:34:30 -0500 Subject: [PATCH 015/353] fscache: initialize cookie hash table raw spinlocks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a4e04766b8db37296bb1c0f0176b5c7d04b7cfe +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d03db0ce50498e8f1128f15f1a7fff44e93dd108 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 a08a94124..34ab476ce 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 @@ -4,7 +4,7 @@ Subject: [PATCH 016/353] 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://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98a00dcbef7d9d6355cde8351c7b0dee85730f03 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b46679c0fc54720038289996be8974e624a51fec 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 7785c3a81..bce3fc9cd 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 11 Oct 2018 16:39:59 +0200 Subject: [PATCH 017/353] percpu: include irqflags.h for raw_local_irq_save() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=19884a6cad964e920a1662b946593ab6020f8957 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb2ad05fbeed482adb367eac354f01a14ce422c2 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 8d0b33065..3c155da1f 100644 --- a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch +++ b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 15:06:10 +0200 Subject: [PATCH 018/353] efi: Allow efi=runtime -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a72511f8ea9247ecac927b587eeb0813d4ed5505 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44fb3795b5644ac330f53e863dfde7a740256b5a 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 435aa8376..0782f485c 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 24 Jul 2018 14:48:55 +0200 Subject: [PATCH 019/353] x86/efi: drop task_lock() from efi_switch_mm() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d699a62eefdeeedd604142d90cae7489eb8b6314 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d393f40689a14bc6d2304d35d22407d42a7f4ba efi_switch_mm() is a wrapper around switch_mm() which saves current's ->active_mm, sets the requests mm as ->active_mm and invokes 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 3e817c016..0f9c80095 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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 09:13:42 +0200 Subject: [PATCH 020/353] arm64: KVM: compute_layout before altenates are applied -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7df97bdc241a6170c71afc0082bb56e823fd51cb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1a36d8911d9802ee0c9687be2029e83d2a30d67 compute_layout() is invoked as part of an alternative fixup under stop_machine() and needs a sleeping lock as part of get_random_long(). 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 971d7d4e5..d1ccfb0f4 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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 31 Aug 2018 14:16:30 +0200 Subject: [PATCH 021/353] of: allocate / free phandle cache outside of the devtree_lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bbce4567a74bf51efe5f4bc4f1bbdb59e21dd3c7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb46fdc2bedd1a8eaa5e58329d772011b6026d47 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 4311cc6d1..8da97a0f7 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,7 +1,7 @@ From: Clark Williams <williams@redhat.com> Date: Tue, 18 Sep 2018 10:29:31 -0500 Subject: [PATCH 022/353] mm/kasan: make quarantine_lock a raw_spinlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4e300c23eb18371d4ba57e1e3cbcb590f614059 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d17525668576fe63e80d4280e6f71cff37a8d9f5 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 8e2e9cfd4..22f2c4437 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 @@ -2,7 +2,7 @@ From: "Paul E. McKenney" <paulmck@linux.ibm.com> Date: Mon, 29 Oct 2018 11:53:01 +0100 Subject: [PATCH 023/353] EXP rcu: Revert expedited GP parallelization cleverness -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4fc273a9ba585393a5651eade8a6f01a83743594 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35450487569b7f5812ed1106763a3f2bfe8b0cb4 (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 d62678ee9..5e1db1970 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 @@ -4,7 +4,7 @@ Subject: [PATCH 024/353] 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://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=65641f1f87399bb60a3060026b35a48cbc12e5db +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2acd572061a0e1c538e61064e794da7ecb5f3b1d 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 f127a36d7..95f7193d7 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 28 Oct 2016 23:05:11 +0200 Subject: [PATCH 025/353] NFSv4: replace seqcount_t with a seqlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e36671ce4bf576f03e10887842cb4d4d18b2373c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9de4c145bdbac174d7d6cfc31a27cb41edc0fac9 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 @@ -44,7 +44,7 @@ index b0c0c2fc2fba..26565ba05dc1 100644 mutex_unlock(&sp->so_delegreturn_mutex); put_nfs_open_context(ctx); diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h -index 5ac7bf24c507..b15a7a2f64fe 100644 +index 2d438318681a..e6cecc00c379 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h @@ -114,7 +114,7 @@ struct nfs4_state_owner { @@ -57,10 +57,10 @@ index 5ac7bf24c507..b15a7a2f64fe 100644 }; diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index 250fa88303fa..b61a0f4b2ae8 100644 +index 3651619468d7..f9d3fcb007a5 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c -@@ -2879,7 +2879,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, +@@ -2882,7 +2882,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, unsigned int seq; int ret; @@ -69,7 +69,7 @@ index 250fa88303fa..b61a0f4b2ae8 100644 ret = _nfs4_proc_open(opendata, ctx); if (ret != 0) -@@ -2920,7 +2920,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, +@@ -2923,7 +2923,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, if (d_inode(dentry) == state->inode) { nfs_inode_attach_open_context(ctx); @@ -79,10 +79,10 @@ index 250fa88303fa..b61a0f4b2ae8 100644 } diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c -index b9fbd01ef4cf..cd0cd6594947 100644 +index f0f0fb7499e3..7bc43e0b24ef 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c -@@ -516,7 +516,7 @@ nfs4_alloc_state_owner(struct nfs_server *server, +@@ -520,7 +520,7 @@ nfs4_alloc_state_owner(struct nfs_server *server, nfs4_init_seqid_counter(&sp->so_seqid); atomic_set(&sp->so_count, 1); INIT_LIST_HEAD(&sp->so_lru); @@ -91,7 +91,7 @@ index b9fbd01ef4cf..cd0cd6594947 100644 mutex_init(&sp->so_delegreturn_mutex); return sp; } -@@ -1586,8 +1586,12 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs +@@ -1590,8 +1590,12 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs * recovering after a network partition or a reboot from a * server that doesn't support a grace period. */ @@ -105,7 +105,7 @@ index b9fbd01ef4cf..cd0cd6594947 100644 restart: list_for_each_entry(state, &sp->so_states, open_states) { if (!test_and_clear_bit(ops->state_flag_bit, &state->flags)) -@@ -1674,14 +1678,20 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs +@@ -1678,14 +1682,20 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs spin_lock(&sp->so_lock); goto restart; } 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 aae3ea1c6..ff72663d5 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 @@ -5,7 +5,7 @@ Subject: [PATCH 026/353] kernel: sched: Provide a pointer to the valid CPU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ef5ef947f2c50bf428e512ab5499199c373b0311 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00783413cf324a173918f6f46c53eb248a11de23 In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed() wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not @@ -307,10 +307,10 @@ index 994ffe018120..d71054b95528 100644 .mm = NULL, .active_mm = &init_mm, diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c -index c6d412cebc43..b5a1dca1d4d1 100644 +index 3067d3e5a51d..54591aed4049 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c -@@ -2101,7 +2101,7 @@ static void cpuset_fork(struct task_struct *task) +@@ -2103,7 +2103,7 @@ static void cpuset_fork(struct task_struct *task) if (task_css_is_root(task, cpuset_cgrp_id)) return; 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 4fb258a1f..ecffbbe5f 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 27 May 2017 19:02:06 +0200 Subject: [PATCH 027/353] kernel/sched/core: add migrate_disable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f0d9f74555c7b5e54700bf2156e7a6526a6c964 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=851169d906dda13e32de30f8fa91f2328d908f14 --- 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 f9c9c6973..efc393758 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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Oct 2018 17:34:50 +0200 Subject: [PATCH 028/353] sched/migrate_disable: Add export_symbol_gpl for __migrate_disabled -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0e5698b2249f75e5e7561e46ed842f4a7bfb76d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41cf8452f8cc8846c42387f5730f027836b38946 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 265686761..0900d4057 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 9 Mar 2016 10:51:06 +0100 Subject: [PATCH 029/353] arm: at91: do not disable/enable clocks in a row -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fe2024e9a496e95918eb6b6ea0324d9dca860c57 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2de0b355b47912313998dc17af34f926e24fcb9b 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 c232f65dc..2063f79e1 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 @@ -5,7 +5,7 @@ Subject: [PATCH 030/353] clocksource: TCLIB: Allow higher clock rates for MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04a617da7431cd2055b92d5ac229e41722f86c24 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=baee7768ee1f5b5c11151866389ccd758e799a26 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 70a06f239..d816ecd3b 100644 --- a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch +++ b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 14 Feb 2013 22:36:59 +0100 Subject: [PATCH 031/353] timekeeping: Split jiffies seqlock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ceacbb2bbf0eee08d70691be812182f653e90015 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e67616dbfa0b4e559a51d108930dbdf3b5ec8a8e Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so it can be taken in atomic context on RT. @@ -76,7 +76,7 @@ index 0a3cc37e4b83..7bd136b646d4 100644 clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT); diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index 48403fb653c2..e774a49176cc 100644 +index 25c6efa2c557..0491c4c4a5cf 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -68,7 +68,8 @@ static void tick_do_update_jiffies64(ktime_t now) @@ -121,7 +121,7 @@ index 48403fb653c2..e774a49176cc 100644 return period; } -@@ -656,10 +661,10 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) +@@ -668,10 +673,10 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) /* Read jiffies and the time when jiffies were updated last */ do { 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 6cec5c7ea..ebd057fb3 100644 --- a/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch +++ b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 21 Sep 2011 19:57:12 +0200 Subject: [PATCH 032/353] signal: Revert ptrace preempt magic -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b481a14b078d0fad673ad63e23b1b56dec0cb94 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=644d41a2ad0eeb0b4c8f45d97302becdc9270125 Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a 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 39c78bed1..a795a7730 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,7 +1,7 @@ From: Marc Kleine-Budde <mkl@pengutronix.de> Date: Wed, 5 Mar 2014 00:49:47 +0100 Subject: [PATCH 033/353] net: sched: Use msleep() instead of yield() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5a105c0124877dd2964aac535777189eba38176e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a2606d8cca4f1676f8e4428ac09a81adb99272e 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 b6052a6ce..06535faa3 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 27 Mar 2018 16:24:15 +0200 Subject: [PATCH 034/353] dm rq: remove BUG_ON(!irqs_disabled) check -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37cb923def4a48797389fe3a7c21bde78798bf27 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a4df0ffc36cba9a71e739f5838df2eb08896256 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 799437d21..02f48203c 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 8 Nov 2013 17:34:54 +0100 Subject: [PATCH 035/353] usb: do no disable interrupts in giveback -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f847ddd27f34eff4e942a9f35a4b254bb16abed8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=476b0e55e05f6dadc236e6f568f66c0907218ea2 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 6ce99674d..13d19f8de 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 17 Jun 2011 12:39:57 +0200 Subject: [PATCH 036/353] rt: Provide PREEMPT_RT_BASE config switch -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc2f5c58bfd187b942910304abcd1b3d3469310d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b0d131d186abf19fa4f22052f09aa9d1e4b8e67d 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 f40d70689..18adcb82b 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 14 Dec 2011 01:03:49 +0100 Subject: [PATCH 037/353] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=952c945d9fc29c58a035417e6c55f808f1377cab +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9cb2fbe6f5b5c488e7e709e18adf4cf45069eb 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 896cc203a..2d36bb291 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 8 Jul 2015 17:14:48 +0200 Subject: [PATCH 038/353] jump-label: disable if stop_machine() is used -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6b5444866b72dc483901482491924d3dd303223 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7475498ce7b14345b197402b874347c3a8a55075 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 3a6204f03..092b6ffb0 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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 24 Jul 2011 12:11:43 +0200 Subject: [PATCH 039/353] kconfig: Disable config options which are not RT compatible -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46a6c39e9812501f60ae7231a8cd10d40a133757 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78e60f97bd4dc81d3b289ce9ba3bd50e6496b917 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 8b7300625..5367e26e1 100644 --- a/debian/patches-rt/0040-lockdep-disable-self-test.patch +++ b/debian/patches-rt/0040-lockdep-disable-self-test.patch @@ -4,7 +4,7 @@ Subject: [PATCH 040/353] lockdep: disable self-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46ee29532b5b9e1210141d05bcc94973558b9f44 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d493518f5ac0489a49fbb9c7768b49f43ed1add 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 09be4ffde..b90f803b6 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,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:44:03 -0500 Subject: [PATCH 041/353] mm: Allow only slub on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=034926d870cc644f9749f756bec5f4c328f8bbc9 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cb3b6e45e3f58dd010c7238697d1cf1a971f71e1 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 b0e660b66..88a1efae0 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 @@ -4,7 +4,7 @@ Subject: [PATCH 042/353] locking: Disable spin on owner for RT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb70dbff62f04d85313f9ea6fd09ebe5fd00fc7d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af47a49386367ed0b848f393f5e6136cd83b69a5 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 f84ab6037..d96043a68 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 28 Oct 2012 13:26:09 +0000 Subject: [PATCH 043/353] rcu: Disable RCU_FAST_NO_HZ on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e260655473eacb8537b3e4f437747c1a18530191 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=807f7c93f7edb3fcca92051a329ae6c108de6b36 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 0853e8420..7eefd7726 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Mar 2014 20:19:05 +0100 Subject: [PATCH 044/353] rcu: make RCU_BOOST default on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d59067f0eebc3f17a4aacc039c67a5adc75f7ced +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b2d814594a0f22fef63b73eaa88d1ef3ba9e002 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 a3228ca11..400617a80 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:03:52 +0200 Subject: [PATCH 045/353] sched: Disable CONFIG_RT_GROUP_SCHED on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ce65f9eabca71fd892cecbed0713ccf17bc59cb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8c020a966bafec876d590b4a2fd9f7801e23d5a 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 6a56e3b9e..6f0477790 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 @@ -4,7 +4,7 @@ Subject: [PATCH 046/353] net/core: disable NET_RX_BUSY_POLL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=502072d5b069c14b3de75fe7056c58d493f92d02 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c91e1d483f6d2e075683470a7e46a305c83a564c 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 d4a6dea02..4a2db17b6 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 1 Dec 2017 10:42:03 +0100 Subject: [PATCH 047/353] arm*: disable NEON in kernel mode -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f20c0b9253ea4b5d975df077f7c4ddbbaa2dd70d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7239775653422e6ae509eb044c2e29549918751a 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 19e77d805..db78ee0b7 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 048/353] powerpc: Use generic rwsem on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=093578a8c3f5ac7b43be32a4f6b9bd0a4fe19842 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51c73f280c36dda381651f877c21f25d176c2578 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 b933dd67d..1559437a0 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 @@ -2,7 +2,7 @@ From: Bogdan Purcareata <bogdan.purcareata@freescale.com> Date: Fri, 24 Apr 2015 15:53:13 +0000 Subject: [PATCH 049/353] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT_FULL -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcdb6700fbc6eeac31e2250c931df82e8bbe7c0a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2178c38f47591486742dfaf8fef2b79fd85967a 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 bc18bf72e..c08c00eae 100644 --- a/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch +++ b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:08:34 +0200 Subject: [PATCH 050/353] powerpc: Disable highmem on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42f6f091805e728a4eacca4829e87a77de5c1e1b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=881dee687f9b7382c752cad0833c67629c3e88fb 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 fc6a5fa34..340ce777f 100644 --- a/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch +++ b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:10:12 +0200 Subject: [PATCH 051/353] mips: Disable highmem on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6fe479664379eeda3263be26ac744e9c10aca19 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8faa268480a65b8ec2bc9731d9488ab238e5eee 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 ebf335f22..38b04824e 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 26 Jul 2009 02:21:32 +0200 Subject: [PATCH 052/353] x86: Use generic rwsem_spinlocks on -rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2616ab41e6efdb625bff430005de8f0b70881644 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c2d67e579a50998e69e63fc2e1d3b93ddecc564 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 33fadb16b..8cb7e3811 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 23 Jan 2014 14:45:59 +0100 Subject: [PATCH 053/353] leds: trigger: disable CPU trigger on -RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=462ad08a0fef7b27c741a6cd5e49ab7e430bb97c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a8d66dd761a516e265202481b854fff78c6b1b6 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 bdc816c9f..cfeda51ca 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 9 Apr 2015 15:23:01 +0200 Subject: [PATCH 054/353] cpufreq: drop K8's driver from beeing selected -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7644f056b07841ff9b1f0984caed7ed5db699030 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69b2bc87d938e2f7c48cfae26f1bde516298648f 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 1b00143c2..afe7f1fc4 100644 --- a/debian/patches-rt/0055-md-disable-bcache.patch +++ b/debian/patches-rt/0055-md-disable-bcache.patch @@ -4,7 +4,7 @@ Subject: [PATCH 055/353] md: disable bcache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5ea385604780686a520c21a2ea4e32f09226e33 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f2b9a4942cf661040eaf50bcf2273f11609f78b 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 76edd0149..1c79b3b41 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 15:03:16 +0200 Subject: [PATCH 056/353] efi: Disable runtime services on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b0e8136232443e042b5c44c852f280009801317f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0ece58437734f184ee2b23f28f2677164de88ac9 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 243c6a1af..d72360c02 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,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 22 Jul 2011 17:58:40 +0200 Subject: [PATCH 057/353] printk: Add a printk kill switch -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f062ada5016529787b9a1fce14332b05eee8df10 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41266168d2081efb4dce1f66cceb696bd642a639 Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that it does not dead-lock with the early printk code. @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 3 files changed, 71 insertions(+), 20 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 6dd867e39365..b9d050428456 100644 +index f4d7e643f010..586be4c5df96 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -140,9 +140,11 @@ struct va_format { 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 fbba46604..be5a84236 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 @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 2 Sep 2011 14:41:29 +0200 Subject: [PATCH 058/353] printk: Add "force_early_printk" boot param to help with debugging -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7258ee726dae2e8518580e1eca871149c2802532 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09a1a8262e58440d4f13b8c83c4b9df4f1e98b68 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 0b2cfba3a..68a057a6d 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 24 Jul 2009 12:38:56 +0200 Subject: [PATCH 059/353] preempt: Provide preempt_*_(no)rt variants -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4e2a181620b6f226f127cbe13a958a106a86b61 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c22473616742042d7220a7ed01109c20219aa122 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 8817b2fff..23da29124 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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 8 Mar 2017 14:23:35 +0100 Subject: [PATCH 060/353] futex: workaround migrate_disable/enable in different context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f7cdc070566c6d7d8a76b1b0ffdc87b135cbdae0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=005385bd16d108692e1c126bc21baaf65247d41b migrate_disable()/migrate_enable() takes a different path in atomic() vs !atomic() context. These little hacks ensure that we don't underflow / overflow 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 7081e180a..6236eb37e 100644 --- a/debian/patches-rt/0061-rt-Add-local-irq-locks.patch +++ b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 20 Jun 2011 09:03:47 +0200 Subject: [PATCH 061/353] rt: Add local irq locks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6ae384120c0556824963a74ab901944ef4ee797 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcbbd166f143aaaf07a1a3b0b910448cad98807d 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 b3c1d288f..47955c3d8 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,7 +1,7 @@ From: Julia Cartwright <julia@ni.com> Date: Mon, 7 May 2018 08:58:56 -0500 Subject: [PATCH 062/353] locallock: provide {get,put}_locked_ptr() variants -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=528d9d996bca8f3122200d9873400c61cd07bc28 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5dc9c8dde604d296946d3c972c85c62bc39ad790 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 eb6d4a2d6..11e75312b 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 3 Jul 2009 08:44:34 -0500 Subject: [PATCH 063/353] mm/scatterlist: Do not disable irqs on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44fe2fd54347e2dd0cdc3c69d217877623865c57 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ed7cd17a5a82c9c8339c813f8349b672892703e 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 5b6577cb6..b200cf8da 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,7 +1,7 @@ From: Oleg Nesterov <oleg@redhat.com> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 064/353] signal/x86: Delay calling signals in atomic -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e48d85154e3afe0754d64e08de79a08733c4a9b7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f2e1eba7c6820604ba2f99dfb4e0cf6d1448b6a On x86_64 we must disable preemption before we enable interrupts for stack faults, int3 and debugging, because the current task is using 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 1eca98375..b785f1133 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,7 +1,7 @@ From: Yang Shi <yang.shi@linaro.org> Date: Thu, 10 Dec 2015 10:58:51 -0800 Subject: [PATCH 065/353] x86/signal: delay calling signals on 32bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bbf815eb2ad51dc84ee8d99aa757d321801c029a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb7990ff39c4d55a438d1d98cd873b1a6a20ed25 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 a0677ed8b..39751173b 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 18 Mar 2011 09:18:52 +0100 Subject: [PATCH 066/353] buffer_head: Replace bh_uptodate_lock for -rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=14e3bd221af4b7aec2bfa48507b1cd4ee48fa60e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b7112c7f2393168be4998583652cd82cfba26657 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 c4cad8a32..883de41c9 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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 18 Mar 2011 10:11:25 +0100 Subject: [PATCH 067/353] fs: jbd/jbd2: Make state lock and journal head lock rt safe -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dd0d7f0e4488d93b9fe0d12f516651da802db06c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=287a79f16976e509bad76ff2beb4d1fa36dee029 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 862afe8ef..67bc835ac 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,7 +1,7 @@ From: Paul Gortmaker <paul.gortmaker@windriver.com> Date: Fri, 21 Jun 2013 15:07:25 -0400 Subject: [PATCH 068/353] list_bl: Make list head locking RT safe -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7bdc6e7f097af89dc86c3909e9446f50fc8c5daa +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a4a154a836de866df8224ccec73bd3326aa14ec 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 94437bea7..48011bc68 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,7 +1,7 @@ From: Josh Cartwright <joshc@ni.com> Date: Thu, 31 Mar 2016 00:04:25 -0500 Subject: [PATCH 069/353] list_bl: fixup bogus lockdep warning -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a22e7f3fc7bbc9dad2043bcbfc0d38ce9e4b00bb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f671f39416b991c8fef15e4e7c8734034043c90f 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 8590c373f..1ec75d595 100644 --- a/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch +++ b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:57 -0500 Subject: [PATCH 070/353] genirq: Disable irqpoll on -rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5f86f00187743accf6007c4ba236ebab8e289434 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b5e333637dade576a0bdd5032dc7b65746460db4 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 f65c2a766..6e8649eb6 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 3 Apr 2011 11:57:29 +0200 Subject: [PATCH 071/353] genirq: Force interrupt thread on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e16716c355e269ae24d289794cb4276d1fab663 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31da4391a9681dc99ba6fbb4e0a52f8aba734b83 Force threaded_irqs and optimize the code (force_irqthreads) in regard to this. 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 455ecb372..cb3e6d4a8 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 @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 28 May 2018 15:24:20 +0200 Subject: [PATCH 072/353] Split IRQ-off and zone->lock while freeing pages from PCP list #1 -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0073312549bfa62ca583d487d14b2e78056df9c6 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9fd68ce8dfdfd97a4178efdda9dd37014f62b1d5 Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 1cffd4e1fd8f..7b48a742f235 100644 +index 4553cc848abc..d5fc6a1c79a5 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1096,7 +1096,7 @@ static inline void prefetch_buddy(struct page *page) 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 5d5b67729..458e3a160 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 @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 28 May 2018 15:24:21 +0200 Subject: [PATCH 073/353] Split IRQ-off and zone->lock while freeing pages from PCP list #2 -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd91ba53f0f96f7f7fffe763ae93d2afa8fd62cd +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b2652116a3528f3658deb5a4dd32c704552b1080 Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 7b48a742f235..ea7c80e38b83 100644 +index d5fc6a1c79a5..3b8613c96940 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1106,8 +1106,8 @@ static inline void prefetch_buddy(struct page *page) 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 2ca62168d..7575989fe 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 28 May 2018 15:24:22 +0200 Subject: [PATCH 074/353] mm/SLxB: change list_lock to raw_spinlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7aa4f7d11c84b41d032ceb5904778d4022996619 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02829e5ee70fc4951a1492d03d4ccff359b0a914 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 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 e2d38d0a6..d52ca7c84 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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 21 Jun 2018 17:29:19 +0200 Subject: [PATCH 075/353] mm/SLUB: delay giving back empty slubs to IRQ enabled regions -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9b8e390ea0ef59c3639bcab8ec9f4b5a2ead974c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0bed7d4f488bcf540f7876a275217b9c398254bb __free_slab() is invoked with disabled interrupts which increases the irq-off time while __free_pages() is doing the work. 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 550c2897f..8130097c9 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,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:37 -0500 Subject: [PATCH 076/353] mm: page_alloc: rt-friendly per-cpu pages -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce3abcc61c9877b35570af7ecbd3a2ab1bca2912 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1bb66c1cc65535695f6d34f78086223ed4e87514 rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index ea7c80e38b83..94ab9500f9d7 100644 +index 3b8613c96940..51f71e7740b2 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -60,6 +60,7 @@ @@ -215,7 +215,7 @@ index ea7c80e38b83..94ab9500f9d7 100644 return NULL; } -@@ -8191,7 +8214,7 @@ void zone_pcp_reset(struct zone *zone) +@@ -8207,7 +8230,7 @@ void zone_pcp_reset(struct zone *zone) struct per_cpu_pageset *pset; /* avoid races with drain_pages() */ @@ -224,7 +224,7 @@ index ea7c80e38b83..94ab9500f9d7 100644 if (zone->pageset != &boot_pageset) { for_each_online_cpu(cpu) { pset = per_cpu_ptr(zone->pageset, cpu); -@@ -8200,7 +8223,7 @@ void zone_pcp_reset(struct zone *zone) +@@ -8216,7 +8239,7 @@ void zone_pcp_reset(struct zone *zone) free_percpu(zone->pageset); zone->pageset = &boot_pageset; } 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 6456961f1..8c4b4dfde 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,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:51 -0500 Subject: [PATCH 077/353] mm/swap: Convert to percpu locked -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ee82fc26b4dd832c47e196fb58f0a0cbdd18039 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f11cbef82fab199491592055c6bd404867e5d463 Replace global locks (get_cpu + local_irq_save) with "local_locks()". Currently there is one of for "rotate" and one for "swap". @@ -55,10 +55,10 @@ index 5079ddbec8f9..c40d3a13cbbd 100644 cc->last_migrated_pfn = 0; } diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 94ab9500f9d7..27808409a25c 100644 +index 51f71e7740b2..a34a071048d2 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -7302,8 +7302,9 @@ void __init free_area_init(unsigned long *zones_size) +@@ -7318,8 +7318,9 @@ void __init free_area_init(unsigned long *zones_size) static int page_alloc_cpu_dead(unsigned int cpu) { 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 9c7805300..7b9ad0e55 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,7 +1,7 @@ From: Luiz Capitulino <lcapitulino@redhat.com> Date: Fri, 27 May 2016 15:03:28 +0200 Subject: [PATCH 078/353] mm: perform lru_add_drain_all() remotely -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab6f63019d1a38c79d64bc6f54c0be70dfb526c8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ddbda00eeee4a9177a7ebc3d05932ebfe414742f 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 eb1ba8fd6..0db5adc93 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 @@ -2,7 +2,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:30:13 -0500 Subject: [PATCH 079/353] mm/vmstat: Protect per cpu variables with preempt disable on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=130ffa47348bc9aca027e32e23b62bfc86593200 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0563dacda4ed0e4a61ba53f2a6ea8b8a50cf4914 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 818c94fb8..4a3556c9b 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 @@ -2,7 +2,7 @@ From: Frank Rowand <frank.rowand@am.sony.com> Date: Sat, 1 Oct 2011 18:58:13 -0700 Subject: [PATCH 080/353] ARM: Initialize split page table locks for vector page -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be5374988b402d2bc249b848d12564514c117bbf +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fbc577ca758067f49bde3100fa9b6cc3c26b0920 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 bad9dfe59..0ba5470e3 100644 --- a/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch +++ b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 25 Oct 2012 10:32:35 +0100 Subject: [PATCH 081/353] mm: Enable SLUB for RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b09ad0805341ba4229b82deea465ab1460b94b3b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cfa555ce1c0ad724598773bddd70e7b294a2680c Avoid the memory allocation in IRQ section 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 b72d9e4bc..6f5fe6a8e 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 9 Jan 2013 12:08:15 +0100 Subject: [PATCH 082/353] slub: Enable irqs for __GFP_WAIT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=baec10672dad99cc0be8bd6afa2fc6f4abc04a64 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60c7bad2d7e7475f8030e910935d5a14901a21d3 SYSTEM_RUNNING might be too late for enabling interrupts. Allocations with GFP_WAIT can happen before that. So use this as an indicator. 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 785d43545..3311789cf 100644 --- a/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch +++ b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 15 Apr 2015 19:00:47 +0200 Subject: [PATCH 083/353] slub: Disable SLUB_CPU_PARTIAL -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be80f86f288a2e22f6d85ea2df8a49dccf483658 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3b9b3f34e457d3e594cd093c5f1ed48a476eb5f |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 5178be91b..bce692843 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 @@ -2,7 +2,7 @@ From: Yang Shi <yang.shi@windriver.com> Date: Wed, 30 Oct 2013 11:48:33 -0700 Subject: [PATCH 084/353] mm/memcontrol: Don't call schedule_work_on in preemption disabled context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5850c5f1b14f535ec88b2b429b43e7a249133ebc +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5031f9cdd61fdfdcb0a379e5595209eb3dac9a2f The following trace is triggered when running ltp oom test cases: 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 814203277..056411cab 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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 28 Jan 2015 17:14:16 +0100 Subject: [PATCH 085/353] mm/memcontrol: Replace local_irq_disable with local locks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40534c4e3cc25eea0d7369472c85247a02a6b1df +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c81a3f5935dfdf459d8a0f1a1a23a8894bff122f There are a few local_irq_disable() which then take sleeping locks. This patch converts them local locks. 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 0eac84c98..69a586a87 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,7 +1,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Tue, 22 Mar 2016 11:16:09 +0100 Subject: [PATCH 086/353] mm/zsmalloc: copy with get_cpu_var() and locking -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84f042cbdce6d963014e063db861eddc61d60e4d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1066fad5edfca01fbe5e367fa7bbed89e4034677 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 f8f0bcb58..e778b47ad 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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 11 Dec 2018 21:53:43 +0100 Subject: [PATCH 087/353] x86/mm/pat: disable preemption __split_large_page() after spin_lock() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b725467f11035d389d63f879fb7cd07ea96576ad +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93515e9f085077bbdb2a1a2aebd39cad36bfa04e 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 efdd7c060..9b4233844 100644 --- a/debian/patches-rt/0088-radix-tree-use-local-locks.patch +++ b/debian/patches-rt/0088-radix-tree-use-local-locks.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 25 Jan 2017 16:34:27 +0100 Subject: [PATCH 088/353] radix-tree: use local locks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9b6bbce6c471509e1ad2927ef5a6af2e5d86a791 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8e0178916a1bc31af350f62b7e539c9f5390605f 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 91bc985c1..661221346 100644 --- a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch +++ b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:34 -0500 Subject: [PATCH 089/353] timers: Prepare for full preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5fcad9b9dd52a53e32b23ee738fde8ccae781456 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a83bbf72537fcc969c8058550534087860df01d 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 7befca5e9..887440c95 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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 6 Nov 2011 12:26:18 +0100 Subject: [PATCH 090/353] x86: kvm Require const tsc for RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9bbf7670cd85f3c920766f29e2930c070912e5e7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=123d3ce568892f54102019bde255d003a1a3c046 Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds 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 45dad1a0f..cf520c9e4 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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 4 Oct 2017 10:24:23 +0200 Subject: [PATCH 091/353] pci/switchtec: Don't use completion's wait queue -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb7284f51972e4e3ba3be66b3c4ced7782166bd5 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb27dc96cb4eb0032a04412e84d7173316dcf1d7 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 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 4c6d6f7f5..9fcae2021 100644 --- a/debian/patches-rt/0092-wait.h-include-atomic.h.patch +++ b/debian/patches-rt/0092-wait.h-include-atomic.h.patch @@ -4,7 +4,7 @@ Subject: [PATCH 092/353] wait.h: include atomic.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da826d59e71cf1ab2beedc9257a6889f7c09debb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92527c4268ea4c091b74080e2aca085023745549 | 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 714814f4f..b1c63280b 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,7 +1,7 @@ From: Daniel Wagner <daniel.wagner@bmw-carit.de> Date: Fri, 11 Jul 2014 15:26:11 +0200 Subject: [PATCH 093/353] work-simple: Simple work queue implemenation -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9f6a609922ca4d15e35ab8e012e7ae99e635b98c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=207d328d37b03b8fe78f7e50507c7276d3d574d6 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 76adc9b71..890b0bc23 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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 10 Sep 2018 18:00:31 +0200 Subject: [PATCH 094/353] work-simple: drop a shit statement in SWORK_EVENT_PENDING -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7879b914f12f9837e5dd25ad85fc3a08b7c4e98 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89b96b26ee1e64dfeb6d4c2513baef4cf7e74da6 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 159745162..33e2c5620 100644 --- a/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch +++ b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 11 Jan 2013 11:23:51 +0100 Subject: [PATCH 095/353] completion: Use simple wait queues -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c312711581de92d031637f11edb5dc0742276b3b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a49f4fe084f93cac4f50d134183b03ef7e86ab41 Completions have no long lasting callbacks and therefor do not need the complex waitqueue variant. Use simple waitqueues which reduces the 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 aa2679c81..2d1e7e612 100644 --- a/debian/patches-rt/0096-fs-aio-simple-simple-work.patch +++ b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 16 Feb 2015 18:49:10 +0100 Subject: [PATCH 096/353] fs/aio: simple simple work -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94821aaab24207586e09fd2fa7203bce01a03394 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04b62043344abb5d537d46a14ca3eab97b6380e2 |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-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch index 12575740a..95085a036 100644 --- a/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch +++ b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 15 Nov 2017 17:29:51 +0100 Subject: [PATCH 097/353] time/hrtimer: avoid schedule_work() with interrupts disabled -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d2fb48ecf9c8e6bd92570c06ad7fe50e7073573 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ac94e556e7d6adbadd76a878334275ce3acd987 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/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch index b2204b266..d83a27103 100644 --- a/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +++ b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 3 Jul 2018 11:25:41 +0200 Subject: [PATCH 098/353] hrtimer: consolidate hrtimer_init() + hrtimer_init_sleeper() calls -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1865ef7c70b641378b27eff7cce5f66a48bb4d8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81d6386fe5a38dafb8561c5d8caae248bb3456c8 hrtimer_init_sleeper() calls require a prior initialisation of the hrtimer object with hrtimer_init(). Lets make the initialisation of diff --git a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch index 88a248b0a..5e9ac99d4 100644 --- a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch +++ b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:34 -0500 Subject: [PATCH 099/353] hrtimers: Prepare full preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7a50602af3afa6a0e114b242bddae024f794c68 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d28d53d40629674ff58c7686726104f107c8e479 Make cancellation of a running callback in softirq context safe against preemption. diff --git a/debian/patches-rt/0100-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 index 374e4f9aa..de1e06f86 100644 --- a/debian/patches-rt/0100-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 3 Jul 2009 08:44:31 -0500 Subject: [PATCH 100/353] hrtimer: by timers by default into the softirq context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6117abca429d5fae96db4e3437aa1d6f818fe1d2 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f29c49b257f3002eb54b6303ac0fc6551f3180b2 We can't have hrtimers callbacks running in hardirq context on RT. Therefore the timers are deferred to the softirq context by default. @@ -65,7 +65,7 @@ index 8714f1a37d84..082147c07831 100644 /* diff --git a/kernel/events/core.c b/kernel/events/core.c -index 668e5492e4c4..f374d3a250eb 100644 +index 2bf4b6b109bf..69524886cc89 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -1108,7 +1108,7 @@ static void __perf_mux_hrtimer_init(struct perf_cpu_context *cpuctx, int cpu) @@ -206,10 +206,10 @@ index a836efd34589..c50e8f3262de 100644 clockevents_register_device(&ce_broadcast_hrtimer); } diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index e774a49176cc..012bc81879bf 100644 +index 0491c4c4a5cf..721e70e1f0b9 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c -@@ -1314,7 +1314,7 @@ void tick_setup_sched_timer(void) +@@ -1326,7 +1326,7 @@ void tick_setup_sched_timer(void) /* * Emulate tick processing via per-CPU hrtimers: */ diff --git a/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch index eb0c57d89..d5d314974 100644 --- a/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch +++ b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 8 Jan 2019 12:31:06 +0100 Subject: [PATCH 101/353] sched/fair: Make the hrtimers non-hard again -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b2f34a9350f04580eb6e8a4059a9a18752b659d0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=109040d80c1535285a4498e04a016f5ee2ba71e4 Since commit "sched/fair: Robustify CFS-bandwidth timer locking" both hrtimer can run in softirq context because now interrupts are disabled diff --git a/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch index 7143f6037..e30c432ee 100644 --- a/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch +++ b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch @@ -1,7 +1,7 @@ From: Yang Shi <yang.shi@windriver.com> Date: Mon, 16 Sep 2013 14:09:19 -0700 Subject: [PATCH 102/353] hrtimer: Move schedule_work call to helper thread -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5d5022d508a66a31166520507eebb0b2325af7e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eab2a2611acee0790f3b6b3d35ba10daf48aa0c8 When run ltp leapsec_timer test, the following call trace is caught: diff --git a/debian/patches-rt/0103-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 index a136f89e4..bc476ce12 100644 --- a/debian/patches-rt/0103-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 6 Dec 2018 10:15:13 +0100 Subject: [PATCH 103/353] hrtimer: move state change before hrtimer_cancel in do_nanosleep() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=208c5ed45b86d053d5c2f157a5e7d22ac12a57d8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9cb841c278a15f27daf46f87af052919ae51861e 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/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch index b640c1d73..8b27b06ed 100644 --- a/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch +++ b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch @@ -1,7 +1,7 @@ From: John Stultz <johnstul@us.ibm.com> Date: Fri, 3 Jul 2009 08:29:58 -0500 Subject: [PATCH 104/353] posix-timers: Thread posix-cpu-timers on -rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93d6691678e3b2f624878e8ba031fbbb16094def +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a318dfc7f0d2ef94b30074a4a36311b3073bb55 posix-cpu-timer code takes non -rt safe locks in hard irq context. Move it to a thread. diff --git a/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch index 64bb12029..875f00e6e 100644 --- a/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch +++ b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 31 May 2011 16:59:16 +0200 Subject: [PATCH 105/353] sched: Move task_struct cleanup to RCU -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=21fe322dc25999644838f95e2b60e8ff2fe4470b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be35f1b200eb51447b20a7a2653e53c58c58ca09 __put_task_struct() does quite some expensive work. We don't want to burden random tasks with that. diff --git a/debian/patches-rt/0106-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 index 49fcac403..55b805f35 100644 --- a/debian/patches-rt/0106-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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 6 Jun 2011 12:12:51 +0200 Subject: [PATCH 106/353] sched: Limit the number of task migrations per batch -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d297271b3df20a2d9838865017eae3d13045fe3b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cce7045319b606fb508c6c135bc17fec1297dea Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. diff --git a/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch index 24a2efb83..d54373e88 100644 --- a/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch +++ b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 6 Jun 2011 12:20:33 +0200 Subject: [PATCH 107/353] sched: Move mmdrop to RCU on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42db7ca081d6aa3d9770edef684724386404be3a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=29db13f93ec2cda8d72b6c38fe5049f15d68b107 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/0108-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 index 0359a432a..0f58bd1a7 100644 --- a/debian/patches-rt/0108-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 21 Nov 2016 19:31:08 +0100 Subject: [PATCH 108/353] kernel/sched: move stack + kprobe clean up to __put_task_struct() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=497784364b305a90cfa4248f61fd0aacae170e83 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c1b81f616fe6d01f4c5b70aa47f0c45b5d52175 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/0109-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 index b6af59149..d7fcd9a98 100644 --- a/debian/patches-rt/0109-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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 25 Jun 2011 09:21:04 +0200 Subject: [PATCH 109/353] sched: Add saved_state for tasks blocked on sleeping locks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30034b98c640a6a9c7b194126aece2584e08ed87 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a6b7d4a6d256d704711eb8d0387c88b9d3343c8 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/0110-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 index 320a34726..bab17e24a 100644 --- a/debian/patches-rt/0110-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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 7 Jun 2011 09:19:06 +0200 Subject: [PATCH 110/353] sched: Do not account rcu_preempt_depth on RT in might_sleep() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8c3cbc37fb534302c5f76165ca8fd97b8a8191f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c41cec71a19b50b70e158c340e365a1fabcb94ee RT changes the rcu_preempt_depth semantics, so we cannot check for it in might_sleep(). diff --git a/debian/patches-rt/0111-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 index 42c0c2642..2a1ddee4c 100644 --- a/debian/patches-rt/0111-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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 22:51:33 +0200 Subject: [PATCH 111/353] sched: Use the proper LOCK_OFFSET for cond_resched() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0bccce0bffc921ecc31e25af9048b469d94307cb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40aea8333fd3327ba94572e05c29392ffbdad221 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/0112-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch index 7902f1365..94e49f265 100644 --- a/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch +++ b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 13 Sep 2011 16:42:35 +0200 Subject: [PATCH 112/353] sched: Disable TTWU_QUEUE on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a65ed683581796d2003972da1191aae74f61a206 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae86912b078e8b3dad48b75af006bd02f90f0ef9 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/0113-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 index 404738299..bf74a8d7c 100644 --- a/debian/patches-rt/0113-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 @@ -2,7 +2,7 @@ From: Steven Rostedt <rostedt@goodmis.org> Date: Mon, 18 Mar 2013 15:12:49 -0400 Subject: [PATCH 113/353] sched/workqueue: Only wake up idle workers if not blocked on sleeping spin lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da701b3e08c4318b7d21fc6cf856e9f3ace912c0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a395882d6b37ec67f24df8f6feea9d75bf9a9b20 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/0114-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 index 284b46f3f..7af709a7e 100644 --- a/debian/patches-rt/0114-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 @@ -2,7 +2,7 @@ From: Daniel Bristot de Oliveira <bristot@redhat.com> Date: Mon, 26 Jun 2017 17:07:15 +0200 Subject: [PATCH 114/353] rt: Increase/decrease the nr of migratory tasks when enabling/disabling migration -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ab761de0e3bce2d40f8415159a1683a6b44b741 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=286a1ecec4809b5fcd4dfe12f107909be4d17758 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/0115-hotplug-Lightweight-get-online-cpus.patch b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch index b4b5e28b1..0f2094998 100644 --- a/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch +++ b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 15 Jun 2011 12:36:06 +0200 Subject: [PATCH 115/353] hotplug: Lightweight get online cpus -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=359ee8bad3d184681c5f7f7fc89bb3cba2feccae +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=622116c75e173f8a4be2422016f5047e8a72fda1 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/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch index d7bf41f1e..035c9ca49 100644 --- a/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch +++ b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 21:56:42 +0200 Subject: [PATCH 116/353] trace: Add migrate-disabled counter to tracing output -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61b8ff2192098121277ab68ca02b398e9fc861da +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1f45a86c8d1602fa20f00359422fba7e099d9128 Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- diff --git a/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch index a36708b80..1a98fb592 100644 --- a/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch +++ b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 18:51:23 +0200 Subject: [PATCH 117/353] lockdep: Make it RT aware -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0510c3772a827facfad8410adbc698faf3d8d73a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98130f1daaea2199bb162bdf605746816a0f48ac teach lockdep that we don't really do softirqs on -RT. diff --git a/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch index b11fea3b2..89a83b3e8 100644 --- a/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +++ b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch @@ -2,7 +2,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Tue, 29 Nov 2011 20:18:22 -0500 Subject: [PATCH 118/353] tasklet: Prevent tasklets from going into infinite spin in RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5317e9e199124dac93d3bc6866525e8857942d0c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd8fc2358f7c3c54456ca0c7cb995db98c81fba1 When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads, and spinlocks turn are mutexes. But this can cause issues with diff --git a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch index de8977ce4..90826ae16 100644 --- a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 13 Nov 2011 17:17:09 +0100 Subject: [PATCH 119/353] softirq: Check preemption after reenabling interrupts -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d032bdf0faf17bd875c0068a076abeeca0d21b54 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d73dc06a3a63b3e883babd7e29fa160128c73e60 raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -116,10 +116,10 @@ index 86a709954f5a..9c069ef83d6d 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index b778f3596543..f766df2bd01d 100644 +index 03903d3f1d69..4156bf7ca234 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2725,6 +2725,7 @@ static void __netif_reschedule(struct Qdisc *q) +@@ -2727,6 +2727,7 @@ static void __netif_reschedule(struct Qdisc *q) sd->output_queue_tailp = &q->next_sched; raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_restore(flags); @@ -127,7 +127,7 @@ index b778f3596543..f766df2bd01d 100644 } void __netif_schedule(struct Qdisc *q) -@@ -2787,6 +2788,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason) +@@ -2789,6 +2790,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason) __this_cpu_write(softnet_data.completion_queue, skb); raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_restore(flags); @@ -135,7 +135,7 @@ index b778f3596543..f766df2bd01d 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4271,6 +4273,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4273,6 +4275,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -143,7 +143,7 @@ index b778f3596543..f766df2bd01d 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -5822,12 +5825,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -5824,12 +5827,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) sd->rps_ipi_list = NULL; local_irq_enable(); @@ -158,7 +158,7 @@ index b778f3596543..f766df2bd01d 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -5905,6 +5910,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -5907,6 +5912,7 @@ void __napi_schedule(struct napi_struct *n) local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -166,7 +166,7 @@ index b778f3596543..f766df2bd01d 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -9529,6 +9535,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9531,6 +9537,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); diff --git a/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch index 7a15474f4..32713d256 100644 --- a/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch +++ b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 13:59:17 +0200 Subject: [PATCH 120/353] softirq: Disable softirq stacks for RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fd9bd08b1b2f9c99314b78b5e9e402a877996522 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eecedc65a229f4e4fbdb24922843629e839edfe4 Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. diff --git a/debian/patches-rt/0121-softirq-Split-softirq-locks.patch b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch index e3d7997bf..ea0ad8b8d 100644 --- a/debian/patches-rt/0121-softirq-Split-softirq-locks.patch +++ b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 4 Oct 2012 14:20:47 +0100 Subject: [PATCH 121/353] softirq: Split softirq locks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=29d8ccd21fdb6c5e33e3446e8c49125fb34671bb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9087b85873c1e3cac33ac6ce45442cc13505b4c The 3.x RT series removed the split softirq implementation in favour of pushing softirq processing into the context of the thread which @@ -807,10 +807,10 @@ index 1d3a482246cc..fd89f8ab85ac 100644 .thread_fn = run_ksoftirqd, .thread_comm = "ksoftirqd/%u", diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index 012bc81879bf..2b0ddd50e879 100644 +index 721e70e1f0b9..562d015b2401 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c -@@ -895,14 +895,7 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) +@@ -907,14 +907,7 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) return false; if (unlikely(local_softirq_pending() && cpu_online(cpu))) { diff --git a/debian/patches-rt/0122-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 index dd988bc8e..d91e6d4ea 100644 --- a/debian/patches-rt/0122-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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 16 Jun 2017 19:03:16 +0200 Subject: [PATCH 122/353] net/core: use local_bh_disable() in netif_rx_ni() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7de1df0fa1a0b414d2b01d063d2ff2a378e950c0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c6f220c3a41dbedd9271c75efa95557719cc9ac In 2004 netif_rx_ni() gained a preempt_disable() section around netif_rx() and its do_softirq() + testing for it. The do_softirq() part @@ -18,10 +18,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index f766df2bd01d..d03162a1828b 100644 +index 4156bf7ca234..70a3cebdac89 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4539,11 +4539,9 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4541,11 +4541,9 @@ int netif_rx_ni(struct sk_buff *skb) trace_netif_rx_ni_entry(skb); diff --git a/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch index b8f5084ef..57d1e6fab 100644 --- a/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +++ b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 31 Jan 2012 13:01:27 +0100 Subject: [PATCH 123/353] genirq: Allow disabling of softirq processing in irq thread context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b07249105058ae8ec7335b6ec9779601e4d341f4 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1128442014bca498569b0b81a4f6abbb3482eb8f 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 diff --git a/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch index 3650a4da9..1826644b8 100644 --- a/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch +++ b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 20 Jan 2016 16:34:17 +0100 Subject: [PATCH 124/353] softirq: split timer softirqs out of ksoftirqd -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5711afd63593c8fa83510c91331d112849c42dec +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3fa18033c14dff72f82998b26a271e3927780eeb 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/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch index 9fa84e537..70463e376 100644 --- a/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch +++ b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 18 Feb 2019 13:19:59 +0100 Subject: [PATCH 125/353] softirq: Avoid "local_softirq_pending" messages if ksoftirqd is blocked -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8aac8aeeb6dff25147615545ec92b2fd57aa028f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=713369743f628d38df761d559c099513842a87e9 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/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch index 070e519c5..89c83b380 100644 --- a/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch +++ b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 19 Feb 2019 16:49:29 +0100 Subject: [PATCH 126/353] softirq: Avoid "local_softirq_pending" messages if task is in cpu_chill() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3d51e9bd90f4be486484246f68c1521d1e4e54e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8da244f6216d1a906d97925913a4385e702abdd5 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/0127-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch index 71746a73a..e5f3e05fd 100644 --- a/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch +++ b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 2 Dec 2015 11:34:07 +0100 Subject: [PATCH 127/353] rtmutex: trylock is okay on -RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6dbe549bbeb502121ea580edefb29863902d7468 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d80ea121d373f6048bf46fae7d5c4b7f78a26196 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/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch index 45eaa8cd4..b11a25b71 100644 --- a/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +++ b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 15 Sep 2016 10:51:27 +0200 Subject: [PATCH 128/353] fs/nfs: turn rmdir_sem into a semaphore -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e0548b5b0a78375c3deb843c9ab50a020017ab12 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a865901ab427b7d9016bdc42a706beb5a4da5903 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/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch index b9f476ac3..ac2f9c97d 100644 --- a/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch +++ b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 10 Jun 2011 11:04:15 +0200 Subject: [PATCH 129/353] rtmutex: Handle the various new futex race conditions -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1794981fa5586d5e3f6b95e4aca0d5ce6c796e96 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1a8f28a30981f0ab33f327955252d3cb4e4fbad RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and diff --git a/debian/patches-rt/0130-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 index b027a728c..626040ee8 100644 --- a/debian/patches-rt/0130-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,7 +1,7 @@ From: Steven Rostedt <rostedt@goodmis.org> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 130/353] futex: Fix bug on when a requeued RT task times out -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be1fc540aed468dfcbf80e9c71f01820b8f0a52f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d606054e3bdfa5d9bb3a48d3fc44b2e6a534eb13 Requeue with timeout causes a bug with PREEMPT_RT_FULL. diff --git a/debian/patches-rt/0131-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 index 7e889df8c..44d8687d4 100644 --- a/debian/patches-rt/0131-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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 1 Mar 2013 11:17:42 +0100 Subject: [PATCH 131/353] futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23f27ea471e98d5da15deefac2fcde0b21acae64 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8dbfc8e2b84952857d4d225d3eff59b73f6e6021 In exit_pi_state_list() we have the following locking construct: diff --git a/debian/patches-rt/0132-pid.h-include-atomic.h.patch b/debian/patches-rt/0132-pid.h-include-atomic.h.patch index 3d9eb5cf4..f42c2a4d3 100644 --- a/debian/patches-rt/0132-pid.h-include-atomic.h.patch +++ b/debian/patches-rt/0132-pid.h-include-atomic.h.patch @@ -1,7 +1,7 @@ From: Grygorii Strashko <Grygorii.Strashko@linaro.org> Date: Tue, 21 Jul 2015 19:43:56 +0300 Subject: [PATCH 132/353] pid.h: include atomic.h -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69d5a6dfa4f25dba3239c09c3a55eeb2770c81d1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5cd905ca7ce7ab06694717b22dd20b102a4ad36 This patch fixes build error: CC kernel/pid_namespace.o diff --git a/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch index bd650852b..8ad18a033 100644 --- a/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch +++ b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 22 Dec 2016 17:28:33 +0100 Subject: [PATCH 133/353] arm: include definition for cpumask_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be6f89e8f376adecf3d36e212c02a8b859527799 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e5ee101b7130830a24ba3159856ad5b8d247616 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/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch index 3a59f9004..d11bfb3e1 100644 --- a/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +++ b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch @@ -2,7 +2,7 @@ From: "Wolfgang M. Reimer" <linuxball@gmail.com> Date: Tue, 21 Jul 2015 16:20:07 +0200 Subject: [PATCH 134/353] locking: locktorture: Do NOT include rwlock.h directly -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=933ed5242a21a10b5f10ce6e05be063086357ce7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ad189ad0514c2094321f9fd0337ab57397db4f00 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/0135-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch index 0b1b1ba73..3d93b7062 100644 --- a/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch +++ b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 9 Jun 2011 11:43:52 +0200 Subject: [PATCH 135/353] rtmutex: Add rtmutex_lock_killable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6bf366a458e4c6adfd69dff87d9639f03597dc37 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d3b7dcdca0aece78c9009364661eb06688b6933 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/0136-rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch index 25cf3362b..d69c5254e 100644 --- a/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch +++ b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 1 Apr 2017 12:50:59 +0200 Subject: [PATCH 136/353] rtmutex: Make lock_killable work -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34fff3c8ffefec20772cbbdf521a1ac4f1532a39 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=837062c3b2e57ec5d4c04c8b1cda3305c2c010f2 Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. diff --git a/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch index bc18e6277..1f2dc144e 100644 --- a/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch +++ b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 19:34:01 +0200 Subject: [PATCH 137/353] spinlock: Split the lock types header -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d4ce354fa85d34205ad2b563e004cd382a103fc +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31a8676e8d6709bfd284c94cdcba63304586dc2c 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/0138-rtmutex-Avoid-include-hell.patch b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch index 9e853354b..54dbdfe1b 100644 --- a/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch +++ b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 20:06:39 +0200 Subject: [PATCH 138/353] rtmutex: Avoid include hell -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5e1b56fe5c87456f81d0e26f7da86eacb2716d2a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=318d1b407db029035da74bbd758aabc0352168ce 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/0139-rbtree-don-t-include-the-rcu-header.patch b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch index 650a12c91..fac209896 100644 --- a/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch +++ b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch @@ -4,7 +4,7 @@ Subject: [PATCH 139/353] rbtree: don't include the rcu header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=692b6f51268cd63d3c6eba42d2d8c3689b084b17 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=01edc3f9e31e5153bde8f96cab83edc1259da691 The RCU header pulls in spinlock.h and fails due not yet defined types: @@ -29,8 +29,6 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 56 insertions(+), 49 deletions(-) create mode 100644 include/linux/rcu_assign_pointer.h -diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h -index fcbeed4053ef..2aa2aec354c2 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h @@ -31,7 +31,7 @@ @@ -42,9 +40,6 @@ index fcbeed4053ef..2aa2aec354c2 100644 struct rb_node { unsigned long __rb_parent_color; -diff --git a/include/linux/rcu_assign_pointer.h b/include/linux/rcu_assign_pointer.h -new file mode 100644 -index 000000000000..7066962a4379 --- /dev/null +++ b/include/linux/rcu_assign_pointer.h @@ -0,0 +1,54 @@ @@ -102,8 +97,6 @@ index 000000000000..7066962a4379 +}) + +#endif -diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h -index 027c58cdbb6e..e6733d7911e9 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -42,6 +42,7 @@ @@ -114,11 +107,10 @@ index 027c58cdbb6e..e6733d7911e9 100644 #define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b)) #define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b)) -@@ -369,54 +370,6 @@ static inline void rcu_preempt_sleep_check(void) { } - ((typeof(*p) __force __kernel *)(________p1)); \ +@@ -370,54 +371,6 @@ static inline void rcu_preempt_sleep_che }) --/** + /** - * RCU_INITIALIZER() - statically initialize an RCU-protected global variable - * @v: The value to statically initialize with. - */ @@ -166,6 +158,7 @@ index 027c58cdbb6e..e6733d7911e9 100644 - _r_a_p__v; \ -}) - - /** - * rcu_swap_protected() - swap an RCU and a regular pointer - * @rcu_ptr: RCU pointer +-/** + * rcu_replace_pointer() - replace an RCU pointer, returning its old value + * @rcu_ptr: RCU pointer, whose old value is returned + * @ptr: regular pointer diff --git a/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch index 46f6b1110..889697bda 100644 --- a/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch +++ b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 16:14:22 +0200 Subject: [PATCH 140/353] rtmutex: Provide rt_mutex_slowlock_locked() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=279436be8b65c09efc0f9d940eee24bc7fb51a80 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4ed8a5378624e79f354f26b29f4ef135cabf19d5 This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. diff --git a/debian/patches-rt/0141-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 index d314eb23c..46da5b85f 100644 --- a/debian/patches-rt/0141-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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 16:36:39 +0200 Subject: [PATCH 141/353] rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=88c13a33c56797b4d34e53eb637550a90fdfbfae +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=740b84a1d5c6a69733ac82835e4c7219eaa578d5 Required for lock implementation ontop of rtmutex. diff --git a/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch index d1dc59fa2..fd0264324 100644 --- a/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch +++ b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:11:19 +0200 Subject: [PATCH 142/353] rtmutex: add sleeping lock implementation -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2c038c213b5f2b57c10d39c71eaf980e0a53fb7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae1b6e0e9a014befed2b7bc5c4eece86daa446db Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch index bef1d7aaa..5f9de40bb 100644 --- a/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:17:03 +0200 Subject: [PATCH 143/353] rtmutex: add mutex implementation based on rtmutex -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8da67338f528499c225579b3f4e20153b03f9eb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4e5a93b3550756da1004d9a27f77ffe93790a22 Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch index 8edda0f51..8affbba1a 100644 --- a/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:28:34 +0200 Subject: [PATCH 144/353] rtmutex: add rwsem implementation based on rtmutex -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d14aad145f516eb0c89d01284c76b73bf26cb97a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=19c04220398e1defbbc2ead7debf3effa79759a4 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/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch index 750d5a3dd..29d8d3732 100644 --- a/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:18:06 +0200 Subject: [PATCH 145/353] rtmutex: add rwlock implementation based on rtmutex -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a76302a27e22396747d726861bc4f3e6b8ac828b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea18fa0cbcb369fa74a6d4f1f1a679dc0c41dd73 The implementation is bias-based, similar to the rwsem implementation. diff --git a/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch index e0ce83b18..b75a172cf 100644 --- a/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch +++ b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Jan 2019 21:16:31 +0100 Subject: [PATCH 146/353] rtmutex/rwlock: preserve state like a sleeping lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=432de9d1a9e2f43bee9d57d6fd09f79dfe66f1ae +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b030b3a7e813383b360eb3c3b4971713d252707f 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/0147-rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch index a2570ff72..0509ec71f 100644 --- a/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch +++ b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:31:14 +0200 Subject: [PATCH 147/353] rtmutex: wire up RT's locking -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d0952f752129588f34b27e59293fb8a53e167dfd +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82c70eaccd0321348a401a8ee751938f3be5f0e4 Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch index ab7c5c446..994eb4348 100644 --- a/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +++ b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 12 Oct 2017 17:34:38 +0200 Subject: [PATCH 148/353] rtmutex: add ww_mutex addon for mutex-rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0266b089fe88193628a2c654eb8af52da00aeca5 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5638b534fffb7e1464776909b8ea609101dceddb Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- diff --git a/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch index 2585c7c36..a8b54fe2f 100644 --- a/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch +++ b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 14:58:57 +0200 Subject: [PATCH 149/353] kconfig: Add PREEMPT_RT_FULL -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff7dd2555046f812d000ad21c1c67aafbff173c1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=752046a4b227d6883a5b603f45e0987013571b82 Introduce the final symbol for PREEMPT_RT_FULL. diff --git a/debian/patches-rt/0150-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 index 4ac96c650..3106ba866 100644 --- a/debian/patches-rt/0150-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 @@ -2,7 +2,7 @@ From: Mikulas Patocka <mpatocka@redhat.com> Date: Mon, 13 Nov 2017 12:56:53 -0500 Subject: [PATCH 150/353] locking/rt-mutex: fix deadlock in device mapper / block-IO -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cc6247f13f918defb8afea1919bd25ccaa73d7a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2942d326ca47d9bea018e1e5ccfa2d11887bccbf 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/0151-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 index d70daa607..1068113c5 100644 --- a/debian/patches-rt/0151-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,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Fri, 4 Jan 2019 15:33:21 -0500 Subject: [PATCH 151/353] locking/rt-mutex: Flush block plug on __down_read() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a71fa1fdf3f1ef6d5e828679178652c39c1af496 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e16669ece8894e9a9a0b506e37e957c05aafb084 __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/0152-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 index cc6035b38..f807c7f17 100644 --- a/debian/patches-rt/0152-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 16 Nov 2017 16:48:48 +0100 Subject: [PATCH 152/353] locking/rtmutex: re-init the wait_lock in rt_mutex_init_proxy_locked() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d63321ef2952eb3e1d27c14e90f06aaa7e47284 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ae97ece9b790294f0706285373a1606659442eb 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/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch index 9bb16368e..4d2f62a96 100644 --- a/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +++ b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 29 Aug 2013 18:21:04 +0200 Subject: [PATCH 153/353] ptrace: fix ptrace vs tasklist_lock race -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82bd62e233762e18c9a01a6a3ce8a675e140e0d1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4db302711bda5e85a7be1eaaeaf80e330caf920 As explained by Alexander Fyodorov <halcy@yandex.ru>: diff --git a/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch index 55de07317..3f4ee1298 100644 --- a/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch +++ b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 21 Sep 2017 14:25:13 +0200 Subject: [PATCH 154/353] rtmutex: annotate sleeping lock context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af577af144bd8f017929ef79a0789f5fd1bc9f6b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4229625b3748a394f2e8127fec95d6c42845c5a 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/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch index abfc8a741..52c0508d4 100644 --- a/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch +++ b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 5 Jul 2018 14:44:51 +0200 Subject: [PATCH 155/353] sched/migrate_disable: fallback to preempt_disable() instead barrier() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=72fc975c09efd55a42502cd8ae4346f9e884afba +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=042d278b7e7b9f28417ae7c95ad95ba83065b1de 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/0156-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 index 4f9f11456..f95b6cfce 100644 --- a/debian/patches-rt/0156-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 4 Aug 2017 17:40:42 +0200 Subject: [PATCH 156/353] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fda1a9fe6a34dade0ceac16470d54e828941fcc8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1de5ba8a20471fbf228898156b626f15ddccf818 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/0157-rcu-Frob-softirq-test.patch b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch index 4385bfe72..b97fa394b 100644 --- a/debian/patches-rt/0157-rcu-Frob-softirq-test.patch +++ b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <a.p.zijlstra@chello.nl> Date: Sat, 13 Aug 2011 00:23:17 +0200 Subject: [PATCH 157/353] rcu: Frob softirq test -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4b5f8c0ab11edb2200bcade237168fc5734d16c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b22c921775db6303ca3915515934c5a07fe3bcc With RT_FULL we get the below wreckage: diff --git a/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch index 0b0d06626..aa96498ec 100644 --- a/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch +++ b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 5 Oct 2011 11:59:38 -0700 Subject: [PATCH 158/353] rcu: Merge RCU-bh into RCU-preempt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=afbdadf1575158f6bd024e7a21b9e26bedf2bdd4 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea7433159b2ffcf58ecc592690f31311034372c7 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/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch index a6aa291fb..71ab01a58 100644 --- a/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +++ b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch @@ -1,7 +1,7 @@ From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Date: Wed, 5 Oct 2011 11:45:18 -0700 Subject: [PATCH 159/353] rcu: Make ksoftirqd do RCU quiescent states -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=838d41a37a62dfbe7591b0d8ae7f65c0dd2a28be +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a04d9b0fd14c11feab735183e2390994a77db29 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/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch index 6cc9c1904..b78fba523 100644 --- a/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch +++ b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch @@ -1,7 +1,7 @@ From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Date: Mon, 4 Nov 2013 13:21:10 -0800 Subject: [PATCH 160/353] rcu: Eliminate softirq processing from rcutree -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22c7a16aa53b5659a3ae5a1d6b340dd75b7010bf +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b1567b981ee2c329d7c899c6cd49917803f4de2 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/0161-srcu-use-cpu_online-instead-custom-check.patch b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch index f3438a7e5..555450b9a 100644 --- a/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch +++ b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 13 Sep 2017 14:43:41 +0200 Subject: [PATCH 161/353] srcu: use cpu_online() instead custom check -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cf84fbe102004dc42ac21f8f35479ed4c8fcb82 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1423f183c0e3ff9419de9b9d3cd09bed0b84540 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/0162-srcu-replace-local_irqsave-with-a-locallock.patch b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch index ce3b21609..1b8579494 100644 --- a/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch +++ b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 12 Oct 2017 18:37:12 +0200 Subject: [PATCH 162/353] srcu: replace local_irqsave() with a locallock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ddb3ccfdf419687e43f793f16d2419bf602cdc01 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6e91931c31ac57dfd998afb20cf33c5db0211f1 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/0163-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 index 9bb6cc029..34de5c874 100644 --- a/debian/patches-rt/0163-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,7 +1,7 @@ From: Julia Cartwright <julia@ni.com> Date: Wed, 12 Oct 2016 11:21:14 -0500 Subject: [PATCH 163/353] rcu: enable rcu_normal_after_boot by default for RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4acc0cb23edfbed83bc7d11bd34e672ab6184271 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=715730eb2e4c433fec91c0b5be88a42cf53250b1 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/0164-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch index 312dc19ac..e31363e71 100644 --- a/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 28 Jul 2011 13:32:57 +0200 Subject: [PATCH 164/353] tty/serial/omap: Make the locking RT aware -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e32f42dec1d7691554247fb98ec3ce674161faef +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=43f213f089719957589286cb6d993219d226880f 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/0165-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 index 6c52801fb..3920ee816 100644 --- a/debian/patches-rt/0165-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,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 8 Jan 2013 21:36:51 +0100 Subject: [PATCH 165/353] tty/serial/pl011: Make the locking work on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0078406dbe103225ceb07433c4d141a02e66e775 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc32db3abe672f6824c06bcc529972a74b1c7b44 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/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch index 74d6d9429..dd96a0f53 100644 --- a/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch +++ b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch @@ -5,7 +5,7 @@ Subject: [PATCH 166/353] tty: serial: pl011: explicitly initialize the flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05baf33d95eafd9fbd45219ba9c092e895d4c2c1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d9aaa3e016ce6e6c21fd051f669bc169ba8fb58 Silence the following gcc warning: diff --git a/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch index 9ef734dba..e91a0dc2e 100644 --- a/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch +++ b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch @@ -4,7 +4,7 @@ Subject: [PATCH 167/353] rt: Improve the serial console PASS_LIMIT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d63c1d7bbac2b675e43917a5424ab95886b3e17c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d67046491f07ce337099d9076f5d0af41457f4e Beyond the warning: @@ -20,7 +20,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 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 d2df7d71d666..57fd29b2ddf5 100644 +index a0325af2832a..dd0c0c47f4c3 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/0168-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 index 70193d051..2a649311b 100644 --- a/debian/patches-rt/0168-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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Apr 2016 16:55:02 +0200 Subject: [PATCH 168/353] tty: serial: 8250: don't take the trylock during oops -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b19afc5231b5f29a6fb7b7ed672f22415ee4225 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fedac9e5838862f2a77d0d8a34b4b0bffca76c83 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 @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 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 ce266e10a21e..b3f88d2b827c 100644 +index cba4888bc482..af7df5ca17a5 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -3306,10 +3306,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3316,10 +3316,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, serial8250_rpm_get(up); diff --git a/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch index 159a43680..c94ddef0f 100644 --- a/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch +++ b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Wed, 23 Nov 2016 16:29:32 +0100 Subject: [PATCH 169/353] locking/percpu-rwsem: Remove preempt_disable variants -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f23b7c37251f54a939964734185e877c8310a98e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fddf5c58a99b20575b47df00a28f199e3c685d89 Effective revert commit: diff --git a/debian/patches-rt/0170-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 index 4657d298f..e6308c73d 100644 --- a/debian/patches-rt/0170-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 @@ -2,7 +2,7 @@ From: Yong Zhang <yong.zhang0@gmail.com> Date: Tue, 15 May 2012 13:53:56 +0800 Subject: [PATCH 170/353] mm: Protect activate_mm() by preempt_[disable&enable]_rt() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5dd256559b94c820735d12dc8b1202bd8389dcb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=72765ad90ad37a0185e3be74225c144d5d83cfc8 User preempt_*_rt instead of local_irq_*_rt or otherwise there will be warning on ARM like below: diff --git a/debian/patches-rt/0171-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 index 9198a9095..8f5257657 100644 --- a/debian/patches-rt/0171-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 13 Sep 2017 12:32:34 +0200 Subject: [PATCH 171/353] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3e666296c2ab2a54ddee377ed852844bf64b5025 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aecaf31f5a98b65e4f49dd9ecfddfe1da5b686e6 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/0172-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 index 882beaf2a..e05bfa94a 100644 --- a/debian/patches-rt/0172-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 20 Oct 2017 11:29:53 +0200 Subject: [PATCH 172/353] fs/dcache: disable preemption on i_dir_seq's write side -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8577a84b152281fcbf75fd979b6d7e2c8a00b548 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=73dad1b4c735605f03c709d3631000ed38390d8e 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 diff --git a/debian/patches-rt/0173-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 index e9bbaf222..be58e2840 100644 --- a/debian/patches-rt/0173-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 @@ -2,7 +2,7 @@ From: Julia Cartwright <julia@ni.com> Date: Mon, 7 May 2018 08:58:57 -0500 Subject: [PATCH 173/353] squashfs: make use of local lock in multi_cpu decompressor -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f06d224da259dc2afc2df08e8727baffcbecec4 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b53a7e12286b2e587e9bea1c4ab5ab4ebc5c892 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/0174-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch index 99469c024..3e8f606ca 100644 --- a/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch +++ b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch @@ -1,7 +1,7 @@ From: Daniel Wagner <wagi@monom.org> Date: Tue, 17 Feb 2015 09:37:44 +0100 Subject: [PATCH 174/353] thermal: Defer thermal wakups to threads -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b0c6911c9c53f3797c55aff7fc1f5b04d48957a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecea5d1de8aaf3cf20b90ce2dd1b811db8ca070b 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/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch index 2eaa4b273..2c386a391 100644 --- a/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch +++ b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 11 Dec 2018 15:10:33 +0100 Subject: [PATCH 175/353] x86/fpu: Disable preemption around local_bh_disable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=114edba091d0c40209a550913271f2e11a5b1f6f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9d155d7360346edcfd997c4f8857013a8c93466 __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/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch index ca93052a5..1b43d2cda 100644 --- a/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch +++ b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 8 Jul 2011 16:35:35 +0200 Subject: [PATCH 176/353] fs/epoll: Do not disable preemption on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3e9c486a84a703a80d2a499ee40a8f3ac1577296 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ccbbabc4e09d6892351af5078f8d0992c4f33d98 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/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch index 3c408003b..40f9e89d5 100644 --- a/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +++ b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 12 Jul 2011 11:39:36 +0200 Subject: [PATCH 177/353] mm/vmalloc: Another preempt disable region which sucks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f02eeca1b32f22a0c620153c56d2ed7699cc61a1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a630b63e6f1caa67f15cc0d7503c051b9d5bed5 Avoid the preempt disable version of get_cpu_var(). The inner-lock should provide enough serialisation. diff --git a/debian/patches-rt/0178-block-mq-use-cpu_light.patch b/debian/patches-rt/0178-block-mq-use-cpu_light.patch index 369314b34..7516eb79c 100644 --- a/debian/patches-rt/0178-block-mq-use-cpu_light.patch +++ b/debian/patches-rt/0178-block-mq-use-cpu_light.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 9 Apr 2014 10:37:23 +0200 Subject: [PATCH 178/353] block: mq: use cpu_light() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57ddc2744ca0ee7109ca15ef46ca65627a8c0eee +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c5e8c04bf7fb78a2af8e0a2f3aebdf9afb0e134 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/0179-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch index abf569476..51b6697fe 100644 --- a/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch +++ b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 179/353] block/mq: do not invoke preempt_disable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81393db3cca69b34aa356006c5163af2146f4132 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=653694f4e5539ad66c3c8094d1885337c2b9cb39 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/0180-block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch index 76110a527..20844564a 100644 --- a/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch +++ b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 29 Jan 2015 15:10:08 +0100 Subject: [PATCH 180/353] block/mq: don't complete requests via IPI -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6d57b360ab19c13d32ed9b351e65e666361ca76 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ddc500f1fab91f0709b7c883b688b12a63366890 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/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch index c418db355..da3a64c76 100644 --- a/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +++ b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 6 Apr 2010 16:51:31 +0200 Subject: [PATCH 181/353] md: raid5: Make raid5_percpu handling RT aware -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=674c914ac9e49b2d3204b4a351b1dc0292f9f01b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6903e12a02cec96bb490da0d8a8dda162a457e14 __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic @@ -19,7 +19,7 @@ Tested-by: Udo van den Heuvel <udovdh@xs4all.nl> 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 7fe0619c487a..fdbe17d1b1c4 100644 +index 7eeae0301ccc..a93f05b9e3a2 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2070,8 +2070,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request) diff --git a/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch index 99a2b12da..2c469cd98 100644 --- a/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch +++ b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 7 Mar 2012 20:51:03 +0100 Subject: [PATCH 182/353] rt: Introduce cpu_chill() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e09dd071a88d7b2e35a0f77c5eb3d44dc9fd245 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b039ab1c70ccae3ab8d445c85aed514ac4bf63ca 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/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch index b667d1a26..accdab949 100644 --- a/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch +++ b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 19 Feb 2019 16:59:15 +0100 Subject: [PATCH 183/353] hrtimer: Don't lose state in cpu_chill() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d09d9861bc9da42051044c8cc3ed23be1e94e33 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=721ff03f231a027cb0e48525bec4e1ecc07f0c86 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/0184-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 index be03a750a..4b0927b0a 100644 --- a/debian/patches-rt/0184-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Feb 2019 12:31:10 +0100 Subject: [PATCH 184/353] hrtimer: cpu_chill(): save task state in ->saved_state() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56899c2a49e485169770d92fcffff9dd4feb028d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b619882e45a08ee21433ecd2b74d06981e22414 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/0185-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 index a676f9aa4..4ede7bb86 100644 --- a/debian/patches-rt/0185-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 13 Mar 2018 13:49:16 +0100 Subject: [PATCH 185/353] block: blk-mq: move blk_queue_usage_counter_release() into process context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2599b47cfb4f76cc2cbd8e220facd30037154a6a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=598cc45494b90c42a2f400150aaa3164ae26236a | 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/0186-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch index 5e392715a..2d9c8eeab 100644 --- a/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch +++ b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 20 Dec 2012 18:28:26 +0100 Subject: [PATCH 186/353] block: Use cpu_chill() for retry loops -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51606351531762f808faee325d6318f493efbd6f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=583684fb86328d92d6b173d67714e9560a07a940 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/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch index 2b0e49c15..d0965cbcd 100644 --- a/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +++ b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 7 Mar 2012 21:00:34 +0100 Subject: [PATCH 187/353] fs: dcache: Use cpu_chill() in trylock loops -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b314979856ee6c2c76f4960791e7f42fe12a3df +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54fa302171c7878902ca36c506e0939142c4905d 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/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch index 77cf7defe..0afbc3e71 100644 --- a/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch +++ b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 7 Mar 2012 21:10:04 +0100 Subject: [PATCH 188/353] net: Use cpu_chill() instead of cpu_relax() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=563d83d344896c0a0f2d86eb7a7a0c2865f7e670 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e96b68e550cd4012674a63859f68d242b7dbf31c Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c -index 6fa0a9a453a8..6831b53ab441 100644 +index aa12bee4133a..dd652eae83e3 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -63,6 +63,7 @@ diff --git a/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch index 0c572079b..e8ef46f68 100644 --- a/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Sep 2016 14:35:49 +0200 Subject: [PATCH 189/353] fs/dcache: use swait_queue instead of waitqueue -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3dff00791ef8ca6143f365480b4423bc36a6d9e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61d4045b9c6beeffcdd2c05d35c3214d65c595ed __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. diff --git a/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch index 0bb53e859..53e612863 100644 --- a/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch +++ b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 24 Jul 2013 15:26:54 +0200 Subject: [PATCH 190/353] workqueue: Use normal rcu -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8b908255dce92868aa84bb5b5f1c5915674c168 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37451e023726bbdd8de45fa86e8c5038be90e3ae 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 diff --git a/debian/patches-rt/0191-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 index 8bba099be..afc96c299 100644 --- a/debian/patches-rt/0191-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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 21:42:26 +0200 Subject: [PATCH 191/353] workqueue: Use local irq lock instead of irq disable regions -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87f5ce062d571ed7dd1879f2a9cda3a3f6470d2a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f12d688441df0c1a59c7e65616a8a4eabe4d52c3 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. diff --git a/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch index b2d6ea9c7..4c6b7160c 100644 --- a/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch +++ b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 1 Jul 2013 11:02:42 +0200 Subject: [PATCH 192/353] workqueue: Prevent workqueue versus ata-piix livelock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c06f6ebc6f06be7ddf6c4e6101fe742aaaeb5a4 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9576dddf691d00fbd07ff2e92b503f25c4c2d58 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 diff --git a/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch index 27d20785c..d68e7c167 100644 --- a/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch +++ b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 22 Jun 2011 19:47:03 +0200 Subject: [PATCH 193/353] sched: Distangle worker accounting from rqlock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d8baa8f0d9dc0a90bb805367f43ef3e8e5452e0f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f51bb16041ffffd9adf703fde1245e9afda898b9 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 diff --git a/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch index 9603d8e8d..ec8411674 100644 --- a/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch +++ b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch @@ -1,28 +1,25 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 21:41:35 +0200 Subject: [PATCH 194/353] debugobjects: Make RT aware -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea8b8fccf490497fd4c70ae38e1d97c32676ac45 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b56a11fdddede9388a998f84bc84f86f0ed9197e Avoid filling the pool / allocating memory with irqs off(). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- - lib/debugobjects.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) + lib/debugobjects.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/debugobjects.c b/lib/debugobjects.c -index 14afeeb7d6ef..e28481c402ae 100644 +index 5f23d896df55..e486693aea49 100644 --- a/lib/debugobjects.c +++ b/lib/debugobjects.c -@@ -376,7 +376,10 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack) - struct debug_obj *obj; - unsigned long flags; - -- fill_pool(); -+#ifdef CONFIG_PREEMPT_RT_FULL -+ if (preempt_count() == 0 && !irqs_disabled()) -+#endif -+ fill_pool(); - - db = get_bucket((unsigned long) addr); +@@ -466,7 +466,7 @@ static void debug_objects_fill_pool(void) + * On RT enabled kernels the pool refill must happen in preemptible + * context: + */ +- if (!IS_ENABLED(CONFIG_PREEMPT_RT) || preemptible()) ++ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) || preemptible()) + fill_pool(); + } diff --git a/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch index 2a0407dae..84e014caa 100644 --- a/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch +++ b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 22 Feb 2012 12:03:30 +0100 Subject: [PATCH 195/353] seqlock: Prevent rt starvation -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ff58d4a3451b2c76ec0517b9a38c31a5efddd7b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f274d1f15458bdf8a8f29a8e2e976e27ce2c1d93 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/0196-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 index 4e84f63ba..483c54fad 100644 --- a/debian/patches-rt/0196-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 @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Wed, 18 Feb 2015 16:05:28 +0100 Subject: [PATCH 196/353] sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=795aa71c9b58368c84384f6ebaa70e3bfb154f70 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=250fbc3d90c6ccd11c5c1aec106882f031bccfa8 |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/0197-net-Use-skbufhead-with-raw-lock.patch b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch index 5754fc715..9ea8b1ddc 100644 --- a/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch +++ b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 12 Jul 2011 15:38:34 +0200 Subject: [PATCH 197/353] net: Use skbufhead with raw lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa140c5c4b497581079c3170f383502ced597296 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=128030e2370b7b2d2b5607a2e95202392ae79eaa 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 @@ -52,7 +52,7 @@ index f97734f34746..3ede4f0eac10 100644 struct lock_class_key *class) { diff --git a/net/core/dev.c b/net/core/dev.c -index d03162a1828b..1f73badebddc 100644 +index 70a3cebdac89..7bce4581d6f0 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -219,14 +219,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) @@ -72,7 +72,7 @@ index d03162a1828b..1f73badebddc 100644 #endif } -@@ -5860,7 +5860,9 @@ static int process_backlog(struct napi_struct *napi, int quota) +@@ -5862,7 +5862,9 @@ static int process_backlog(struct napi_struct *napi, int quota) while (again) { struct sk_buff *skb; @@ -82,7 +82,7 @@ index d03162a1828b..1f73badebddc 100644 rcu_read_lock(); __netif_receive_skb(skb); rcu_read_unlock(); -@@ -5868,9 +5870,9 @@ static int process_backlog(struct napi_struct *napi, int quota) +@@ -5870,9 +5872,9 @@ static int process_backlog(struct napi_struct *napi, int quota) if (++work >= quota) return work; @@ -93,7 +93,7 @@ index d03162a1828b..1f73badebddc 100644 rps_lock(sd); if (skb_queue_empty(&sd->input_pkt_queue)) { /* -@@ -6343,13 +6345,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) +@@ -6345,13 +6347,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) unsigned long time_limit = jiffies + usecs_to_jiffies(READ_ONCE(netdev_budget_usecs)); int budget = READ_ONCE(netdev_budget); @@ -115,7 +115,7 @@ index d03162a1828b..1f73badebddc 100644 for (;;) { struct napi_struct *n; -@@ -9547,10 +9557,13 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9549,10 +9559,13 @@ static int dev_cpu_dead(unsigned int oldcpu) netif_rx_ni(skb); input_queue_head_incr(oldsd); } @@ -130,7 +130,7 @@ index d03162a1828b..1f73badebddc 100644 return 0; } -@@ -9861,8 +9874,9 @@ static int __init net_dev_init(void) +@@ -9863,8 +9876,9 @@ static int __init net_dev_init(void) INIT_WORK(flush, flush_backlog); diff --git a/debian/patches-rt/0198-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 index 969707078..caf96c5f5 100644 --- a/debian/patches-rt/0198-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,7 +1,7 @@ From: Clark Williams <williams@redhat.com> Date: Fri, 17 Dec 2021 14:31:31 -0600 Subject: [PATCH 198/353] net: move xmit_recursion to per-task variable on -RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79260e1688dd4ea3eafa5963d4dbaf63c7db5245 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9fcf3310d12df456718d378ff2826b302f35c28b A softirq on -RT can be preempted. That means one task is in __dev_queue_xmit(), gets preempted and another task may enter @@ -156,10 +156,10 @@ index 3bc6b3206e14..7aa299de5ebf 100644 int pagefault_disabled; #ifdef CONFIG_MMU diff --git a/net/core/dev.c b/net/core/dev.c -index 1f73badebddc..8bd9752e16ed 100644 +index 7bce4581d6f0..32e8b237496c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3835,10 +3835,14 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) +@@ -3837,10 +3837,14 @@ 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 */ @@ -174,7 +174,7 @@ index 1f73badebddc..8bd9752e16ed 100644 if (dev_xmit_recursion()) goto recursion_alert; -@@ -8596,7 +8600,7 @@ static void netdev_init_one_queue(struct net_device *dev, +@@ -8598,7 +8602,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/0199-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 index f7b42e415..4138baf8e 100644 --- a/debian/patches-rt/0199-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 20 Jan 2016 15:39:05 +0100 Subject: [PATCH 199/353] net: provide a way to delegate processing a softirq to ksoftirqd -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0240dd145b9e5a55e2756c8763e44f6f48dec93e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=641249df860e32f2d7f64f5960c7eaa359ba7228 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 @@ -71,10 +71,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 8bd9752e16ed..5ca7410f0885 100644 +index 32e8b237496c..7a316f4ff13c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6393,7 +6393,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) +@@ -6395,7 +6395,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/0200-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 index 7d978f110..31ef66632 100644 --- a/debian/patches-rt/0200-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 30 Mar 2016 13:36:29 +0200 Subject: [PATCH 200/353] net: dev: always take qdisc's busylock in __dev_xmit_skb() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=757a3eda61a32ec7b76e292e9ebdc78ec9efac93 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07a4adaebe9b2f45b7f9e2a42138e8ca69d2aaeb 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 @@ -21,10 +21,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c -index 5ca7410f0885..f6443510a476 100644 +index 7a316f4ff13c..face03c32651 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3474,7 +3474,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, +@@ -3476,7 +3476,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/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch index 92c64889f..1862aa862 100644 --- a/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Sep 2016 17:36:35 +0200 Subject: [PATCH 201/353] net/Qdisc: use a seqlock instead seqcount -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc74abdd6ae0462bab18550d4f7484f9e820d67f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fec8c24ca8eae0c68bbd7edda06be39082985029 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/0202-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 index 0f9f8ed7c..ccec0ae2d 100644 --- a/debian/patches-rt/0202-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 @@ -5,7 +5,7 @@ Subject: [PATCH 202/353] net: add back the missing serialization in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=df106046388d02a2f700fb8f7977307110ac585f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=946961cab5d726a4f7915d9c76be44e043b4369b 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/0203-net-add-a-lock-around-icmp_sk.patch b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch index c03b1c189..d55749788 100644 --- a/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch +++ b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 31 Aug 2016 17:54:09 +0200 Subject: [PATCH 203/353] net: add a lock around icmp_sk() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed4da37a0640885893991fdf679ea57a89643875 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c532906af442e35a3dd02bf538c432102b50cc63 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 @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 8 insertions(+) diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c -index aa179e6461e1..47ebb0e0445c 100644 +index af0ddaa55e43..cadaf93f5614 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -77,6 +77,7 @@ diff --git a/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch index dc8879fd7..43e8e3793 100644 --- a/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch +++ b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch @@ -2,7 +2,7 @@ From: Steven Rostedt <rostedt@goodmis.org> Date: Tue, 6 Dec 2016 17:50:30 -0500 Subject: [PATCH 204/353] net: Have __napi_schedule_irqoff() disable interrupts on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=885ccc3fa2dba0d75c963dff76a6dc343f36c3db +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be0d623b9eb2bb8865429d5196103ee6dea04611 A customer hit a crash where the napi sd->poll_list became corrupted. The customer had the bnx2x driver, which does a @@ -52,10 +52,10 @@ index 63a0574e2ac2..086cd650f555 100644 static inline bool napi_disable_pending(struct napi_struct *n) { diff --git a/net/core/dev.c b/net/core/dev.c -index f6443510a476..1103427c6942 100644 +index face03c32651..209d15808646 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5955,6 +5955,7 @@ bool napi_schedule_prep(struct napi_struct *n) +@@ -5957,6 +5957,7 @@ bool napi_schedule_prep(struct napi_struct *n) } EXPORT_SYMBOL(napi_schedule_prep); @@ -63,7 +63,7 @@ index f6443510a476..1103427c6942 100644 /** * __napi_schedule_irqoff - schedule for receive * @n: entry to schedule -@@ -5973,6 +5974,7 @@ void __napi_schedule_irqoff(struct napi_struct *n) +@@ -5975,6 +5976,7 @@ void __napi_schedule_irqoff(struct napi_struct *n) __napi_schedule(n); } EXPORT_SYMBOL(__napi_schedule_irqoff); diff --git a/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch index 41bc0ed0d..2a1aafa6b 100644 --- a/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch +++ b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 23 Jun 2015 15:32:51 +0200 Subject: [PATCH 205/353] irqwork: push most work into softirq context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6d94f13a63813991f513e092042795ed5a30859 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c11f2c43e5bc12c20b6e8179f771e3b40a60d4d3 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. @@ -234,10 +234,10 @@ index 02e85cd233d4..208af1181bf5 100644 init_dl_bw(&rd->dl_bw); diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index 2b0ddd50e879..4d31ec98e968 100644 +index 562d015b2401..ce873626893d 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c -@@ -236,6 +236,7 @@ static void nohz_full_kick_func(struct irq_work *work) +@@ -241,6 +241,7 @@ static void nohz_full_kick_func(struct irq_work *work) static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = { .func = nohz_full_kick_func, diff --git a/debian/patches-rt/0206-printk-Make-rt-aware.patch b/debian/patches-rt/0206-printk-Make-rt-aware.patch index 1a11c589c..6ca2b29cb 100644 --- a/debian/patches-rt/0206-printk-Make-rt-aware.patch +++ b/debian/patches-rt/0206-printk-Make-rt-aware.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 19 Sep 2012 14:50:37 +0200 Subject: [PATCH 206/353] printk: Make rt aware -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50cb916cbbed0c550cb81051a35b3855f866ea3d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ca530b3ca6f68800d3328ff5683b171fdc02c0d 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/0207-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 index c349ca535..2eafd4c58 100644 --- a/debian/patches-rt/0207-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,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 19 May 2016 17:45:27 +0200 Subject: [PATCH 207/353] kernel/printk: Don't try to print from IRQ/NMI region -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cff1c5507d1dbaf6956e6929ab451f9d7c87bb03 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34eed687e22358b9b77ca0faa44c2d356c421b59 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/0208-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch index 63c554288..e117a9d89 100644 --- a/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch +++ b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 21 Mar 2013 19:01:05 +0100 Subject: [PATCH 208/353] printk: Drop the logbuf_lock more often -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e56339b4d7578222453493cf763331512b8091ef +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5d3731456da72b3ea25aed4f5e169050d4be6ff 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/0209-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch index e43e9e4fd..616080edd 100644 --- a/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -5,7 +5,7 @@ Subject: [PATCH 209/353] ARM: enable irq in translation/section permission MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=421b3c1c739bea7427a1e9adb84cdf6f5372a6eb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=934c8796b262e3cdce988bb5780874a78e8d023e Probably happens on all ARM, with CONFIG_PREEMPT_RT_FULL diff --git a/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch index 71c770b08..fa0d2dee0 100644 --- a/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch +++ b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch @@ -1,7 +1,7 @@ From: Josh Cartwright <joshc@ni.com> Date: Thu, 11 Feb 2016 11:54:00 -0600 Subject: [PATCH 210/353] genirq: update irq_set_irqchip_state documentation -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b83c8932432d6ee9a270edeb3fbded8b3b5fd46 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02c452a7c85dde40bbf980013c32089cd9009a7b On -rt kernels, the use of migrate_disable()/migrate_enable() is sufficient to guarantee a task isn't moved to another CPU. Update the diff --git a/debian/patches-rt/0211-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 index 5b801875c..5dd50c842 100644 --- a/debian/patches-rt/0211-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 @@ -2,7 +2,7 @@ From: Josh Cartwright <joshc@ni.com> Date: Thu, 11 Feb 2016 11:54:01 -0600 Subject: [PATCH 211/353] KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f3e3ebbecf539bfd72019700554dad2e36dadd6 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcfba66a472f5d394a35d873563feccbf1ebde61 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/0212-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 index b0137f8ad..cb7c0e1ff 100644 --- a/debian/patches-rt/0212-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 25 Jul 2018 14:02:38 +0200 Subject: [PATCH 212/353] arm64: fpsimd: use preemp_disable in addition to local_bh_disable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=29f9c4aa04a0eed35fe543725942ed2673660efe +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=beea622c8b43d003ebb7013eaaeb2c68e8a514e3 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/0213-kgdb-serial-Short-term-workaround.patch b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch index 5fd1dcd1d..034c1b771 100644 --- a/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch +++ b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch @@ -1,7 +1,7 @@ From: Jason Wessel <jason.wessel@windriver.com> Date: Thu, 28 Jul 2011 12:42:23 -0500 Subject: [PATCH 213/353] kgdb/serial: Short term workaround -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3c61598dd60cd4cff07bfd1e2095c0583e301f1a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1f05b193f51153e127f1d580cf9e2cac17c6a9e7 On 07/27/2011 04:37 PM, Thomas Gleixner wrote: > - KGDB (not yet disabled) is reportedly unusable on -rt right now due @@ -24,10 +24,10 @@ 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 b3f88d2b827c..2fd41e9bb9df 100644 +index af7df5ca17a5..214818b7242d 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -31,6 +31,7 @@ +@@ -32,6 +32,7 @@ #include <linux/nmi.h> #include <linux/mutex.h> #include <linux/slab.h> @@ -35,7 +35,7 @@ index b3f88d2b827c..2fd41e9bb9df 100644 #include <linux/uaccess.h> #include <linux/pm_runtime.h> #include <linux/ktime.h> -@@ -3308,6 +3309,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3318,6 +3319,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/0214-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch index 60d0f00bd..9cb414805 100644 --- a/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,7 +1,7 @@ From: Clark Williams <williams@redhat.com> Date: Sat, 30 Jul 2011 21:55:53 -0500 Subject: [PATCH 214/353] sysfs: Add /sys/kernel/realtime entry -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d819093684a97a1413bc1b9329be8a06f7cc2925 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=63cdf57144587bc178a94170e17c65477542af67 Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. diff --git a/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch index 4ecf30c0a..1a444d7b5 100644 --- a/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch +++ b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Thu, 28 Jul 2011 10:43:51 +0200 Subject: [PATCH 215/353] mm, rt: kmap_atomic scheduling -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2316fbac290c2216cce66229f4e6ff540d11dadd +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3be727a86e41a0f4aba7f5030c288587ce649e6 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/0216-x86-highmem-Add-a-already-used-pte-check.patch b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch index c991f50d5..e60ea7966 100644 --- a/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch +++ b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Mar 2013 17:09:55 +0100 Subject: [PATCH 216/353] x86/highmem: Add a "already used pte" check -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d135b937084351cf2c7a207269c717c6430da47 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5900bcb024e34c92c262f0614b159d5d17abcc49 This is a copy from kmap_atomic_prot(). diff --git a/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch index 708bc5b36..ca88b9752 100644 --- a/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch +++ b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Mar 2013 21:37:27 +0100 Subject: [PATCH 217/353] arm/highmem: Flush tlb on unmap -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b5b6938cb027a76ed26ca35963934b4579e578c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa0deea1ec74cc60877cfc0ba29d1912148efec1 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/0218-arm-Enable-highmem-for-rt.patch b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch index 69d5ec7d9..67763f9da 100644 --- a/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch +++ b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 13 Feb 2013 11:03:11 +0100 Subject: [PATCH 218/353] arm: Enable highmem for rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=49a7e38c9dbc8cc81ce00826c075670003016252 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=97b385d587e0dd9f8d6413c6d2d0165685d55640 fixup highmem for ARM. diff --git a/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch index abdd38127..dcc450382 100644 --- a/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch +++ b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 12 Nov 2011 14:00:48 +0100 Subject: [PATCH 219/353] scsi/fcoe: Make RT aware. -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3c95c9e1cb07fd1e1bbb556f2664c5ab0de0be04 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7bb0107ed0c1ebc7b826f9a256cf992e73bda72 Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. diff --git a/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch index 4eb2eb074..d87440f95 100644 --- a/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch +++ b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 14 Nov 2011 18:19:27 +0100 Subject: [PATCH 220/353] x86: crypto: Reduce preempt disabled regions -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f6783d0aef48fe3aaaef8dae8e95d37de7afc462 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b7f408d9b616faf238404b1480331aac3022e672 Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. diff --git a/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch index 930ccd4fc..99fa53916 100644 --- a/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch +++ b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2014 17:24:04 +0100 Subject: [PATCH 221/353] crypto: Reduce preempt disabled regions, more algos -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e3c9f63c522b848c8d3e488bd10e1c611e593bcc +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=187af5ffa27f473e5ed6ac444fa6aed6487537ce 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/0222-crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch index e30e54090..368f34074 100644 --- a/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch +++ b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch @@ -4,7 +4,7 @@ Subject: [PATCH 222/353] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f2d061a45ca4ff6938978fdd5f8a74c240febc7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a64bee262410671ecf46e1d41ed29e91fe1ecaf 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/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch index 1d9d20235..4bd49b8ae 100644 --- a/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch +++ b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <efault@gmx.de> Date: Wed, 11 Jul 2018 17:14:47 +0200 Subject: [PATCH 223/353] crypto: scompress - serialize RT percpu scratch buffer access with a local lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a809ea851d904b0d94aec3699c478455d6c6126b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdf7ff5e219e39c4dc6a7183c2803106be5dcb02 | 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/0224-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 index fd6c23358..ec84a2721 100644 --- a/debian/patches-rt/0224-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 @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 18:52:00 +0200 Subject: [PATCH 224/353] crypto: cryptd - add a lock instead preempt_disable/local_bh_disable -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bdfc1bec63596589c83b2f97168844fffb50d381 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c396da73e8a6a42ae9a68df15cbf94588c9798c cryptd has a per-CPU lock which protected with local_bh_disable() and preempt_disable(). diff --git a/debian/patches-rt/0225-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 index 657a0a208..f0a2c5993 100644 --- a/debian/patches-rt/0225-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 @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 225/353] panic: skip get_random_bytes for RT_FULL in init_oops_id -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5fdcde0cec433e6436fb29f131ff72cbfd616adf +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c487331a7bef1368299aed221809e4a8a0f051f 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/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch index 6ffe739ae..5c98a7326 100644 --- a/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch +++ b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 16 Dec 2010 14:25:18 +0100 Subject: [PATCH 226/353] x86: stackprotector: Avoid random pool on rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e28ce0d0937ef08e0a5419ab0aa26e31c40762ff +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e5f4efc051fbe311c2d390c24fbf766637629c8 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/0227-cpu-hotplug-Implement-CPU-pinning.patch b/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch index c3ab83588..9f9d237db 100644 --- a/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch +++ b/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 19 Jul 2017 17:31:20 +0200 Subject: [PATCH 227/353] cpu/hotplug: Implement CPU pinning -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83968bfdffb5b62b9a6177a283b69e2f745e3f04 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44cbff5086ce5b39e85daacd494f6d5324fad422 Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- diff --git a/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch b/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch index 9adcaaf47..cf68e45b5 100644 --- a/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch +++ b/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <efault@gmx.de> Date: Sun, 19 Aug 2018 08:28:35 +0200 Subject: [PATCH 228/353] sched: Allow pinned user tasks to be awakened to the CPU they pinned -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ae5c6c6bdae5c6520d5e5bd3e75a363b5b296e0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56987c491a72d184677be3667a26f9227563bba6 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/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch index 77b7a808d..93a807011 100644 --- a/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch +++ b/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 4 Aug 2017 18:31:00 +0200 Subject: [PATCH 229/353] hotplug: duct-tape RT-rwlock usage for non-RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4755370acaa6c7a8c26a5d02e44a26e16d976f05 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ae887b25fab969ed4ef6e13d9fe4180f7bcf1ca 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/0230-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch index bc2888956..b0b267424 100644 --- a/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch +++ b/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch @@ -1,7 +1,7 @@ From: Priyanka Jain <Priyanka.Jain@freescale.com> Date: Thu, 17 May 2012 09:35:11 +0530 Subject: [PATCH 230/353] net: Remove preemption disabling in netif_rx() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8fd2eb92e7f465c0a53826f97bc140900b278ec0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e78188710318015f790503e2e67d09b0ee2edfcf 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by @@ -35,10 +35,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 1103427c6942..a4a45df863e1 100644 +index 209d15808646..1fb0a5340e94 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4496,7 +4496,7 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4498,7 +4498,7 @@ static int netif_rx_internal(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; @@ -47,7 +47,7 @@ index 1103427c6942..a4a45df863e1 100644 rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); -@@ -4506,14 +4506,14 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4508,14 +4508,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/0231-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch index 36161be66..7b7ae5f83 100644 --- a/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch +++ b/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 26 Sep 2012 16:21:08 +0200 Subject: [PATCH 231/353] net: Another local_irq_disable/kmalloc headache -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35ef661e66875532018972fba39ad18bf2006e5b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3867697d62230796c70714c4e8d81e71625d80ae Replace it by a local lock. Though that's pretty inefficient :( @@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c -index 7f501dff4501..083ed8a6aad5 100644 +index b7314a6cf8c2..c7d1f0c81c97 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -63,6 +63,7 @@ diff --git a/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch index 12fc98e78..91d964093 100644 --- a/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch +++ b/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 15 Jan 2016 16:33:34 +0100 Subject: [PATCH 232/353] net/core: protect users of napi_alloc_cache against reentrance -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ad635b4a64132b99a1724f778fb29edbed85ced0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc5ea742864b9a2748639c80614d47e6e6484b34 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 @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c -index 083ed8a6aad5..6e0438bc8011 100644 +index c7d1f0c81c97..d3706fa458a5 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -332,6 +332,7 @@ struct napi_alloc_cache { diff --git a/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch index 7abc552d5..90b2c493f 100644 --- a/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch +++ b/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 28 Oct 2012 11:18:08 +0100 Subject: [PATCH 233/353] net: netfilter: Serialize xt_write_recseq sections on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94a1f22b6a411c00eb1aefc4e467635fcced220c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e76817dc5bdd2d6f035635f97eaf654f7a2a7a8c 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/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch index 48208e535..57ad16162 100644 --- a/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +++ b/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch @@ -2,7 +2,7 @@ From: Yong Zhang <yong.zhang@windriver.com> Date: Mon, 16 Apr 2012 15:01:56 +0800 Subject: [PATCH 234/353] lockdep: selftest: Only do hardirq context test for raw spinlock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0321a0025fdd1294bd02c11eb7d48addc19a068 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2e4c16601ca6e9890cac6bf92cc92dbe5fa6175 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/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch index fb89d9442..c4e80691c 100644 --- a/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +++ b/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -2,7 +2,7 @@ From: Josh Cartwright <josh.cartwright@ni.com> Date: Wed, 28 Jan 2015 13:08:45 -0600 Subject: [PATCH 235/353] lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d083b0a15c0ccec7e1ac85a8e40a476f1d0773da +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2452260ecc7926026432821df728b508592d226b "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/0236-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch index 5cd8948a5..200adb4ca 100644 --- a/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 26 Oct 2012 18:50:54 +0100 Subject: [PATCH 236/353] sched: Add support for lazy preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c591b9bea866f1ee6976e32a554ec9b7991fe482 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=091e3b619256c38a1ca8760bea7e44d40b465fef It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points diff --git a/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch b/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch index 71410e285..571294311 100644 --- a/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch +++ b/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch @@ -1,7 +1,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sun, 16 Oct 2016 05:08:30 +0200 Subject: [PATCH 237/353] ftrace: Fix trace header alignment -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c062bc42f468a30bfe3c01f63ee0dd4f9dc8459 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac1c2ec880d53a9353f6c53c68ce7879566a7766 Line up helper arrows to the right column. diff --git a/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch index e0bb4ffc4..53242df97 100644 --- a/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch +++ b/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 1 Nov 2012 11:03:47 +0100 Subject: [PATCH 238/353] x86: Support for lazy preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=794d205d0465bfd44c2712b59b1ac12088bc04ba +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=abc7166676f6a451a3f3db148ae0fbc4ffeefa38 Implement the x86 pieces for lazy preempt. diff --git a/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch index 66f226d7a..393d663f7 100644 --- a/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch +++ b/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 18 Feb 2019 16:57:09 +0100 Subject: [PATCH 239/353] x86: lazy-preempt: properly check against preempt-mask -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=265f0d10b439e19e1d0e42602626bfbc315b798c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4995c1328ec0d736291b9781a7d4588dd71cd1c2 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/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch b/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch index c3cd394a4..8c7a64443 100644 --- a/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch +++ b/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Feb 2019 14:53:49 +0100 Subject: [PATCH 240/353] x86: lazy-preempt: use proper return label on 32bit-x86 -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8d0495e581d23995cde947a1fcd8cd5b76fbe29 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c5ed7041c4abdb434de892ee97ec129a0401779 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/0241-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch index f5ce7a560..63098df1a 100644 --- a/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 31 Oct 2012 12:04:11 +0100 Subject: [PATCH 241/353] arm: Add support for lazy preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=72bc2cee3d038c81686ce3855f48c4f76946bcf3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8a6ce72961961bf578e8b1c1f6aafff622a9ee5 Implement the arm pieces for lazy preempt. diff --git a/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch index 4c334d946..b6e0a456b 100644 --- a/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 1 Nov 2012 10:14:11 +0100 Subject: [PATCH 242/353] powerpc: Add support for lazy preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca062ab8bbd39bd842cfc799f8bada4b9c01a338 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11f2dca2c4c3c03a672652346d9b11e8543018e4 Implement the powerpc pieces for lazy preempt. diff --git a/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch index dd7f352b3..2c185cf43 100644 --- a/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch +++ b/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch @@ -1,7 +1,7 @@ From: Anders Roxell <anders.roxell@linaro.org> Date: Thu, 14 May 2015 17:52:17 +0200 Subject: [PATCH 243/353] arch/arm64: Add lazy preempt support -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=96e92cd2a65dccecd3f19069b0c5ad37a1b36b91 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=309988716af0204cb8c7af13c25074fbef91dd00 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/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch index 5eddf42bf..cc7cca86e 100644 --- a/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +++ b/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sun, 16 Oct 2016 05:11:54 +0200 Subject: [PATCH 244/353] connector/cn_proc: Protect send_msg() with a local lock on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=131915d726712eb07b31d66da421e43cba8730b7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cc39551b5bc2d4a4bd55315967a7cfba0dbf1de |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/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch index 001467c55..bbbf51237 100644 --- a/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +++ b/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Thu, 31 Mar 2016 04:08:28 +0200 Subject: [PATCH 245/353] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05c69380020a248624416e8d4464ec44abcdd30c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=16a2a63efa558226cdeb70a9789d896d6d5aef14 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/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch index 127136dcd..e672a47b7 100644 --- a/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +++ b/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Thu, 20 Oct 2016 11:15:22 +0200 Subject: [PATCH 246/353] drivers/zram: Don't disable preemption in zcomp_stream_get/put() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d05c7b990c9aea051f2ba6618320d6c2b0b8cc9 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eed0f6e6ca04788c5325b248305c08647e399e3d 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/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch index 3ec5ced65..1709307da 100644 --- a/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch +++ b/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <efault@gmx.de> Date: Wed, 23 Aug 2017 11:57:29 +0200 Subject: [PATCH 247/353] drivers/zram: fix zcomp_stream_get() smp_processor_id() use in preemptible code -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=026ed9fab709fb05e6bfb93d38f4d687f69a0bb1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f40751d885752803c938fea8dc199c9280337925 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/0248-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch index 9a7e6db48..1ba216990 100644 --- a/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch +++ b/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,7 +1,7 @@ From: Haris Okanovic <haris.okanovic@ni.com> Date: Tue, 15 Aug 2017 15:13:08 -0500 Subject: [PATCH 248/353] tpm_tis: fix stall after iowrite*()s -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=13c13176d3cb009c73dcba8f46807248a07dbb9f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7ca6b216bbcdb3daf45864e995aecf3d94de9a2 ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c -index 939dc25a7833..147012f342bd 100644 +index 3abb4af80be6..11fce5e7b68a 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c @@ -54,6 +54,31 @@ static inline struct tpm_tis_tcg_phy *to_tpm_tis_tcg_phy(struct tpm_tis_data *da @@ -60,7 +60,7 @@ index 939dc25a7833..147012f342bd 100644 static int interrupts = -1; module_param(interrupts, int, 0444); MODULE_PARM_DESC(interrupts, "Enable interrupts"); -@@ -174,7 +199,7 @@ static int tpm_tcg_write_bytes(struct tpm_tis_data *data, u32 addr, u16 len, +@@ -190,7 +215,7 @@ static int tpm_tcg_write_bytes(struct tpm_tis_data *data, u32 addr, u16 len, struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); while (len--) @@ -69,7 +69,7 @@ index 939dc25a7833..147012f342bd 100644 return 0; } -@@ -201,7 +226,7 @@ static int tpm_tcg_write32(struct tpm_tis_data *data, u32 addr, u32 value) +@@ -217,7 +242,7 @@ static int tpm_tcg_write32(struct tpm_tis_data *data, u32 addr, u32 value) { struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); diff --git a/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch index 52ff2e3b6..458671102 100644 --- a/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch +++ b/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch @@ -1,7 +1,7 @@ From: Julia Cartwright <julia@ni.com> Date: Fri, 28 Sep 2018 21:03:51 +0000 Subject: [PATCH 249/353] watchdog: prevent deferral of watchdogd wakeup on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55831eb14718452abae6b582fb1fac10c4b10334 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa8246032a3d912469805835a62695523d0f5069 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/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch index 30a3f798c..88e644461 100644 --- a/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +++ b/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sat, 27 Feb 2016 08:09:11 +0100 Subject: [PATCH 250/353] drm,radeon,i915: Use preempt_disable/enable_rt() where recommended -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d4242c36dc748d9e95d8e58b6d9b4a49d3ae526 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a78df9205d320b7f34f95c2576ba325f0fc7af9c DRM folks identified the spots, so use them. diff --git a/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch index c8d09bcad..c273dd874 100644 --- a/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch +++ b/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sat, 27 Feb 2016 09:01:42 +0100 Subject: [PATCH 251/353] drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ac37f21b29822e70441cb3bd4a5b8453da2f8a1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac57ad46b6fc7b30de016fa07ff78274aaf46fc1 [ 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/0252-drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch index 4784db5eb..b1f3aa473 100644 --- a/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch +++ b/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 6 Dec 2018 09:52:20 +0100 Subject: [PATCH 252/353] drm/i915: disable tracing on -RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ff11b6b7f1cac9927b52ba7f1cb572d71626b8c +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=702718725e855afb60c278b30eda18eeb5a0351e Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 diff --git a/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index bff85f1ec..9cab945e6 100644 --- a/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 19 Dec 2018 10:47:02 +0100 Subject: [PATCH 253/353] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=410db45c0390e863287301821b5cd7e9105b9fa0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=639fc3d63f892e6406abea876f17cd94f2ebcdc7 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/0254-cgroups-use-simple-wait-in-css_release.patch b/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch index e4557d71a..9cef137b8 100644 --- a/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch +++ b/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 13 Feb 2015 15:52:24 +0100 Subject: [PATCH 254/353] cgroups: use simple wait in css_release() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23f4f05c0423e2bc9c2974a05275a3796862ed51 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e78c393381fac00d8163d30d56e9d4161880f64e To avoid: |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 diff --git a/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch index 4125ab42a..a96f6d2a0 100644 --- a/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch @@ -1,7 +1,7 @@ From: Mike Galbraith <efault@gmx.de> Date: Sun, 8 Jan 2017 09:32:25 +0100 Subject: [PATCH 255/353] cpuset: Convert callback_lock to raw_spinlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eebfe2361fec29f66b8e8070272bc88368fa28c3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cfb4edac99fdac0f650f2f27e04ba655fcae5475 The two commits below add up to a cpuset might_sleep() splat for RT: @@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c -index b5a1dca1d4d1..17875d252bf0 100644 +index 54591aed4049..41019614ca7c 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -288,7 +288,7 @@ static struct cpuset top_cpuset = { @@ -122,7 +122,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 if (!cpumask_empty(trialcs->cpus_allowed) && balance_flag_changed) rebuild_sched_domains_locked(); -@@ -1762,7 +1762,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v) +@@ -1764,7 +1764,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v) cpuset_filetype_t type = seq_cft(sf)->private; int ret = 0; @@ -131,7 +131,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 switch (type) { case FILE_CPULIST: -@@ -1781,7 +1781,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v) +@@ -1783,7 +1783,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v) ret = -EINVAL; } @@ -140,7 +140,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 return ret; } -@@ -1997,12 +1997,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css) +@@ -1999,12 +1999,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css) cpuset_inc(); @@ -155,7 +155,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 if (!test_bit(CGRP_CPUSET_CLONE_CHILDREN, &css->cgroup->flags)) goto out_unlock; -@@ -2029,12 +2029,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css) +@@ -2031,12 +2031,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css) } rcu_read_unlock(); @@ -170,7 +170,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 out_unlock: mutex_unlock(&cpuset_mutex); put_online_cpus(); -@@ -2076,7 +2076,7 @@ static void cpuset_css_free(struct cgroup_subsys_state *css) +@@ -2078,7 +2078,7 @@ static void cpuset_css_free(struct cgroup_subsys_state *css) static void cpuset_bind(struct cgroup_subsys_state *root_css) { mutex_lock(&cpuset_mutex); @@ -179,7 +179,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 if (is_in_v2_mode()) { cpumask_copy(top_cpuset.cpus_allowed, cpu_possible_mask); -@@ -2087,7 +2087,7 @@ static void cpuset_bind(struct cgroup_subsys_state *root_css) +@@ -2089,7 +2089,7 @@ static void cpuset_bind(struct cgroup_subsys_state *root_css) top_cpuset.mems_allowed = top_cpuset.effective_mems; } @@ -188,7 +188,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 mutex_unlock(&cpuset_mutex); } -@@ -2185,12 +2185,12 @@ hotplug_update_tasks_legacy(struct cpuset *cs, +@@ -2187,12 +2187,12 @@ hotplug_update_tasks_legacy(struct cpuset *cs, { bool is_empty; @@ -203,7 +203,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 /* * Don't call update_tasks_cpumask() if the cpuset becomes empty, -@@ -2227,10 +2227,10 @@ hotplug_update_tasks(struct cpuset *cs, +@@ -2229,10 +2229,10 @@ hotplug_update_tasks(struct cpuset *cs, if (nodes_empty(*new_mems)) *new_mems = parent_cs(cs)->effective_mems; @@ -216,7 +216,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 if (cpus_updated) update_tasks_cpumask(cs); -@@ -2323,21 +2323,21 @@ static void cpuset_hotplug_workfn(struct work_struct *work) +@@ -2325,21 +2325,21 @@ static void cpuset_hotplug_workfn(struct work_struct *work) /* synchronize cpus_allowed to cpu_active_mask */ if (cpus_updated) { @@ -242,7 +242,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 update_tasks_nodemask(&top_cpuset); } -@@ -2439,11 +2439,11 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) +@@ -2441,11 +2441,11 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) { unsigned long flags; @@ -256,7 +256,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 } /** -@@ -2504,11 +2504,11 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk) +@@ -2506,11 +2506,11 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk) nodemask_t mask; unsigned long flags; @@ -270,7 +270,7 @@ index b5a1dca1d4d1..17875d252bf0 100644 return mask; } -@@ -2600,14 +2600,14 @@ bool __cpuset_node_allowed(int node, gfp_t gfp_mask) +@@ -2602,14 +2602,14 @@ bool __cpuset_node_allowed(int node, gfp_t gfp_mask) return true; /* Not hardwall and node outside mems_allowed: scan up cpusets */ diff --git a/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch b/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch index 0ff8b69a5..5b92f0674 100644 --- a/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch +++ b/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 11 Oct 2017 17:43:49 +0200 Subject: [PATCH 256/353] apparmor: use a locallock instead preempt_disable() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=becfde51f079b095ff4c0e80c735d8b52ad2cc24 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53cae7e6f1ece1546a58a538f6a685162e44350e 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/0257-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch index 5fb98b103..6fb41c49a 100644 --- a/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch +++ b/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 27 Jun 2014 16:24:52 +0200 Subject: [PATCH 257/353] workqueue: Prevent deadlock/stall on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e621f4bb1ebb318d4bac120c74aefd215cc67662 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a62b1ced9d802c6c953e854a71ef4c2bfabfb7e1 Austin reported a XFS deadlock/stall on RT where scheduled work gets never exececuted and tasks are waiting for each other for ever. diff --git a/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch index be3619dc9..773ec4c14 100644 --- a/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 3 Jul 2009 08:44:56 -0500 Subject: [PATCH 258/353] signals: Allow rt tasks to cache one sigqueue struct -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ae9f9cdd9c690af6e592fd497b9322866d44f0b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c055281201f5bb1b85dcba7b89a0a1b047c98e0 To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. diff --git a/debian/patches-rt/0259-Add-localversion-for-RT-release.patch b/debian/patches-rt/0259-Add-localversion-for-RT-release.patch index 214ec6365..b09cec7d2 100644 --- a/debian/patches-rt/0259-Add-localversion-for-RT-release.patch +++ b/debian/patches-rt/0259-Add-localversion-for-RT-release.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 8 Jul 2011 20:25:16 +0200 Subject: [PATCH 259/353] Add localversion for -RT release -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e770595a5754c12a88efb4be468051751a01c63 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f71c0632cb0b366bd2a4edecf6dad65f3ebdedf9 Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- diff --git a/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch index 58afbe50b..61320b922 100644 --- a/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch +++ b/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Mar 2019 18:31:54 +0100 Subject: [PATCH 260/353] powerpc/pseries/iommu: Use a locallock instead local_irq_save() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b524d947baacebeb56379a29c0df29bf09b6ec6d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=13ea01525e38daab61ff0fa8ea1c8d1d263ab08a 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/0261-powerpc-reshuffle-TIF-bits.patch b/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch index 0929bfc30..6072a9b52 100644 --- a/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch +++ b/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 22 Mar 2019 17:15:58 +0100 Subject: [PATCH 261/353] powerpc: reshuffle TIF bits -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83060ac843c04a0443161531168cd67ca1e73fd7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57b4c00fd16824d19063a3e5d3f9e7cdd25edb1d 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/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch index 8ac69c2c9..02391a4da 100644 --- a/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch @@ -1,7 +1,7 @@ From: Julien Grall <julien.grall@arm.com> Date: Wed, 13 Mar 2019 11:40:34 +0000 Subject: [PATCH 262/353] tty/sysrq: Convert show_lock to raw_spinlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7812ddf6eec62c618ea19060c8df5d6e144f6ab +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cc84fa9dbfd5700804c0fe27200ffaf9b715a77 Systems which don't provide arch_trigger_cpumask_backtrace() will invoke showacpu() from a smp_call_function() function which is invoked diff --git a/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch b/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch index 3e70d62c2..2af6325b9 100644 --- a/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch +++ b/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 10 Apr 2019 11:01:37 +0200 Subject: [PATCH 263/353] drm/i915: Don't disable interrupts independently of the lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=955d865790f6580d202d6a81658dc0a7b577ac78 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdf7e141f6f0c4257c28cb10cd300d374ea421d7 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/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch b/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch index 21d3efa71..bc1c27b81 100644 --- a/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch +++ b/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch @@ -2,7 +2,7 @@ From: Corey Minyard <cminyard@mvista.com> Date: Thu, 9 May 2019 14:33:20 -0500 Subject: [PATCH 264/353] sched/completion: Fix a lockup in wait_for_completion() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82d52a9ce572a8230a57659a20d8e6d710af4a04 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=393e1673710468a59fe22a98375a2f184a8f0bdc Consider following race: diff --git a/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch b/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch index 5d51c292a..3a0f56950 100644 --- a/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch +++ b/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 12 Feb 2019 15:09:38 +0100 Subject: [PATCH 265/353] kthread: add a global worker thread. -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76fc7e6b959c5e15f5a71a44deb6fd4801ce4762 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94597b54548d7027857d3bf84a450098c8ca1953 [ Upstream commit 0532e87d9d44795221aa921ba7024bde689cc894 ] diff --git a/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch b/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch index 6c2b0adbc..73c01a559 100644 --- a/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch +++ b/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 14 May 2019 17:07:44 +0200 Subject: [PATCH 266/353] arm: imx6: cpuidle: Use raw_spinlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=751142adb10947e8034d9e05ebc59d66fde7a25b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9aae4da52d8263b477fd6bd5eb93f84d4f233a4d [ Upstream commit 40d0332ec8312e9c090f0a5414d9c90e12b13611 ] diff --git a/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch b/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch index 5e61c702e..e1aecd800 100644 --- a/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch +++ b/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 24 Jun 2019 18:29:13 +0200 Subject: [PATCH 267/353] rcu: Don't allow to change rcu_normal_after_boot on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07b3c01852fe0393377e9e573a57fc1673458c2b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=67bcea9091d3ff86f96550f5d264ce29bce86c49 [ Upstream commit c6c058c10577815a2491ce661876cff00a4c3b15 ] diff --git a/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch b/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch index c4c3072a3..fd945f513 100644 --- a/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch +++ b/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch @@ -1,7 +1,7 @@ From: kbuild test robot <lkp@intel.com> Date: Sat, 13 Apr 2019 11:22:51 +0800 Subject: [PATCH 268/353] pci/switchtec: fix stream_open.cocci warnings -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=717589a6d22ca16c64dff08b297b5691c36679d3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=824356358c4e0d421b1f6fd2f0ac4a0120fdb9b2 [ Upstream commit 9462c69e29307adc95c289f50839d5d683973891 ] diff --git a/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch b/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch index 15d2634b3..2b822b87f 100644 --- a/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch +++ b/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 24 Jun 2019 19:33:16 +0200 Subject: [PATCH 269/353] sched/core: Drop a preempt_disable_rt() statement -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d38a2b1c1f897bc08b08d79620b5ee01ebe071fb +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b7a96c1b8fa82f1ef908b15c0fce7f6e977a848 [ Upstream commit 761126efdcbe3fa3e99c9079fa0ad6eca2f251f2 ] diff --git a/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch b/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch index c6a748876..69d6e3478 100644 --- a/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch +++ b/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 24 Jun 2019 19:39:06 +0200 Subject: [PATCH 270/353] timers: Redo the notification of canceling timers on -RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3c12b4946551a57a952f3868cc8a0b7334d6cca +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8867b2f2275355c1aec09e3b07c2020fc6234fa [ Upstream commit c71273154c2ad12e13333aada340ff30e826a11b ] diff --git a/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch b/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch index b55d0ce5f..9c9191ec7 100644 --- a/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch +++ b/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 26 Jun 2019 17:44:13 +0200 Subject: [PATCH 271/353] Revert "futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=38511a2c94b5edfab3a2e17aea53fb79880cf8c0 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30396c61217580d4225fdb2e20eaf9aecea54a9a [ Upstream commit 6a773b70cf105b46298ed3b44e77c102ce31d9ec ] diff --git a/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch b/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch index 7b09f5fd5..442adae1e 100644 --- a/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch +++ b/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 26 Jun 2019 17:44:18 +0200 Subject: [PATCH 272/353] Revert "futex: Fix bug on when a requeued RT task times out" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=112b6c937ae5e417fe33cf5099310047a342e229 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95059a1e8417cb772e741a05b1bbd6684bbc6d56 [ Upstream commit f1a170cb3289a48df26cae3c60d77608f7a988bb ] diff --git a/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch b/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch index d64598e83..6a1bb0658 100644 --- a/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch +++ b/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 26 Jun 2019 17:44:21 +0200 Subject: [PATCH 273/353] Revert "rtmutex: Handle the various new futex race conditions" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4eb4c6628857325a9a04b98f797b5c19bfa421d3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c1d1aee640dced483d8f2f6144bd691cfe3524e [ Upstream commit 9e0265c21af4d6388d47dcd5ce20f76ec3a2e468 ] diff --git a/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch b/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch index 587325a02..efd697df7 100644 --- a/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch +++ b/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 26 Jun 2019 17:44:27 +0200 Subject: [PATCH 274/353] Revert "futex: workaround migrate_disable/enable in different context" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25adb203ce6bb1c640d6b4dd64c09a6566fbfd3f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2dcb7eaaa0efc8bfa45966437cd717ab6318c99 [ Upstream commit a71221d81cc4873891ae44f3aa02df596079b786 ] diff --git a/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch b/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch index 23d476cfb..db685f174 100644 --- a/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch +++ b/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 26 Jun 2019 11:59:44 +0200 Subject: [PATCH 275/353] futex: Make the futex_hash_bucket lock raw -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=722997c7c43a8f9eaa0e98ed054e49ebae61d321 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a322e04cc1a2220cedbada7ba39667daef47ec7 [ Upstream commit f646521aadedab78801c9befe193e2e8a0c99298 ] diff --git a/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch b/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch index efd018458..fbf1d4a06 100644 --- a/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch +++ b/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 26 Jun 2019 13:35:36 +0200 Subject: [PATCH 276/353] futex: Delay deallocation of pi_state -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f34a2941c8b30b9540f4872bcf71e7589a23538 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d2af42f0b95c0309539ea7ace7d8fe31300517b [ Upstream commit d7c7cf8cb68b7df17e6e50be1f25f35d83e686c7 ] diff --git a/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch b/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch index 361035b83..bfc38b697 100644 --- a/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch +++ b/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch @@ -2,7 +2,7 @@ From: "Luis Claudio R. Goncalves" <lclaudio@uudg.org> Date: Tue, 25 Jun 2019 11:28:04 -0300 Subject: [PATCH 277/353] mm/zswap: Do not disable preemption in zswap_frontswap_store() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=087e2c667e2ce559aed791330f66e35c0739e2f9 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76b124c411d62a490954f663e6408c62b0b5ae0c [ Upstream commit 4e4cf4be79635e67144632d9135286381acbc95a ] diff --git a/debian/patches-rt/0278-revert-aio.patch b/debian/patches-rt/0278-revert-aio.patch index 45631b1d1..f543db86b 100644 --- a/debian/patches-rt/0278-revert-aio.patch +++ b/debian/patches-rt/0278-revert-aio.patch @@ -1,7 +1,7 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> Date: Fri, 20 Sep 2019 17:50:53 -0400 Subject: [PATCH 278/353] revert-aio -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e1ffcdd2f4b2068220b9fd5681f991f58e57a57 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fe31f853eb820787f9cb92c68cf3cc1a3e9aa98 revert: fs/aio: simple simple work diff --git a/debian/patches-rt/0279-fs-aio-simple-simple-work.patch b/debian/patches-rt/0279-fs-aio-simple-simple-work.patch index 2b1063281..3e169ddab 100644 --- a/debian/patches-rt/0279-fs-aio-simple-simple-work.patch +++ b/debian/patches-rt/0279-fs-aio-simple-simple-work.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 16 Feb 2015 18:49:10 +0100 Subject: [PATCH 279/353] fs/aio: simple simple work -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=282d02556c08b5e4f14c4997a89754adbd6e5c60 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3185b0aa6832a8d6f779ba17eb2caf236247c6fc [ Upstream commit 1a142116f6435ef070ecebb66d2d599507c10601 ] diff --git a/debian/patches-rt/0280-revert-thermal.patch b/debian/patches-rt/0280-revert-thermal.patch index 2ca306019..522a2eaf7 100644 --- a/debian/patches-rt/0280-revert-thermal.patch +++ b/debian/patches-rt/0280-revert-thermal.patch @@ -1,7 +1,7 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> Date: Fri, 20 Sep 2019 17:50:53 -0400 Subject: [PATCH 280/353] revert-thermal -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b076ec362dc051a2317f7b43bee1fec252623576 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53bcb94a7e0108446c6a61b4006ccf32ed238929 Revert: thermal: Defer thermal wakups to threads diff --git a/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch index 2673846eb..3757fa2d6 100644 --- a/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch +++ b/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch @@ -1,7 +1,7 @@ From: Daniel Wagner <wagi@monom.org> Date: Tue, 17 Feb 2015 09:37:44 +0100 Subject: [PATCH 281/353] thermal: Defer thermal wakups to threads -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e23e2a7e4097eb86a567eaec4379f84e686a2ee5 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f7fbdef70212226ebc92dad2324314a8622bc932 [ Upstream commit ad2408dc248fe58536eef5b2b5734d8f9d3a280b ] diff --git a/debian/patches-rt/0282-revert-block.patch b/debian/patches-rt/0282-revert-block.patch index b28b2d8c0..64822be0f 100644 --- a/debian/patches-rt/0282-revert-block.patch +++ b/debian/patches-rt/0282-revert-block.patch @@ -1,7 +1,7 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> Date: Fri, 20 Sep 2019 17:50:54 -0400 Subject: [PATCH 282/353] revert-block -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37e6e928c30eb2c4f07268390dab283611524c36 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f49ff6cc5e6ab3714c16d7862f65881092c8f64 Revert swork version of: block: blk-mq: move blk_queue_usage_counter_release() into process context diff --git a/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch index b174a3d1c..fd1086f94 100644 --- a/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +++ b/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 13 Mar 2018 13:49:16 +0100 Subject: [PATCH 283/353] block: blk-mq: move blk_queue_usage_counter_release() into process context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25b1bec7050524539d6e1b35b823da8874860f72 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=468da645fc327d9551d6d834526fdd7d7da951b0 [ Upstream commit 61c928ecf4fe200bda9b49a0813b5ba0f43995b5 ] diff --git a/debian/patches-rt/0284-workqueue-rework.patch b/debian/patches-rt/0284-workqueue-rework.patch index 36bf4836c..7acedd9ad 100644 --- a/debian/patches-rt/0284-workqueue-rework.patch +++ b/debian/patches-rt/0284-workqueue-rework.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 29 May 2019 18:52:27 +0200 Subject: [PATCH 284/353] workqueue: rework -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=596c804b6bf260c1e2df31fff84b5a66349192bf +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11c0b968a11a4a0c4e9b0e4f4129c5d3dbf995ac [ Upstream commit d15a862f24df983458533aebd6fa207ecdd1095a ] diff --git a/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch index 8c2e7d58f..656441dba 100644 --- a/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch +++ b/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 13 Aug 2019 12:30:12 +0200 Subject: [PATCH 285/353] i2c: exynos5: Remove IRQF_ONESHOT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9dbbf1a9a650703c59529ccb70843a8577495d1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e4f0bc9902f8516a6a18918ebdea0cc946225762 [ Upstream commit 4b217df0ab3f7910c96e42091cc7d9f221d05f01 ] diff --git a/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch index 6a46e43e6..1b56bc7d6 100644 --- a/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch +++ b/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 13 Aug 2019 12:30:37 +0200 Subject: [PATCH 286/353] i2c: hix5hd2: Remove IRQF_ONESHOT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=efef7a2c8a6dad2a5e36e96640affdab97b10e66 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc1104b08361696b6b71dffd43e16583ce515fd5 [ Upstream commit e88b481f3f86f11e3243e0808a830e5ca5782a9d ] diff --git a/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch b/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch index 8b8436332..0f3777794 100644 --- a/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch +++ b/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch @@ -2,7 +2,7 @@ From: Juri Lelli <juri.lelli@redhat.com> Date: Wed, 31 Jul 2019 12:37:15 +0200 Subject: [PATCH 287/353] sched/deadline: Ensure inactive_timer runs in hardirq context -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ecec8209fa951318de80e5f9f60cb6949de3b61 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=33b8449cf20c75ee255c7b492f6ae53c013e3def [ Upstream commit ba94e7aed7405c58251b1380e6e7d73aa8284b41 ] diff --git a/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch b/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch index f58283138..1632d9893 100644 --- a/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch +++ b/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch @@ -2,7 +2,7 @@ From: Clark Williams <williams@redhat.com> Date: Mon, 15 Jul 2019 15:25:00 -0500 Subject: [PATCH 288/353] thermal/x86_pkg_temp: make pkg_temp_lock a raw spinlock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44c3890791dda2da81a71bbb8b920d2e043019f8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d9572955bd495cac1572c1d3bbc28b80c3f0999 [ Upstream commit 8b03bb3ea7861b70b506199a69b1c8f81fe2d4d0 ] diff --git a/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch b/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch index f85e2cf8a..79c39bf9c 100644 --- a/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch +++ b/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Aug 2019 16:38:43 +0200 Subject: [PATCH 289/353] dma-buf: Use seqlock_t instread disabling preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a41b5c961426c8cfced96aafa82517fdc187cc6f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f06b5fe097018422f3d5981c51e0355b5dd6cfc4 [ Upstream commit 240610aa31094f51f299f06eb8dae8d4cd8d4500 ] diff --git a/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch b/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch index 1ee4544e8..3bb0fbfc9 100644 --- a/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch +++ b/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 13 Aug 2019 14:29:41 +0200 Subject: [PATCH 290/353] KVM: arm/arm64: Let the timer expire in hardirq context on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9aa362f5217dc131c6a06777ead7f0fa6f24cd5 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b21d451eb954108eaafe77777e228684fe1a204 [ Upstream commit 719cc080c914045a6e35787bf4dc3ba91cfd3efb ] diff --git a/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch b/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch index 96ca4c86e..81ad5f5cc 100644 --- a/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch +++ b/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Aug 2019 17:08:58 +0200 Subject: [PATCH 291/353] x86: preempt: Check preemption level before looking at lazy-preempt -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebc55480887bfaef01412510792f2ce1a77b3654 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cbc52c4edd1435f24f0aee500f2b44e6091b345 [ Upstream commit 19fc8557f2323c52b26561651ed4d51fc688a740 ] diff --git a/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch b/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch index 14a9337be..c16df6892 100644 --- a/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch +++ b/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch @@ -2,7 +2,7 @@ From: Julien Grall <julien.grall@arm.com> Date: Wed, 21 Aug 2019 10:24:07 +0100 Subject: [PATCH 292/353] hrtimer: Use READ_ONCE to access timer->base in hrimer_grab_expiry_lock() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c33030a188299d5f4d2a0ba662f71a1de38bc091 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5817dd3ce58d48f4407ab82766339582745ff505 [ Upstream commit 2c8fdbe7ef0ad06c1a326886c5954e117b5657d6 ] diff --git a/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch b/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch index 166a8c068..67a06e013 100644 --- a/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch +++ b/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch @@ -2,7 +2,7 @@ From: Julien Grall <julien.grall@arm.com> Date: Wed, 21 Aug 2019 10:24:08 +0100 Subject: [PATCH 293/353] hrtimer: Don't grab the expiry lock for non-soft hrtimer -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9856f7ac0a960926df3213b147d23bb61ab08876 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=092ae9a94d427cc8e7f9785d080600083352ff51 [ Upstream commit fd420354bea2f57c11f3de191dffdeea76531e76 ] diff --git a/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch b/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch index ca110d8f4..d4e68cff4 100644 --- a/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch +++ b/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch @@ -2,7 +2,7 @@ From: Julien Grall <julien.grall@arm.com> Date: Wed, 21 Aug 2019 10:24:09 +0100 Subject: [PATCH 294/353] hrtimer: Prevent using hrtimer_grab_expiry_lock() on migration_base -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed1f1523fc5f419ad788d6b09bb589d2e070dbc3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6152518bccba12b3bbdd47b5d5c4cdd56541609 [ Upstream commit cef1b87f98823af923a386f3f69149acb212d4a1 ] diff --git a/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch b/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch index 379de3240..7dd4d0442 100644 --- a/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch +++ b/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 4 Sep 2019 16:55:27 +0200 Subject: [PATCH 295/353] hrtimer: Add a missing bracket and hide `migration_base' on !SMP -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=957a4c80e0cd81de63b3fc11f0aa903aeb9cf2ae +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4d0aa6302835846430bf1cde91bb94ec6ec8987 [ Upstream commit 47b6de0b7f22c28b40275aeede3993d807668c3b ] diff --git a/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch b/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch index 96ecc00c4..bd957b6ab 100644 --- a/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch +++ b/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 16 Sep 2019 12:33:59 +0200 Subject: [PATCH 296/353] posix-timers: Unlock expiry lock in the early return -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b7d81f87d3b22d47b2b96b9e2f3fa22a11e2097 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6786bf935fdb78423332e7a435b63a52809facde [ Upstream commit 356a2781375ec58521a9bc3f500488745990c242 ] diff --git a/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch b/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch index 8aa3c0cec..ccd295d1a 100644 --- a/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch +++ b/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch @@ -5,7 +5,7 @@ Subject: [PATCH 297/353] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=549bef79c0b761af907077e08fce603708add078 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b49a31f9d5d7fdda03f5bcb45ad967ef89f9821d [ Upstream commit 4230dd3824c3e1785504e6f757ce79a4b55651fa ] diff --git a/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch b/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch index 7a340c4c4..f07e9bd54 100644 --- a/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch +++ b/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch @@ -2,7 +2,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 27 Jul 2019 00:56:32 -0500 Subject: [PATCH 298/353] sched: __set_cpus_allowed_ptr: Check cpus_mask, not cpus_ptr -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2fdafc9b89be266c63d7fd4705da844536edd34e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e8e6aa43a48f6597b211cf6f6b1642c21051eaf [ Upstream commit e5606fb7b042db634ed62b4dd733d62e050e468f ] diff --git a/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch b/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch index 58e96b3de..131c65868 100644 --- a/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch +++ b/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 27 Jul 2019 00:56:33 -0500 Subject: [PATCH 299/353] sched: Remove dead __migrate_disabled() check -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=710b15b6355be87bbcd9002c795f5a839c522f7e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2beb0e09e6c79687ac5e46b7ab9466ad18b542f6 [ Upstream commit 14d9272d534ea91262e15db99443fc5995c7c016 ] diff --git a/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch b/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch index 0646d7063..a77c8fa71 100644 --- a/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch +++ b/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 27 Jul 2019 00:56:34 -0500 Subject: [PATCH 300/353] sched: migrate disable: Protect cpus_ptr with lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=88139859a77ae38bb0ca8c7822443ed42e90dac4 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4eaf7716d710661a89298b3997982fcd46bd3736 [ Upstream commit 27ee52a891ed2c7e2e2c8332ccae0de7c2674b09 ] diff --git a/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch b/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch index e5a9d8716..241ea05fa 100644 --- a/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch +++ b/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch @@ -1,7 +1,7 @@ From: Waiman Long <longman@redhat.com> Date: Thu, 3 Oct 2019 16:36:08 -0400 Subject: [PATCH 301/353] lib/smp_processor_id: Don't use cpumask_equal() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=947f7bfe81c63356557e081dbc27fee6a0f15f01 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79718592757dc1a6c28913770376a3027354b206 [ Upstream commit 659252061477862f45b79e1de169e6030f5c8918 ] diff --git a/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch b/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch index fec9a198c..69e64ecf0 100644 --- a/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch +++ b/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 7 Oct 2019 16:45:18 +0200 Subject: [PATCH 302/353] futex: Make the futex_hash_bucket spinlock_t again and bring back its old state -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=800a6585730190515bc44d3adec4c0e80571a558 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b3bea588f7b01159f2b0bcab282f896c81489d9 [ Upstream commit 954ad80c23edfe71f4e8ce70b961eac884320c3a ] diff --git a/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch b/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch index 984aa9618..ec76caba1 100644 --- a/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch +++ b/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 30 Sep 2019 18:15:44 +0200 Subject: [PATCH 303/353] locking/rtmutex: Clean ->pi_blocked_on in the error case -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8f3a7ed1e7717fe6913aa00d35da6a925806171 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a109377bbb679cbd71529e00c9ae728d776b8485 [ Upstream commit 0be4ea6e3ce693101be0fbd55a0cc7ce238ab2eb ] diff --git a/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch b/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch index c312a28cf..9db2c1f50 100644 --- a/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch +++ b/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch @@ -1,7 +1,7 @@ From: Julien Grall <julien.grall@arm.com> Date: Fri, 20 Sep 2019 11:08:35 +0100 Subject: [PATCH 304/353] lib/ubsan: Don't seralize UBSAN report -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=daa87139e394441201f8aeb6f7cb2b940de13bb1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ed4fc163a128fd089195be065a07314330b013a [ Upstream commit 4702c28ac777b27acb499cbd5e8e787ce1a7d82d ] diff --git a/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch b/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch index 30d167dce..425441d82 100644 --- a/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch +++ b/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch @@ -2,7 +2,7 @@ From: Liu Haitao <haitao.liu@windriver.com> Date: Fri, 27 Sep 2019 16:22:30 +0800 Subject: [PATCH 305/353] kmemleak: Change the lock of kmemleak_object to raw_spinlock_t -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6482964341422379e6e6b9aabd988a278d0da042 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=824ae2cb991ab667f8333f4863bb5e9bf3b9552c [ Upstream commit 217847f57119b5fdd377bfa3d344613ddb98d9fc ] diff --git a/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch b/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch index 282e34443..265fdd120 100644 --- a/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch +++ b/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 12 Oct 2019 01:52:12 -0500 Subject: [PATCH 306/353] sched: migrate_enable: Use select_fallback_rq() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d94bbb3aa664ab54a298812ae06693e0e37a104 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5eebc90b5a02e2cbf415e6b056bd92cee740473 [ Upstream commit adfa969d4cfcc995a9d866020124e50f1827d2d1 ] diff --git a/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch b/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch index c690fd903..83d5fabda 100644 --- a/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch +++ b/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 12 Oct 2019 01:52:13 -0500 Subject: [PATCH 307/353] sched: Lazy migrate_disable processing -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59d98c89b8a1579f4a88ad4c440c28f73211b951 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e59f409c017d0df927609e4fe742e7db56c48fe5 [ Upstream commit 425c5b38779a860062aa62219dc920d374b13c17 ] diff --git a/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch b/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch index 204a99d23..7eca722a0 100644 --- a/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch +++ b/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 12 Oct 2019 01:52:14 -0500 Subject: [PATCH 308/353] sched: migrate_enable: Use stop_one_cpu_nowait() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=387f0d9e4b69683d227989d0175b72272f6bf065 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a569a7f7c153ae5367090acad55faedba51cf23 [ Upstream commit 6b39a1fa8c53cae08dc03afdae193b7d3a78a173 ] diff --git a/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch b/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch index 122af5df6..24fad7ff6 100644 --- a/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch +++ b/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 18 Oct 2019 13:04:15 +0200 Subject: [PATCH 309/353] Revert "ARM: Initialize split page table locks for vector page" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=333b99ef79b4ce8a39f45d8461aa9edb89c6d734 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a423ed25b55ccf69e009630f23c3c7812d250a7b [ Upstream commit 247074c44d8c3e619dfde6404a52295d8d671d38 ] diff --git a/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch index 8a86f3f7c..cfb9000e5 100644 --- a/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch +++ b/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 19 Nov 2019 09:25:04 +0100 Subject: [PATCH 310/353] locking: Make spinlock_t and rwlock_t a RCU section on RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fdc83a41301027156712fae4f2951e5588f78bdf +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=516e5a915abdd48d23f01890a9ddd9b495a2524a [ Upstream commit 84440022a0e1c8c936d61f8f97593674a295d409 ] diff --git a/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch b/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch index 10a008a9a..ec57af7e9 100644 --- a/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch +++ b/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 29 Nov 2019 17:24:55 +0100 Subject: [PATCH 311/353] sched/core: migrate_enable() must access takedown_cpu_task on !HOTPLUG_CPU -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7c9970fc1ed3612f2a21ec3b9926c21f1779a59b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=375d4a2f36224a330bd486396a51a8a469047e76 [ Upstream commit a61d1977f692e46bad99a100f264981ba08cb4bd ] diff --git a/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch b/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch index 6b01003c9..6c351ef5a 100644 --- a/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch +++ b/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch @@ -2,7 +2,7 @@ From: Daniel Wagner <dwagner@suse.de> Date: Mon, 16 Dec 2019 16:15:57 +0100 Subject: [PATCH 312/353] lib/smp_processor_id: Adjust check_preemption_disabled() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11ac72da64a156a3194b5d2e4312405109aeb6b9 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b193fe7dfc2b15576e3306658dbaa48f908c32c [ Upstream commit af3c1c5fdf177870fb5e6e16b24e374696ab28f5 ] diff --git a/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch b/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch index 3a8e920da..2acb322cd 100644 --- a/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch +++ b/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 12 Dec 2019 10:53:59 +0100 Subject: [PATCH 313/353] sched: migrate_enable: Busy loop until the migration request is completed -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d9e8887bd6d168632ae0552d221b911ef94efe4e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9b679103886ae636c06f0709528b4679f910594 [ Upstream commit 140d7f54a5fff02898d2ca9802b39548bf7455f1 ] diff --git a/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch b/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch index 501d3cc3d..b77ed53fc 100644 --- a/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch +++ b/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 18 Dec 2019 12:25:09 +0100 Subject: [PATCH 314/353] userfaultfd: Use a seqlock instead of seqcount -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62529001d35482cdb3d7494a9a6e375822a1cfe7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=221d4d744e0fa4cbf6cbdfa93f36418495297c42 [ Upstream commit dc952a564d02997330654be9628bbe97ba2a05d3 ] diff --git a/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch b/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch index e49addd00..0de7d0707 100644 --- a/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch +++ b/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Fri, 24 Jan 2020 06:11:46 -0500 Subject: [PATCH 315/353] sched: migrate_enable: Use per-cpu cpu_stop_work -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f7653dc3d53c903cb32c6ecceb3a4bc6904a0718 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0a6804b47754240ecad3efe8bd2aafa0abf6157 [ Upstream commit 2dcd94b443c5dcbc20281666321b7f025f9cc85c ] diff --git a/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch b/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch index 6349b6636..aba027930 100644 --- a/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch +++ b/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Fri, 24 Jan 2020 06:11:47 -0500 Subject: [PATCH 316/353] sched: migrate_enable: Remove __schedule() call -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6dd47e53c570dc411567256cb955a8a32f4aa1f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcbbd0ba34f84adb2b09fd1ee03c288bedb5e1af [ Upstream commit b8162e61e9a33bd1de6452eb838fbf50a93ddd9a ] diff --git a/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch b/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch index 2e7320e2f..bdb5d4a85 100644 --- a/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch +++ b/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch @@ -2,7 +2,7 @@ From: Matt Fleming <matt@codeblueprint.co.uk> Date: Sun, 26 Jan 2020 21:19:45 +0000 Subject: [PATCH 317/353] mm/memcontrol: Move misplaced local_unlock_irqrestore() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=337b970c8eb4f7da03deebced8e49ab76004e4da +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed8021a659bdfe9a30303ccb240b40eb36771a34 [ Upstream commit 071a1d6a6e14d0dec240a8c67b425140d7f92f6a ] diff --git a/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch b/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch index cdce399a7..be1ff1e39 100644 --- a/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch +++ b/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 4 Feb 2020 13:29:50 +0100 Subject: [PATCH 318/353] locallock: Include header for the `current' macro -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2be8327abf6a9192450e2c488619116d91fb461e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a699b8aaf4126a54c3e112e47b036ee8148c84fd [ Upstream commit e693075a5fd852043fa8d2b0467e078d9e5cb782 ] diff --git a/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch b/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch index 9626481b5..885be9b8a 100644 --- a/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch +++ b/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2020 18:57:11 +0100 Subject: [PATCH 319/353] drm/vmwgfx: Drop preempt_disable() in vmw_fifo_ping_host() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f107a5eebc442d3abe193fb416437b74dc6493f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a787c3baf377eff975557e64faa98ca20dc393de [ Upstream commit b901491e7b9b7a676818d84e482b69be72fc142f ] diff --git a/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch b/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch index 5a08a057d..2037ca514 100644 --- a/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch +++ b/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2020 18:15:15 +0100 Subject: [PATCH 320/353] tracing: make preempt_lazy and migrate_disable counter smaller -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=411f224b337ddcb3362f2a0a27406ecc465d3ccf +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8777fd9207cf67d412307c122667798803ce279 [ Upstream commit dd430bf5ecb40f9a89679c85868826475d71de54 ] diff --git a/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch b/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch index fca157403..c9aea148d 100644 --- a/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch +++ b/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch @@ -2,7 +2,7 @@ From: Tiejun Chen <tiejunc@vmware.com> Date: Mon, 30 Mar 2020 18:45:23 -0400 Subject: [PATCH 321/353] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8fd16956cec48aff41ad7ce6a790c37b197ec25d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=219d304f02bbff8a65f6b38d0d10c6c8d927c59a Fails to build with CONFIG_UBSAN=y diff --git a/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch b/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch index e2522e1ae..2a6b3f344 100644 --- a/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch +++ b/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch @@ -2,7 +2,7 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> Date: Sun, 22 Mar 2020 00:00:28 +0100 Subject: [PATCH 322/353] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e82501e7ca71884e71ec4ab9179d666a0644998f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50eb3f852f4931603f68d0fc6893082686f63e78 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/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch b/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch index 635c55a2b..aea3373e7 100644 --- a/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch +++ b/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch @@ -1,7 +1,7 @@ From: Zhang Xiao <xiao.zhang@windriver.com> Date: Tue, 17 Mar 2020 12:47:43 +0100 Subject: [PATCH 323/353] tasklet: Address a race resulting in double-enqueue -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0a3cb2e7727bffa1430c86ce1f664f817dcb6d7 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea8e37e3c5f3c8e0c22c0e1b35c43e7158d0bc77 The kernel bugzilla has the following race condition reported: diff --git a/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch b/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch index 966832270..52c96be18 100644 --- a/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch +++ b/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch @@ -2,7 +2,7 @@ From: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Date: Tue, 28 Apr 2020 16:40:26 +0200 Subject: [PATCH 324/353] hrtimer: fix logic for when grabbing softirq_expiry_lock can be elided -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc7f9dff54b6992d49ccd4c8d5f094fd89c17a46 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6659590de622d7f415b973112a6b2523d18d92ce Commit diff --git a/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch b/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch index e070467b8..58036225a 100644 --- a/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch +++ b/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 16 Apr 2020 12:42:15 +0200 Subject: [PATCH 325/353] fs/dcache: Include swait.h header -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=38fbcf54fd0c6eeca7f557258d493ac25f681d82 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89692e5769f533ce4a925ada1420f709e388b9dd [ Upstream commit 279f90ddf53cd6bd3c203fbbf488d642ea2603de ] diff --git a/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch b/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch index 2c437212d..9811dfe0c 100644 --- a/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch +++ b/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch @@ -2,7 +2,7 @@ From: Kevin Hao <haokexin@gmail.com> Date: Mon, 4 May 2020 11:34:07 +0800 Subject: [PATCH 326/353] mm: slub: Always flush the delayed empty slubs in flush_all() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=762c50342dbbd1fe1d0cf52154b5bb624d3ec100 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b445fe16bd98d9edf5f1d4f1c822149fa84f649 [ Upstream commit 23a2c31b19e99beaf5107071b0f32a596202cdae ] diff --git a/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch b/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch index f52f642b9..eec172526 100644 --- a/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch +++ b/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch @@ -1,7 +1,7 @@ From: Tom Zanussi <zanussi@kernel.org> Date: Tue, 9 Jun 2020 11:04:08 -0500 Subject: [PATCH 327/353] tasklet: Fix UP case for tasklet CHAINED state -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05e464103f116fb2db39ac17867c8ae915294c7e +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=73881f36e14be59b92716efa0b760ccadfd3d80a commit 62d0a2a30cd0 (tasklet: Address a race resulting in double-enqueue) addresses a problem that can result in a tasklet being diff --git a/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch b/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch index 9d19a5baf..8459155a8 100644 --- a/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch +++ b/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch @@ -1,7 +1,7 @@ From: Matt Fleming <matt@codeblueprint.co.uk> Date: Tue, 7 Apr 2020 10:54:13 +0100 Subject: [PATCH 328/353] signal: Prevent double-free of user struct -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=499655d2819a34d02d0faa80d26ddea5942f1555 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cddd4506f6c3f229f53fe39a335aa71759afdac0 [ Upsteam commit 9567db2ebe566a93485e1a27d8759969d0002d7a ] diff --git a/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch b/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch index 1e0ed7d23..34d2b4506 100644 --- a/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch +++ b/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 28 May 2020 14:35:12 +0200 Subject: [PATCH 329/353] Bluetooth: Acquire sk_lock.slock without disabling interrupts -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3f37c8158aacc1c30146e25450c881ae3137dc8 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=38d73bc2a2c03859f6a80ca126c7b767ab88bd17 [ Upstream commit e6da0edc24eecef2f6964d92fa9044e1821deace ] diff --git a/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch b/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch index eec4849f6..7c5730f91 100644 --- a/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch +++ b/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch @@ -1,7 +1,7 @@ From: "Ahmed S. Darwish" <a.darwish@linutronix.de> Date: Wed, 10 Jun 2020 12:53:00 +0200 Subject: [PATCH 330/353] net: phy: fixed_phy: Remove unused seqcount -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e2e711ce52301c824ddd19c85e0b5013ae01c14b +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c70e959108784a6bb33739d00f5a2006aeadb918 [ Upstream commit 6554eac9ef2bd1c968886b31cc7266b49258a463 ] diff --git a/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch b/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch index 669a351d8..9a3f6226f 100644 --- a/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch +++ b/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch @@ -1,7 +1,7 @@ From: Davidlohr Bueso <dave@stgolabs.net> Date: Tue, 18 Aug 2020 09:20:53 -0700 Subject: [PATCH 331/353] net: xfrm: fix compress vs decompress serialization -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62aa3a3326fc29437f928d20068de2ba77e73f71 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d8c3fecb2bb207af061cd67523dbd5f4dd4b1568 A crash was seen in xfrm when running ltp's 'tcp4_ipsec06' stresser on v4.x based RT kernels. diff --git a/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch b/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch index 0485985b4..4aeee1f66 100644 --- a/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch +++ b/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 28 Oct 2020 18:15:32 +0100 Subject: [PATCH 332/353] mm/memcontrol: Disable preemption in __mod_memcg_lruvec_state() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61caf01d44772a1cd8c94fb56dd8464151213ed3 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b2ccf8a5b5c9a75d1b9815c53f9c64266084f366 [ Upstream commit 74858f0d38a8d3c069a0745ff53ae084c8e7cabb ] diff --git a/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch b/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch index 16ae8d20e..d03ccd768 100644 --- a/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch +++ b/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch @@ -2,7 +2,7 @@ From: Oleg Nesterov <oleg@redhat.com> Date: Tue, 3 Nov 2020 12:39:01 +0100 Subject: [PATCH 333/353] ptrace: fix ptrace_unfreeze_traced() race with rt-lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9cece5fee9c4a4f7f1289881b122c6bf6a29858 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d2b2d216c3757a65a5eb1319c52bbda77c82356 [ Upstream commit 0fdc91971b34cf6857b4cfd8c322ae936cfc189b ] diff --git a/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch b/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch index d20dc5729..9e4166063 100644 --- a/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch +++ b/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 26 Feb 2021 17:26:04 +0100 Subject: [PATCH 334/353] mm: slub: Don't resize the location tracking cache on PREEMPT_RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=96730234008f592994666a3890e8e46077b84d20 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee1d963b8014a9e47ac550d50830c7b3f9e183eb The location tracking cache has a size of a page and is resized if its current size is too small. diff --git a/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch b/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch index 8abcfab76..21eccadc2 100644 --- a/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch +++ b/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 19 Jan 2021 18:54:33 +0100 Subject: [PATCH 335/353] locking/rwsem_rt: Add __down_read_interruptible() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b699ea2423faf81990ed0225a37bc40e018a7707 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e17b509364cf1b4d4e8adf01a5b64e986db7ad2 The stable backported a patch which adds __down_read_interruptible() for the generic rwsem implementation. diff --git a/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch b/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch index 82f966017..a2ca4849d 100644 --- a/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch +++ b/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch @@ -1,7 +1,7 @@ From: Andrew Halaney <ahalaney@redhat.com> Date: Tue, 6 Apr 2021 17:19:52 -0500 Subject: [PATCH 336/353] locking/rwsem-rt: Remove might_sleep() in __up_read() -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a217cdee8b767aba2258fbd0436fa7cfe5bc662d +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a677d98bed32e05401274cf48d9e8c762b0d8280 There's no chance of sleeping here, the reader is giving up the lock and possibly waking up the writer who is waiting on it. diff --git a/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch b/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch index fb79e0382..9dc2e995b 100644 --- a/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch +++ b/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch @@ -2,7 +2,7 @@ From: Gregor Beck <gbeck@esigma-technology.com> Date: Fri, 3 Sep 2021 14:19:11 +0200 Subject: [PATCH 337/353] fscache: fix initialisation of cookie hash table raw spinlocks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74b35db93d939040d86cb5aeab29939fb54e441f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e94615d52b66ddd8c3a6d3e0117137daf5ee7b21 The original patch, 602660600bcd ("fscache: initialize cookie hash table raw spinlocks"), subtracted 1 from the shift and so still left diff --git a/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch b/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch index 3a6a9cb50..914daf15f 100644 --- a/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch +++ b/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch @@ -1,7 +1,7 @@ From: Clark Williams <clark.williams@gmail.com> Date: Sun, 30 Jan 2022 15:46:27 -0600 Subject: [PATCH 338/353] rt: PREEMPT_RT safety net for backported patches -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d84b6b515624d3bfc69787705e8b016ab22ded76 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb8f7f5be98adee5f754c337967de9684afc1ab6 While doing some 4.19-rt cleanup work, I stumbled across the fact that parts of two backported patches were dependent on CONFIG_PREEMPT_RT, rather than diff --git a/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch b/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch index c1dc24eee..cb88391ac 100644 --- a/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch +++ b/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 22 Dec 2021 20:35:22 +0100 Subject: [PATCH 339/353] net: Add missing xmit_lock_owner hunks. -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=28fb4ed75c1321223af40de2e3ed096553ad15ea +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=32fdfaaf1dbe68aedd03460e61be623bba9dff09 The patch net: move xmit_recursion to per-task variable on -RT diff --git a/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch b/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch index 79cb1f568..dbcdfcba5 100644 --- a/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch +++ b/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 29 Apr 2022 11:02:18 -0500 Subject: [PATCH 340/353] genirq: Add lost hunk to irq_forced_thread_fn(). -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34d634d46859857fa7d866a0b8e4f98e0a5b2a1a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d976532ebe34ef620ed2aa1f6e2be711d7a6a902 The irq_settings_no_softirq_call() related handling got lost in process, here are the missing bits. diff --git a/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch b/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch index defa3aff2..654b55878 100644 --- a/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch +++ b/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 19 Aug 2022 11:24:38 +0200 Subject: [PATCH 341/353] random: Bring back the local_locks -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=009ef0e1bda09fafe73b7f280d0c5180cc9d519a +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ba891aa13c535f5d95c4fab0c44253694b36bc0 As part of the backports the random code lost its local_lock_t type and the whole operation became a local_irq_{disable|enable}() simply because diff --git a/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch b/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch index 1f4b60d12..0856f6fc7 100644 --- a/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch +++ b/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Oct 2022 15:55:39 +0200 Subject: [PATCH 342/353] local_lock: Provide INIT_LOCAL_LOCK(). -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41193143552afd68eb43331c8f06b53b09ac8cce +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=49c901af0340e7621905b09bafc0c23c4b12624e The original code was using INIT_LOCAL_LOCK() and I tried to sneak around it and forgot that this code also needs to compile on !RT diff --git a/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch index ffd2e466c..1e3004793 100644 --- a/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch +++ b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Oct 2022 16:15:56 +0200 Subject: [PATCH 343/353] Revert "workqueue: Use local irq lock instead of irq disable regions" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4dce50b8def29833be6b384dd3e11ebd56338ac6 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60087367b50b95abf48d954ffb59b9b22c1f9f99 This reverts the PREEMPT_RT related changes to workqueue. It reverts the usage of local_locks() and cpu_chill(). diff --git a/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch b/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch index 4aba8c8e2..30109fcaf 100644 --- a/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch +++ b/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 19 Aug 2022 11:24:42 +0200 Subject: [PATCH 344/353] timers: Keep interrupts disabled for TIMER_IRQSAFE timer. -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80f379f63b021517015f4db3a49c9d924e556211 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=594dfc20b8af70e4ba45812364ece21d433bda57 Keep interrupts disabled across callback invocation for the TIMER_IRQSAFE as expected. diff --git a/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch b/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch index fbd19c591..58c7159ea 100644 --- a/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch +++ b/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 24 Oct 2022 10:17:22 +0200 Subject: [PATCH 345/353] timers: Don't block on ->expiry_lock for TIMER_IRQSAFE timers -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e0550b85976f3d13ebffc2c98b3601d28c24b651 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84306a94872a513876119e0b5f299d4d3987a8db Upstream commit c725dafc95f1b37027840aaeaa8b7e4e9cd20516 diff --git a/debian/patches-rt/0346-rcu-Update-rcuwait.patch b/debian/patches-rt/0346-rcu-Update-rcuwait.patch index b7ba81426..57afe7c3e 100644 --- a/debian/patches-rt/0346-rcu-Update-rcuwait.patch +++ b/debian/patches-rt/0346-rcu-Update-rcuwait.patch @@ -1,7 +1,7 @@ From: Daniel Wagner <wagi@monom.org> Date: Mon, 24 Oct 2022 10:58:29 +0200 Subject: [PATCH 346/353] rcu: Update rcuwait -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5d12a10175ae6b219849fe6128942ea23e8a092f +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=587f7f0c0ba24632fa86dd7122366221664f116f This is an all in one commit backporting updates for rcuwait: - 03f4b48edae7 ("rcuwait: Annotate task_struct with __rcu") diff --git a/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch b/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch index 2c5cb6b24..0978310bc 100644 --- a/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch +++ b/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 19 Aug 2022 11:24:45 +0200 Subject: [PATCH 347/353] workqueue: Use rcuwait for wq_manager_wait -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a06e9a5e2f5fae48471a7a0976043f7a19f52f1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f194473966fbca2b59765c07b6ce08a7aa4579f1 Upstream commit d8bb65ab70f702531aaaa11d9710f9450078e295 diff --git a/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch b/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch index bb5b3f36e..caa280599 100644 --- a/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch +++ b/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch @@ -1,7 +1,7 @@ From: Anna-Maria Gleixner <anna-maria@linutronix.de> Date: Mon, 31 Oct 2022 16:50:04 +0100 Subject: [PATCH 348/353] timers: Prepare support for PREEMPT_RT -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1845918ac70d981c3ce17493e214a9caef652583 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f90995ffd999e658dbb9146f2436b4fde40ed9d9 Upstream commit 030dcdd197d77374879bb5603d091eee7d8aba80 diff --git a/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch b/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch index 61954928f..2744908b4 100644 --- a/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch +++ b/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 31 Oct 2022 16:50:05 +0100 Subject: [PATCH 349/353] timers: Move clearing of base::timer_running under base:: Lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b89944e4b8533b3ed192a81bea39a75a50cf9c31 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a66d72d875ad3ceffbfc55419dc883fa702a1794 Upstream commit bb7262b295472eb6858b5c49893954794027cd84 diff --git a/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch b/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch index d6743715e..a095b5965 100644 --- a/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch +++ b/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 31 Oct 2022 16:50:06 +0100 Subject: [PATCH 350/353] timers: Don't block on ->expiry_lock for TIMER_IRQSAFE timers -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f48a298501bfb76530a080edb5052081abcad637 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d585a000a1b7f50740d6851fb62230022452f891 Upstream commit c725dafc95f1b37027840aaeaa8b7e4e9cd20516 diff --git a/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch b/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch index c552ddc91..7695dbdcb 100644 --- a/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch +++ b/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch @@ -2,7 +2,7 @@ From: Ben Hutchings <ben@decadent.org.uk> Date: Sat, 10 Dec 2022 00:06:17 +0100 Subject: [PATCH 351/353] Revert "percpu: include irqflags.h for raw_local_irq_save()" -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5e46c2fa591455d0c389c83add860375b0bf1db +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5fc2f775b05752f219dd8a10129509e0b23a1742 This reverts commit 0d796a9e6a93608b4dd84fbd09f01e912ae34bdc. diff --git a/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch b/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch index e5cbdc585..847f5978e 100644 --- a/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch +++ b/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch @@ -2,7 +2,7 @@ From: "Brennan Lamoreaux (VMware)" <brennanlamoreaux@gmail.com> Date: Tue, 28 Feb 2023 14:49:38 -0800 Subject: [PATCH 352/353] workqueue: Fix deadlock due to recursive locking of pool->lock -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=813609bc5c58e47a292c3e8cbe961c494e4670a1 +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ad25c1a19c04844c75d94d93a22d5879cdcede1c Upstream commit d8bb65ab70f7 ("workqueue: Use rcuwait for wq_manager_wait") replaced the waitqueue with rcuwait in the workqueue code. This change diff --git a/debian/patches-rt/0353-Linux-4.19.280-rt123-REBASE.patch b/debian/patches-rt/0353-Linux-4.19.284-rt125-REBASE.patch index e286c2809..cd165fd18 100644 --- a/debian/patches-rt/0353-Linux-4.19.280-rt123-REBASE.patch +++ b/debian/patches-rt/0353-Linux-4.19.284-rt125-REBASE.patch @@ -1,7 +1,7 @@ From: Daniel Wagner <wagi@monom.org> -Date: Mon, 24 Apr 2023 07:30:59 +0200 -Subject: [PATCH 353/353] Linux 4.19.280-rt123 REBASE -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d9ee5c3fff7f936e300ca53d8ebe8872429e5eb6 +Date: Thu, 1 Jun 2023 08:03:33 +0200 +Subject: [PATCH 353/353] Linux 4.19.284-rt125 REBASE +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c159f8ff7cf6c82d53a066c78a054d0244b7fb61 Signed-off-by: Daniel Wagner <wagi@monom.org> --- @@ -9,9 +9,9 @@ Signed-off-by: Daniel Wagner <wagi@monom.org> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-rt b/localversion-rt -index 1199ebade17b..2e5c2a548290 100644 +index 1199ebade17b..9d0cfbcac7f4 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt16 -+-rt123 ++-rt125 diff --git a/debian/patches-rt/series b/debian/patches-rt/series index b5d79a286..e9fd48c8f 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -350,5 +350,5 @@ 0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch 0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch 0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch -0353-Linux-4.19.280-rt123-REBASE.patch +0353-Linux-4.19.284-rt125-REBASE.patch netpoll-fix-netif_local_xmit_active-for-4.19-rt.patch diff --git a/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch b/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch deleted file mode 100644 index cb83e5ee8..000000000 --- a/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Ben Hutchings <ben@decadent.org.uk> -Date: Sat, 20 Nov 2010 02:24:55 +0000 -Subject: [PATCH] decnet: Disable auto-loading as mitigation against local exploits -Forwarded: not-needed - -Recent review has revealed several bugs in obscure protocol -implementations that can be exploited by local users for denial of -service or privilege escalation. We can mitigate the effect of any -remaining vulnerabilities in such protocols by preventing unprivileged -users from loading the modules, so that they are only exploitable on -systems where the administrator has chosen to load the protocol. - -The 'decnet' protocol is unmaintained and of mostly historical -interest, and the user-space support package 'dnet-common' loads the -module explicitly. Therefore disable auto-loading. - -Signed-off-by: Ben Hutchings <ben@decadent.org.uk> ---- - net/decnet/af_decnet.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -Index: linux/net/decnet/af_decnet.c -=================================================================== ---- linux.orig/net/decnet/af_decnet.c -+++ linux/net/decnet/af_decnet.c -@@ -2346,7 +2346,7 @@ static const struct proto_ops dn_proto_o - MODULE_DESCRIPTION("The Linux DECnet Network Protocol"); - MODULE_AUTHOR("Linux DECnet Project Team"); - MODULE_LICENSE("GPL"); --MODULE_ALIAS_NETPROTO(PF_DECnet); -+/* MODULE_ALIAS_NETPROTO(PF_DECnet); */ - - static const char banner[] __initconst = KERN_INFO - "NET4: DECnet for Linux: V.2.5.68s (C) 1995-2003 Linux DECnet Project Team\n"; diff --git a/debian/patches/series b/debian/patches/series index 277514ee7..d16ae1e5e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -38,7 +38,6 @@ features/all/aufs4/aufs4-standalone.patch # Change some defaults for security reasons debian/af_802154-Disable-auto-loading-as-mitigation-against.patch debian/rds-Disable-auto-loading-as-mitigation-against-local.patch -debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch debian/fs-enable-link-security-restrictions-by-default.patch |