diff --git a/debian/changelog b/debian/changelog index 68859cb88..83f6f32ee 100644 --- a/debian/changelog +++ b/debian/changelog @@ -48,6 +48,18 @@ linux (3.2.23-1) UNRELEASED; urgency=low * tcp: drop SYN+FIN messages * fifo: Do not restart open() if it already found a partner (Closes: #678852) * [rt] linux-source: Include -rt version suffix + * [rt] Update to 3.2.23-rt37: + - Latency histogramms: Cope with backwards running local trace clock + - Latency histograms: Adjust timer, if already elapsed when programmed + - Disable RT_GROUP_SCHED in PREEMPT_RT_FULL + - Latency histograms: Detect another yet overlooked sharedprio condition + - slab: Prevent local lock deadlock + - fs, jbd: pull your plug when waiting for space + - perf: Make swevent hrtimer run in irq instead of softirq + - cpu/rt: Rework cpu down for PREEMPT_RT + - cpu/rt: Fix cpu_hotplug variable initialization + - workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse + - workqueue: Revert workqueue: Fix cpuhotplug trainwreck [ Arnaud Patard ] * [mipsel] add r8169 to d-i udeb. diff --git a/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch b/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch index 58a85edb3..9eefa6e0d 100644 --- a/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch +++ b/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch @@ -1,7 +1,7 @@ -From 4c22f54ece56578f383a339303b225f12c174d7b Mon Sep 17 00:00:00 2001 +From df8f6206fd5fb81d73536194733e346c58ecb8fd Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 6 Jun 2012 17:07:34 -0400 -Subject: [PATCH 001/271] Revert "workqueue: skip nr_running sanity check in +Subject: [PATCH 001/282] Revert "workqueue: skip nr_running sanity check in worker_enter_idle() if trustee is active" This reverts commit 5d79c6f64a904afc92a329f80abe693e3ae105fe. diff --git a/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch b/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch index 3c022da9f..9dfab7621 100644 --- a/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch +++ b/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch @@ -1,7 +1,7 @@ -From 900585567b315bf91186129c62f925f889e01697 Mon Sep 17 00:00:00 2001 +From e779dd5c5090622cff55f83eeaf97519ee520ef2 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Mon, 26 Sep 2011 12:19:11 +0200 -Subject: [PATCH 002/271] x86: Call idle notifier after irq_enter() +Subject: [PATCH 002/282] x86: Call idle notifier after irq_enter() Interrupts notify the idle exit state before calling irq_enter(). But the notifier code calls rcu_read_lock() and this is not allowed while diff --git a/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch b/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch index 8304ec927..a1e2d4781 100644 --- a/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch +++ b/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch @@ -1,7 +1,7 @@ -From 9046045fb37e8eb8a4d897ff2fec5a7a7dc4d72c Mon Sep 17 00:00:00 2001 +From c51107c1d3a916cb1c5bad8f9f1964100648de80 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 28 Nov 2011 19:51:51 +0100 -Subject: [PATCH 003/271] slab, lockdep: Annotate all slab caches +Subject: [PATCH 003/282] slab, lockdep: Annotate all slab caches Currently we only annotate the kmalloc caches, annotate all of them. diff --git a/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch b/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch index 785493806..3caa4d241 100644 --- a/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch +++ b/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch @@ -1,7 +1,7 @@ -From 3695633b62fc9f84b159e9d6012b864a0c7ef1f0 Mon Sep 17 00:00:00 2001 +From aadc4017f6542080912118dfb9a623cb2c1b2d63 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 17 Mar 2011 11:02:15 +0100 -Subject: [PATCH 004/271] x86: kprobes: Remove remove bogus preempt_enable +Subject: [PATCH 004/282] x86: kprobes: Remove remove bogus preempt_enable The CONFIG_PREEMPT=n section of setup_singlestep() contains: diff --git a/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch b/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch index 3943ab6f0..cdef5a495 100644 --- a/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch +++ b/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch @@ -1,7 +1,7 @@ -From 2d135294fadff1032a91fdddeb9873411e52d183 Mon Sep 17 00:00:00 2001 +From b6576b10d4b78f0dbd01e69b5b6bcefa4f233d84 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 30 Sep 2011 20:03:37 +0200 -Subject: [PATCH 005/271] x86: hpet: Disable MSI on Lenovo W510 +Subject: [PATCH 005/282] x86: hpet: Disable MSI on Lenovo W510 MSI based per cpu timers lose interrupts when intel_idle() is enabled - independent of the c-state. With idle=poll the problem cannot be diff --git a/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch b/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch index 6c2039911..94c3ddfec 100644 --- a/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch +++ b/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch @@ -1,7 +1,7 @@ -From 40a6cbf1c96ee87bba70d50f356b37983c3902ff Mon Sep 17 00:00:00 2001 +From 62cddd5874f53444b20c8614191387f0e4da0be0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 19:47:02 +0200 -Subject: [PATCH 006/271] block: Shorten interrupt disabled regions +Subject: [PATCH 006/282] block: Shorten interrupt disabled regions Moving the blk_sched_flush_plug() call out of the interrupt/preempt disabled region in the scheduler allows us to replace diff --git a/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch b/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch index 896aa9717..238039734 100644 --- a/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch +++ b/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch @@ -1,7 +1,7 @@ -From 900d25e3ff2c56a0d9c1d3261ea34fa0c0e7a5e5 Mon Sep 17 00:00:00 2001 +From edfc408c63ce9889f9f998383af0e16e8cf3793c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 19:47:03 +0200 -Subject: [PATCH 007/271] sched: Distangle worker accounting from rq-%3Elock +Subject: [PATCH 007/282] sched: Distangle worker accounting from rq-%3Elock 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 @@ -30,7 +30,7 @@ Signed-off-by: Thomas Gleixner 3 files changed, 47 insertions(+), 91 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 299f55c..1ae1cab 100644 +index 576a27f..9265088 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2644,10 +2644,6 @@ static void ttwu_activate(struct rq *rq, struct task_struct *p, int en_flags) diff --git a/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch b/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch index 3e29b807f..5df5d50d4 100644 --- a/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch +++ b/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch @@ -1,7 +1,7 @@ -From 60b31cf01f01e833d9d13f82b0410011c3137e52 Mon Sep 17 00:00:00 2001 +From 274242382e55c6ccb013869fbfbb5fda0cd70357 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 21:32:10 +0200 -Subject: [PATCH 008/271] mips-enable-interrupts-in-signal.patch +Subject: [PATCH 008/282] mips-enable-interrupts-in-signal.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch b/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch index 549502a2e..6c4f2aa7e 100644 --- a/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch +++ b/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch @@ -1,7 +1,7 @@ -From 64fa2ef832c394f9b6ea62be1c307b0950f12917 Mon Sep 17 00:00:00 2001 +From 9df8de9aa343f8bc114a45488268597963386bf7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Jul 2011 16:27:13 +0200 -Subject: [PATCH 009/271] arm-enable-interrupts-in-signal-code.patch +Subject: [PATCH 009/282] arm-enable-interrupts-in-signal-code.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch b/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch index 882dd2706..166c1f113 100644 --- a/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch +++ b/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch @@ -1,7 +1,7 @@ -From a601bdd4056e53aca545ae3e402ed894ca8efc84 Mon Sep 17 00:00:00 2001 +From 04066457b0b4a8e13ca83290bb719d62ffb069f6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Jul 2011 12:09:54 +0200 -Subject: [PATCH 010/271] powerpc: 85xx: Mark cascade irq IRQF_NO_THREAD +Subject: [PATCH 010/282] powerpc: 85xx: Mark cascade irq IRQF_NO_THREAD Cascade interrupt must run in hard interrupt context. diff --git a/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch b/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch index dee261094..27b1aa496 100644 --- a/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch +++ b/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch @@ -1,7 +1,7 @@ -From 9b13e1a92f24640cd12d93825ce6fbba59fd281e Mon Sep 17 00:00:00 2001 +From 85b69fe3ede77b0b6ffbf5c48b6073c11e4c9628 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 5 Oct 2011 14:11:24 +0200 -Subject: [PATCH 011/271] powerpc: wsp: Mark opb cascade handler +Subject: [PATCH 011/282] powerpc: wsp: Mark opb cascade handler IRQF_NO_THREAD Cascade handlers must run in hard interrupt context. diff --git a/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch b/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch index 3bad16096..a518e3e6d 100644 --- a/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch +++ b/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch @@ -1,7 +1,7 @@ -From 97692017f0414cc04e79d3e2b83f0066f8d2abbe Mon Sep 17 00:00:00 2001 +From d79419ba7414be1de16b767776b6559604a2ec83 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 5 Oct 2011 14:00:26 +0200 -Subject: [PATCH 012/271] powerpc: Mark IPI interrupts IRQF_NO_THREAD +Subject: [PATCH 012/282] powerpc: Mark IPI interrupts IRQF_NO_THREAD IPI handlers cannot be threaded. Remove the obsolete IRQF_DISABLED flag (see commit e58aa3d2) while at it. diff --git a/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch b/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch index 376b7d92f..a732a897b 100644 --- a/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch +++ b/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch @@ -1,12 +1,13 @@ -From 52877abae7b0b37f748c73b43445201e969a9d16 Mon Sep 17 00:00:00 2001 +From 94b3babc05617f3a97c28cccb43dcc8e76c474a8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Jul 2011 13:16:24 +0200 -Subject: [PATCH 013/271] powerpc: Allow irq threading +Subject: [PATCH 013/282] powerpc: Allow irq threading All interrupts which must be non threaded are marked IRQF_NO_THREAD. So it's safe to allow force threaded handlers. Signed-off-by: Thomas Gleixner +[bwh: Adjust to apply after 'net: Drop NET dependency from HAVE_BPF_JIT'] --- arch/powerpc/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch b/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch index 085d89988..6d8a66cc8 100644 --- a/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch +++ b/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch @@ -1,7 +1,7 @@ -From 685c46e56e613212e1d7ded498903481e67fea27 Mon Sep 17 00:00:00 2001 +From 1893db2f433c1cf3248fc5d04c737d8b9c3a8ba8 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 18 Oct 2011 22:03:48 +0200 -Subject: [PATCH 014/271] sched: Keep period timer ticking when throttling +Subject: [PATCH 014/282] sched: Keep period timer ticking when throttling active When a runqueue is throttled we cannot disable the period timer diff --git a/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch b/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch index fbb4f58bc..ae1a11c6b 100644 --- a/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch +++ b/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch @@ -1,7 +1,7 @@ -From 660afa7a661711f93bd763d76c19950ad2fca2c7 Mon Sep 17 00:00:00 2001 +From a1793342c661b599d1ac6b004faa3b84cec58bab Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 18 Oct 2011 22:03:48 +0200 -Subject: [PATCH 015/271] sched: Do not throttle due to PI boosting +Subject: [PATCH 015/282] sched: Do not throttle due to PI boosting When a runqueue has rt_runtime_us = 0 then the only way it can accumulate rt_time is via PI boosting. Though that causes the runqueue diff --git a/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch b/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch index 901deb1a6..d17166c47 100644 --- a/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch +++ b/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch @@ -1,7 +1,7 @@ -From 438377b97518d805a37f8ea78ea79fa46a6cc2fb Mon Sep 17 00:00:00 2001 +From aacf7a45f6bba6c2406139679498bb6c28e5a7e3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Feb 2012 19:06:50 +0100 -Subject: [PATCH 016/271] time: Remove bogus comments +Subject: [PATCH 016/282] time: Remove bogus comments There is no global irq lock which makes a syscall magically SMP safe. Remove the outdated comment concerning do_settimeofday() as diff --git a/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch b/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch index 1e0f6c308..362dfc1af 100644 --- a/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch +++ b/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch @@ -1,7 +1,7 @@ -From 84abd0341c534a1e3d63580128b588da87b035ab Mon Sep 17 00:00:00 2001 +From 2cf94f15307db51a842030f33d189750a44a77f5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Feb 2012 19:10:46 +0100 -Subject: [PATCH 017/271] x86: vdso: Remove bogus locking in +Subject: [PATCH 017/282] x86: vdso: Remove bogus locking in update_vsyscall_tz() Changing the sequence count in update_vsyscall_tz() is completely diff --git a/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch b/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch index 372c10009..a52a0e257 100644 --- a/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch +++ b/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch @@ -1,7 +1,7 @@ -From 5a913c66115a6890982a59ee0c90da82acb1e8cd Mon Sep 17 00:00:00 2001 +From ba2e176229c72d7a64ca08be5e7e5f14d039b2db Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Feb 2012 18:24:07 +0100 -Subject: [PATCH 018/271] x86: vdso: Use seqcount instead of seqlock +Subject: [PATCH 018/282] x86: vdso: Use seqcount instead of seqlock The update of the vdso data happens under xtime_lock, so adding a nested lock is pointless. Just use a seqcount to sync the readers. diff --git a/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch b/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch index 88c09ae0d..735ab4c55 100644 --- a/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch +++ b/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch @@ -1,7 +1,7 @@ -From 1057b762d0b9296e9df793ce4801082b7aa52c42 Mon Sep 17 00:00:00 2001 +From 8f76333e428ea32fd34348568c3660699a9c38b0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Feb 2012 18:33:08 +0100 -Subject: [PATCH 019/271] ia64: vsyscall: Use seqcount instead of seqlock +Subject: [PATCH 019/282] ia64: vsyscall: Use seqcount instead of seqlock The update of the vdso data happens under xtime_lock, so adding a nested lock is pointless. Just use a seqcount to sync the readers. diff --git a/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch b/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch index cb5cdc9e8..83310a501 100644 --- a/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch +++ b/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch @@ -1,7 +1,7 @@ -From ec65872a2ba08b65113cde1a9c65f3243ca6a37f Mon Sep 17 00:00:00 2001 +From 2a7c481c816dae54aca417bfe13b43f555fa9be1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Jul 2011 18:38:22 +0200 -Subject: [PATCH 020/271] seqlock: Remove unused functions +Subject: [PATCH 020/282] seqlock: Remove unused functions Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch b/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch index 4a9f705e8..6ef3448c4 100644 --- a/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch +++ b/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch @@ -1,7 +1,7 @@ -From f6397ccda02ee89e9aeb1abb6f0324a7021c127b Mon Sep 17 00:00:00 2001 +From d5a1cbf4a2056b0b1d272e1fa41737eb3e369b88 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Jul 2011 18:40:26 +0200 -Subject: [PATCH 021/271] seqlock: Use seqcount +Subject: [PATCH 021/282] seqlock: Use seqcount No point in having different implementations for the same thing. diff --git a/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch b/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch index 3f6d81017..047a19212 100644 --- a/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch +++ b/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch @@ -1,7 +1,7 @@ -From 44ba97108b169858d0a5d8e2090a5a600786e5e1 Mon Sep 17 00:00:00 2001 +From 81b4f3af5bb25586b58c3893d824e5807be76e89 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 15 Mar 2012 18:39:40 +0000 -Subject: [PATCH 022/271] vfs: fs_struct: Move code out of seqcount write +Subject: [PATCH 022/282] vfs: fs_struct: Move code out of seqcount write sections RT cannot disable preemption in the seqcount write sections due to diff --git a/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch b/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch index 5d66d2cac..ca3144c80 100644 --- a/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch +++ b/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch @@ -1,7 +1,7 @@ -From 115138258d9efb007f1092d313c3717ec63363d1 Mon Sep 17 00:00:00 2001 +From a0b5d92787bc37be58a70439b4399f0014840c3b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Mar 2012 15:14:06 +0100 -Subject: [PATCH 023/271] timekeeping: Split xtime_lock +Subject: [PATCH 023/282] timekeeping: Split xtime_lock xtime_lock is going to be split apart in mainline, so we can shorten the seqcount protected regions and avoid updating seqcount in some diff --git a/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch b/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch index d0fbc73ad..170938fb6 100644 --- a/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch +++ b/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch @@ -1,7 +1,7 @@ -From a876b5721192cd2f70f4422d06bad3c617a3dff4 Mon Sep 17 00:00:00 2001 +From 0d4c84bb31993d503d6e72b50c187bff31868454 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 7 Dec 2011 12:48:42 +0100 -Subject: [PATCH 024/271] intel_idle: Convert i7300_idle_lock to raw spinlock +Subject: [PATCH 024/282] intel_idle: Convert i7300_idle_lock to raw spinlock 24 core Intel box's first exposure to 3.0.12-rt30-rc3 didn't go well. diff --git a/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch b/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch index 798b7a0fc..f2802f99f 100644 --- a/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch +++ b/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch @@ -1,7 +1,7 @@ -From 54f432df89e52aea8483514b2f07be4d93567a62 Mon Sep 17 00:00:00 2001 +From 01623084ff8da3904d8d101224f9daaa35f633d5 Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Thu, 17 Nov 2011 07:49:25 +0100 -Subject: [PATCH 025/271] mm: memcg: shorten preempt-disabled section around +Subject: [PATCH 025/282] mm: memcg: shorten preempt-disabled section around event checks Only the ratelimit checks themselves have to run with preemption diff --git a/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch b/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch index aea08085e..ae39c4f7f 100644 --- a/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch +++ b/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch @@ -1,7 +1,7 @@ -From aaecb62746d261560f56ae6d81be3b5e8bb35c0e Mon Sep 17 00:00:00 2001 +From 481a66cf0672618cc8ed0cbc13cb2fccde74f726 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 29 Sep 2011 12:24:30 -0500 -Subject: [PATCH 026/271] tracing: Account for preempt off in +Subject: [PATCH 026/282] tracing: Account for preempt off in preempt_schedule() The preempt_schedule() uses the preempt_disable_notrace() version @@ -28,7 +28,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 9 insertions(+) diff --git a/kernel/sched.c b/kernel/sched.c -index 1ae1cab..3d84a43 100644 +index 9265088..24d3ce6 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4519,7 +4519,16 @@ asmlinkage void __sched notrace preempt_schedule(void) diff --git a/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch b/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch index 306f62ba3..37f56ea5c 100644 --- a/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch +++ b/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch @@ -1,7 +1,7 @@ -From 502488c14bd0005a39f259de1bf04aa941d7eccd Mon Sep 17 00:00:00 2001 +From 69d6f6891fe67ea6b7b9b71102ec1b3b2d98a494 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 21 Sep 2011 19:57:12 +0200 -Subject: [PATCH 027/271] signal-revert-ptrace-preempt-magic.patch +Subject: [PATCH 027/282] signal-revert-ptrace-preempt-magic.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch b/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch index 9ece1c7ae..1e6d7a531 100644 --- a/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch +++ b/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch @@ -1,7 +1,7 @@ -From b86d034533c72b2690058c945da9992fc9317cd6 Mon Sep 17 00:00:00 2001 +From 71e5e2ebb0a3ba921ca19597d84e5b6a251828a6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 16 Mar 2011 14:45:31 +0100 -Subject: [PATCH 028/271] arm: Mark pmu interupt IRQF_NO_THREAD +Subject: [PATCH 028/282] arm: Mark pmu interupt IRQF_NO_THREAD PMU interrupt must not be threaded. Remove IRQF_DISABLED while at it as we run all handlers with interrupts disabled anyway. diff --git a/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch b/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch index 3e4aeec8f..ee0eb7df3 100644 --- a/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch +++ b/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch @@ -1,12 +1,13 @@ -From 338a0c58f532ac2c08911c3b36a007f693b66031 Mon Sep 17 00:00:00 2001 +From 9976b6cb61e9ee39c598c0b7e94265a6e437d47a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Jul 2011 13:15:20 +0200 -Subject: [PATCH 029/271] arm: Allow forced irq threading +Subject: [PATCH 029/282] arm: Allow forced irq threading All timer interrupts and the perf interrupt are marked NO_THREAD, so its safe to allow forced interrupt threading. Signed-off-by: Thomas Gleixner +[bwh: Adjust context to apply after ARM BPF_JIT backport] --- arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch b/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch index 8ac9006e5..f6c60bcd5 100644 --- a/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch +++ b/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch @@ -1,7 +1,7 @@ -From cb1d3c15bd97ee10110e601ac0decb2ce6e271e2 Mon Sep 17 00:00:00 2001 +From 737d2b3d4598d1d990c769c861ab82e47c56b01f Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Mon, 19 Sep 2011 14:51:14 -0700 -Subject: [PATCH 030/271] preempt-rt: Convert arm boot_lock to raw +Subject: [PATCH 030/282] preempt-rt: Convert arm boot_lock to raw 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/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch b/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch index 7cd55efa4..7577b37b4 100644 --- a/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch +++ b/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch @@ -1,7 +1,7 @@ -From 22acbdee13dbc479e9326159d9498348c59c2dea Mon Sep 17 00:00:00 2001 +From fc45413dddb8b0b912e1cf860840bb9f6163459e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 21 Mar 2011 12:09:35 +0100 -Subject: [PATCH 031/271] sched: Create schedule_preempt_disabled() +Subject: [PATCH 031/282] sched: Create schedule_preempt_disabled() Get rid of the ever repeating: @@ -28,7 +28,7 @@ index 1c4f3e9..9897fe6 100644 struct nsproxy; diff --git a/kernel/sched.c b/kernel/sched.c -index 3d84a43..342114c 100644 +index 24d3ce6..9be2b0e 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4455,6 +4455,18 @@ asmlinkage void __sched schedule(void) diff --git a/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch b/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch index 358038ae2..35a55d99d 100644 --- a/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch +++ b/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch @@ -1,7 +1,7 @@ -From 698b029ee2447b5ce48a584dc662c91ad690c385 Mon Sep 17 00:00:00 2001 +From b59fa84e861a863651fe170a2b7f1b10d8b64d75 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 21 Mar 2011 12:33:18 +0100 -Subject: [PATCH 032/271] sched: Use schedule_preempt_disabled() +Subject: [PATCH 032/282] sched: Use schedule_preempt_disabled() Coccinelle based conversion. diff --git a/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch b/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch index 7aeb5629e..9db2c8fa0 100644 --- a/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch +++ b/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch @@ -1,7 +1,7 @@ -From de6b9fdc021f743053c644619e35a2975762f3a8 Mon Sep 17 00:00:00 2001 +From 706fd306d5dd5bff323a372e21eb279c552c401f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:44 -0500 -Subject: [PATCH 033/271] signals: Do not wakeup self +Subject: [PATCH 033/282] signals: Do not wakeup self Signals which are delivered by current to current can do without waking up current :) diff --git a/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch b/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch index 472bd8dd8..f0bb1a483 100644 --- a/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch +++ b/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch @@ -1,7 +1,7 @@ -From de1ed77114140246003727012a0fcbe2ce687b82 Mon Sep 17 00:00:00 2001 +From 692aa380692e9ed146c1c0af67d5fd3617c73cee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:29:20 -0500 -Subject: [PATCH 034/271] posix-timers: Prevent broadcast signals +Subject: [PATCH 034/282] posix-timers: Prevent broadcast signals Posix timers should not send broadcast signals and kernel only signals. Prevent it. diff --git a/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch index e47a26fce..29a7cdc07 100644 --- a/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,7 +1,7 @@ -From bff1f10262b172489f000c8913d4944143fa9e07 Mon Sep 17 00:00:00 2001 +From 22663329dd88d5ef844c5a53f09cc5697b8a3608 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:56 -0500 -Subject: [PATCH 035/271] signals: Allow rt tasks to cache one sigqueue struct +Subject: [PATCH 035/282] signals: Allow rt tasks to cache one sigqueue struct To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. diff --git a/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch index fac18d955..95cdcaf8e 100644 --- a/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch +++ b/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch @@ -1,7 +1,7 @@ -From dc137232bdae1d60e8b5ad7f2715ab1c331955be Mon Sep 17 00:00:00 2001 +From 51f5cd3d4c8eea0a72478d6334dcc1cf7fd50bfe Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Tue, 10 Apr 2012 14:33:53 -0400 -Subject: [PATCH 036/271] signal/x86: Delay calling signals in atomic +Subject: [PATCH 036/282] signal/x86: Delay calling signals in atomic 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/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch b/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch index 50643c6a3..145d492ed 100644 --- a/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch +++ b/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch @@ -1,7 +1,7 @@ -From 1ee386247ad5d93f71f7ddfe723a117db72b3017 Mon Sep 17 00:00:00 2001 +From 1463a7be1c84f98deced7c275c225f5a624435aa Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:30 -0500 -Subject: [PATCH 037/271] generic: Use raw local irq variant for generic +Subject: [PATCH 037/282] generic: Use raw local irq variant for generic cmpxchg No point in tracing those. diff --git a/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch b/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch index eb649bc47..91dd55467 100644 --- a/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch +++ b/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch @@ -1,7 +1,7 @@ -From 03704a06f34554f4b02554848ddc4f536c428c61 Mon Sep 17 00:00:00 2001 +From 23bee4ce4cad995ff398b8c4a69c96d2e602e49d Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:30 -0500 -Subject: [PATCH 038/271] drivers: random: Reduce preempt disabled region +Subject: [PATCH 038/282] drivers: random: Reduce preempt disabled region No need to keep preemption disabled across the whole function. diff --git a/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch b/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch index 07aa66f4b..17a1ae75a 100644 --- a/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch +++ b/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch @@ -1,7 +1,7 @@ -From b6eb47cbeb06aa58faec4bc43b9a8b3e99252562 Mon Sep 17 00:00:00 2001 +From 772049eeffd011595163efb489be9dbeb509585f Mon Sep 17 00:00:00 2001 From: Benedikt Spranger Date: Sat, 6 Mar 2010 17:47:10 +0100 -Subject: [PATCH 039/271] ARM: AT91: PIT: Remove irq handler when clock event +Subject: [PATCH 039/282] ARM: AT91: PIT: Remove irq handler when clock event is unused Setup and remove the interrupt handler in clock event mode selection. diff --git a/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch index 9537e42ee..3ef8084f9 100644 --- a/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch +++ b/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch @@ -1,7 +1,7 @@ -From 310f36877b76b0b152d964886977d6773125ac69 Mon Sep 17 00:00:00 2001 +From c663f3c77a47b494829bba21208b32b7468e10a1 Mon Sep 17 00:00:00 2001 From: Benedikt Spranger Date: Mon, 8 Mar 2010 18:57:04 +0100 -Subject: [PATCH 040/271] clocksource: TCLIB: Allow higher clock rates for +Subject: [PATCH 040/282] clocksource: TCLIB: Allow higher clock rates for clock events As default the TCLIB uses the 32KiHz base clock rate for clock events. diff --git a/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch b/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch index 9bb8ff708..3f6b207fb 100644 --- a/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch +++ b/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch @@ -1,7 +1,7 @@ -From 794562a034d7f42a65c216ed8e9b1de35c93121d Mon Sep 17 00:00:00 2001 +From 43d8e50128290b6f176551cbb4e0c914a41483fa Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:18 -0500 -Subject: [PATCH 041/271] drivers/net: tulip_remove_one needs to call +Subject: [PATCH 041/282] drivers/net: tulip_remove_one needs to call pci_disable_device() Otherwise the device is not completely shut down. diff --git a/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch b/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch index 61364bc1a..71e127351 100644 --- a/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch +++ b/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch @@ -1,7 +1,7 @@ -From 06e38eda0a63fb06223cd7e01cac0aecde279633 Mon Sep 17 00:00:00 2001 +From 44ce96bb095262405acdaf6273702bcae65a7a5c Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:24 -0500 -Subject: [PATCH 042/271] drivers/net: Use disable_irq_nosync() in 8139too +Subject: [PATCH 042/282] drivers/net: Use disable_irq_nosync() in 8139too Use disable_irq_nosync() instead of disable_irq() as this might be called in atomic context with netpoll. diff --git a/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch b/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch index 986f8c3a9..ea4cb462f 100644 --- a/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch +++ b/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch @@ -1,7 +1,7 @@ -From fd24967f0994bb38ad62f23df19a5f77f02fd62b Mon Sep 17 00:00:00 2001 +From b108d0a78f44b51092f1832a7186f5f6e24e62ec Mon Sep 17 00:00:00 2001 From: Darren Hart Date: Tue, 18 May 2010 14:33:07 -0700 -Subject: [PATCH 043/271] drivers: net: ehea: Make rx irq handler non-threaded +Subject: [PATCH 043/282] drivers: net: ehea: Make rx irq handler non-threaded (IRQF_NO_THREAD) The underlying hardware is edge triggered but presented by XICS as level diff --git a/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch b/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch index cd18ea23e..742c64a5e 100644 --- a/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch +++ b/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch @@ -1,7 +1,7 @@ -From acbfdf1bf249cd99effa66f77ca4640aa31b1700 Mon Sep 17 00:00:00 2001 +From cab3b57256443dd4f0a2abb34385d5628b5c64f8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 17 Nov 2009 12:02:43 +0100 -Subject: [PATCH 044/271] drivers: net: at91_ether: Make mdio protection -rt +Subject: [PATCH 044/282] drivers: net: at91_ether: Make mdio protection -rt safe Neither the phy interrupt nor the timer callback which updates the diff --git a/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch b/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch index b7b4b4eef..890de19ac 100644 --- a/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch +++ b/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch @@ -1,7 +1,7 @@ -From 699b55f8b10c2c1ecf374558e8e6f8092580a972 Mon Sep 17 00:00:00 2001 +From 2f48b271a36fd8ae61b91bebf615b0012edca4e7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 21 Mar 2011 13:32:17 +0100 -Subject: [PATCH 045/271] preempt-mark-legitimated-no-resched-sites.patch +Subject: [PATCH 045/282] preempt-mark-legitimated-no-resched-sites.patch Signed-off-by: Thomas Gleixner --- @@ -67,7 +67,7 @@ index 58969b2..227b0f5 100644 #define preempt_enable() do { } while (0) diff --git a/kernel/sched.c b/kernel/sched.c -index 342114c..b432fe0 100644 +index 9be2b0e..cd07a59 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4414,7 +4414,7 @@ need_resched: diff --git a/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch b/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch index 566ec470d..1f4648d90 100644 --- a/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch +++ b/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch @@ -1,7 +1,7 @@ -From 58b1e10ff1e4fdcfe8e39e580f9fd994409bbc68 Mon Sep 17 00:00:00 2001 +From 7615c02d701ec4b9eea84515e036bd2b599210a5 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:37 -0500 -Subject: [PATCH 046/271] mm: Prepare decoupling the page fault disabling +Subject: [PATCH 046/282] mm: Prepare decoupling the page fault disabling logic Add a pagefault_disabled variable to task_struct to allow decoupling diff --git a/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch b/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch index ef52a9275..e0213871d 100644 --- a/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch +++ b/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch @@ -1,7 +1,7 @@ -From 3395c3e882ade6026f2cc551f218cc5ce652c1aa Mon Sep 17 00:00:00 2001 +From fbf8000eb917b81ecc2d88a15e0b08f5037455fc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 17 Mar 2011 11:32:28 +0100 -Subject: [PATCH 047/271] mm: Fixup all fault handlers to check +Subject: [PATCH 047/282] mm: Fixup all fault handlers to check current->pagefault_disable Necessary for decoupling pagefault disable from preempt count. diff --git a/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch b/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch index 0a0a7ad1d..68c13ff66 100644 --- a/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch +++ b/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch @@ -1,7 +1,7 @@ -From 6c7041e9178d633a408a67c36ec164ed4fc07345 Mon Sep 17 00:00:00 2001 +From 78dc9bb9da11e3720c1ec2a8837fd8c9683fc19b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 11 Aug 2011 15:31:31 +0200 -Subject: [PATCH 048/271] mm: pagefault_disabled() +Subject: [PATCH 048/282] mm: pagefault_disabled() Wrap the test for pagefault_disabled() into a helper, this allows us to remove the need for current->pagefault_disabled on !-rt kernels. diff --git a/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch b/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch index 15feb7e17..6b49921e0 100644 --- a/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch +++ b/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch @@ -1,7 +1,7 @@ -From 8621289a98ce2a995a58d82094bd45564dfd6313 Mon Sep 17 00:00:00 2001 +From e27a4556f56fb713cc29af31d59d6525a71fd3ed Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 5 Aug 2011 17:16:58 +0200 -Subject: [PATCH 049/271] mm: raw_pagefault_disable +Subject: [PATCH 049/282] mm: raw_pagefault_disable Adding migrate_disable() to pagefault_disable() to preserve the per-cpu thing for kmap_atomic might not have been the best of choices. diff --git a/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch b/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch index cd1343bec..fcd99aced 100644 --- a/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch +++ b/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch @@ -1,7 +1,7 @@ -From 1cf2385c24c1a810952c82774d7603beb5788c3a Mon Sep 17 00:00:00 2001 +From fa9d4ffc8aacc17767dda0adb318f21c15caa0dc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 17 Jun 2011 18:56:24 +0200 -Subject: [PATCH 050/271] filemap-fix-up.patch +Subject: [PATCH 050/282] filemap-fix-up.patch Signed-off-by: Thomas Gleixner Wrecked-off-by: Peter Zijlstra diff --git a/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch b/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch index f97cfa494..228b1a7a8 100644 --- a/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch +++ b/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch @@ -1,7 +1,7 @@ -From 39924d44ecc1c17b703cbb7e0437dfc1e3cd739b Mon Sep 17 00:00:00 2001 +From f7459d07318f682ab2718c16381850151938d439 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 25 Jul 2009 22:06:27 +0200 -Subject: [PATCH 051/271] mm: Remove preempt count from pagefault +Subject: [PATCH 051/282] mm: Remove preempt count from pagefault disable/enable Now that all users are cleaned up, we can remove the preemption count. diff --git a/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch b/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch index 90feac323..ea8237f80 100644 --- a/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch +++ b/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch @@ -1,7 +1,7 @@ -From 076ac4ad95af7d86632b44189bd93e01ade134a7 Mon Sep 17 00:00:00 2001 +From 1258748aa11e6d483bcd1d697725f48be5915d05 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:25 -0500 -Subject: [PATCH 052/271] x86: highmem: Replace BUG_ON by WARN_ON +Subject: [PATCH 052/282] x86: highmem: Replace BUG_ON by WARN_ON The machine might survive that problem and be at least in a state which allows us to get more information about the problem. diff --git a/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch b/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch index 7ef8ffbdf..fef1e33bc 100644 --- a/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch +++ b/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch @@ -1,7 +1,7 @@ -From f9829f3dee7e6397782981ce38ea6eea429583f5 Mon Sep 17 00:00:00 2001 +From 078b6c93d66f27b476c95d7fc1a2355e928777f0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 15 Jul 2010 10:29:00 +0200 -Subject: [PATCH 053/271] suspend: Prevent might sleep splats +Subject: [PATCH 053/282] suspend: Prevent might sleep splats timekeeping suspend/resume calls read_persistant_clock() which takes rtc_lock. That results in might sleep warnings because at that point diff --git a/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch b/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch index d8a11d655..86ab0d6d3 100644 --- a/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch +++ b/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch @@ -1,7 +1,7 @@ -From 74894ff87857094267ea265d8e70a93fd2891d9c Mon Sep 17 00:00:00 2001 +From d0ce0d14fafba01db2056a5c0fcfa838ed34e6ee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 13 Aug 2009 09:04:10 +0200 -Subject: [PATCH 054/271] OF: Fixup resursive locking code paths +Subject: [PATCH 054/282] OF: Fixup resursive locking code paths There is no real reason to use a rwlock for devtree_lock. It even could be a mutex, but unfortunately it's locked from cpu hotplug diff --git a/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch b/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch index 797785e4a..262dca865 100644 --- a/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch +++ b/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch @@ -1,7 +1,7 @@ -From 8252ed8e9ef0e6395bc88bd3726f9b4412864a8b Mon Sep 17 00:00:00 2001 +From d154b3c810bbe4485d3cc23193a75fbecaf2726b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 21 Mar 2011 14:35:34 +0100 -Subject: [PATCH 055/271] of-convert-devtree-lock.patch +Subject: [PATCH 055/282] of-convert-devtree-lock.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch b/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch index 42ec370fb..61556ad33 100644 --- a/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch +++ b/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch @@ -1,7 +1,7 @@ -From 06226175ba2ac281ca10d0db0c268975870dd6d8 Mon Sep 17 00:00:00 2001 +From 4d745bfbec66adc7ae9337aabff613d849d8da21 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 21 Jun 2011 11:22:36 +0200 -Subject: [PATCH 056/271] list-add-list-last-entry.patch +Subject: [PATCH 056/282] list-add-list-last-entry.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch b/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch index 37c2770b3..6e28b8e00 100644 --- a/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch +++ b/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch @@ -1,7 +1,7 @@ -From 423684113807a90ccab3d5dd79ede0f1d24f5334 Mon Sep 17 00:00:00 2001 +From 8021899f80982b92a331dff238dbf25e5e969899 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 21 Jun 2011 11:24:35 +0200 -Subject: [PATCH 057/271] mm-page-alloc-use-list-last-entry.patch +Subject: [PATCH 057/282] mm-page-alloc-use-list-last-entry.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch b/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch index 2d086e510..5ed15c470 100644 --- a/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch +++ b/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch @@ -1,7 +1,7 @@ -From 614dc26581c4f193c97126e03adbd16c68502722 Mon Sep 17 00:00:00 2001 +From 894cd71ae35e2b9734b63eed62d811719e7907b0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 20 Jun 2011 10:42:04 +0200 -Subject: [PATCH 058/271] mm-slab-move-debug-out.patch +Subject: [PATCH 058/282] mm-slab-move-debug-out.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch b/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch index 885d370a8..d499733a9 100644 --- a/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch +++ b/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch @@ -1,7 +1,7 @@ -From 119f420d9e07dca0e5757f342c02c680d1e48780 Mon Sep 17 00:00:00 2001 +From c225a3215efc938787996cbe096d40e537992095 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 15 Jul 2011 21:24:27 +0200 -Subject: [PATCH 059/271] rwsem-inlcude-fix.patch +Subject: [PATCH 059/282] rwsem-inlcude-fix.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch b/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch index 2f4783527..b09891639 100644 --- a/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch +++ b/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch @@ -1,7 +1,7 @@ -From d9eb97653e6bc4262f652443c93119e82639add3 Mon Sep 17 00:00:00 2001 +From 0eb27cfadcebc59193ebb781e4b3c446eac76b6a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 14 Nov 2011 10:52:34 +0100 -Subject: [PATCH 060/271] sysctl-include-fix.patch +Subject: [PATCH 060/282] sysctl-include-fix.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch b/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch index f735f5df9..cea3bb9b9 100644 --- a/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch +++ b/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch @@ -1,7 +1,7 @@ -From 8aa0e728b15ef32d42669dfe33f2d9ac5d27ea3d Mon Sep 17 00:00:00 2001 +From 6e65253540403f6d75e1a84db73e842df83b33ac Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 10:59:58 +0200 -Subject: [PATCH 061/271] net-flip-lock-dep-thingy.patch +Subject: [PATCH 061/282] net-flip-lock-dep-thingy.patch ======================================================= [ INFO: possible circular locking dependency detected ] @@ -93,10 +93,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c -index b23f174..a87eb16 100644 +index 8d095b9..718314b 100644 --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -2031,12 +2031,11 @@ void lock_sock_nested(struct sock *sk, int subclass) +@@ -2034,12 +2034,11 @@ void lock_sock_nested(struct sock *sk, int subclass) if (sk->sk_lock.owned) __lock_sock(sk); sk->sk_lock.owned = 1; diff --git a/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch b/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch index c48b6b12f..f4250e5ac 100644 --- a/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch +++ b/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch @@ -1,7 +1,7 @@ -From e8961150be29279a645e32f77c003547a50a6dd6 Mon Sep 17 00:00:00 2001 +From 7b28ede15f53b267a06036e16e25e7c2e94cf1fc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 15:44:15 +0200 -Subject: [PATCH 062/271] softirq-thread-do-softirq.patch +Subject: [PATCH 062/282] softirq-thread-do-softirq.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch b/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch index 2d878709b..ebb35e2e8 100644 --- a/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch +++ b/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch @@ -1,7 +1,7 @@ -From b6a09c0018a9646352199a935c6a78438819011e Mon Sep 17 00:00:00 2001 +From ea39fba1257ff352dda686d745b385e6895d09dc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 15:46:49 +0200 -Subject: [PATCH 063/271] softirq-split-out-code.patch +Subject: [PATCH 063/282] softirq-split-out-code.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch b/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch index f45d922a6..afa12a482 100644 --- a/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch +++ b/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch @@ -1,7 +1,7 @@ -From b11c24cc29deb9c03a5a8bda3f7aae18ac13f5de Mon Sep 17 00:00:00 2001 +From 1eba6b2acc30d0cbdf7d16c410ccd07319a46428 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:27 -0500 -Subject: [PATCH 064/271] x86: Do not unmask io_apic when interrupt is in +Subject: [PATCH 064/282] x86: Do not unmask io_apic when interrupt is in progress With threaded interrupts we might see an interrupt in progress on diff --git a/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch b/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch index 7c7785e6d..4ca5d56e9 100644 --- a/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch +++ b/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch @@ -1,7 +1,7 @@ -From 2c7c330f000b79354471dde638fc52c24b12ddd8 Mon Sep 17 00:00:00 2001 +From 1341768c6a3013a696272a93c096bef4d93c697e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 15:59:38 +0200 -Subject: [PATCH 065/271] x86-32-fix-signal-crap.patch +Subject: [PATCH 065/282] x86-32-fix-signal-crap.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch b/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch index c47ce42a4..a1d9e4f5b 100644 --- a/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch +++ b/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch @@ -1,7 +1,7 @@ -From 74385c9f4871a36c3d6f4f3613c03eafe9787e50 Mon Sep 17 00:00:00 2001 +From 4f4cbb93b53763c662169b6aae8238d1ab448982 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 10 Apr 2012 14:33:57 -0400 -Subject: [PATCH 066/271] x86: Do not disable preemption in int3 on 32bit +Subject: [PATCH 066/282] x86: Do not disable preemption in int3 on 32bit Preemption must be disabled before enabling interrupts in do_trap on x86_64 because the stack in use for int3 and debug is a per CPU diff --git a/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch b/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch index 7efb91a1a..07d88dc8a 100644 --- a/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch +++ b/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch @@ -1,7 +1,7 @@ -From c8bab1c789269abc24dc8bc7bfe19e5a94e99bd1 Mon Sep 17 00:00:00 2001 +From 4edf87bafe6164db4955cc5ce348afa435ca7388 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jun 2011 22:23:02 +0200 -Subject: [PATCH 067/271] rcu: Reduce lock section +Subject: [PATCH 067/282] rcu: Reduce lock section So the waitqueue wakeup is outside the raw locked section. diff --git a/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch b/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch index 7b0347a9c..8185f4cc4 100644 --- a/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch +++ b/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch @@ -1,7 +1,7 @@ -From 28496932e35a52b3a0e3fdcb9451681a1892ec27 Mon Sep 17 00:00:00 2001 +From d41167e625e97da6ff9544cb3bbeb27aaf9aeba9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:25:03 +0200 -Subject: [PATCH 068/271] locking-various-init-fixes.patch +Subject: [PATCH 068/282] locking-various-init-fixes.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch b/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch index 2571456df..70253cf07 100644 --- a/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch +++ b/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch @@ -1,7 +1,7 @@ -From ae1b53b19a728c9b7fb6263e18a1d0a6f7bbb605 Mon Sep 17 00:00:00 2001 +From 95333bbde8ea68c4afcdaafdb1b453591fc2df8b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Dec 2011 00:04:00 +0100 -Subject: [PATCH 069/271] wait: Provide __wake_up_all_locked +Subject: [PATCH 069/282] wait: Provide __wake_up_all_locked For code which protects the waitqueue itself with another lock it makes no sense to acquire the waitqueue lock for wakeup all. Provide @@ -38,7 +38,7 @@ index 3efc9f3..1e904b8 100644 #define wake_up_interruptible(x) __wake_up(x, TASK_INTERRUPTIBLE, 1, NULL) #define wake_up_interruptible_nr(x, nr) __wake_up(x, TASK_INTERRUPTIBLE, nr, NULL) diff --git a/kernel/sched.c b/kernel/sched.c -index b432fe0..e1fee8d 100644 +index cd07a59..f2fc6ee 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4636,9 +4636,9 @@ EXPORT_SYMBOL(__wake_up); diff --git a/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch b/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch index 64efb7953..e1980388a 100644 --- a/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch +++ b/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch @@ -1,7 +1,7 @@ -From e518262a8ce30be5c174a615f11c7babcd4e2fed Mon Sep 17 00:00:00 2001 +From 8c721a627561fd4b14ff3638e563f02412813c20 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Dec 2011 00:07:16 +0100 -Subject: [PATCH 070/271] pci: Use __wake_up_all_locked +Subject: [PATCH 070/282] pci: Use __wake_up_all_locked pci_unblock_user_cfg_access() The waitqueue is protected by the pci_lock, so we can just avoid to diff --git a/debian/patches/features/all/rt/0071-latency-hist.patch.patch b/debian/patches/features/all/rt/0071-latency-hist.patch.patch index 4540b0bbc..cc0a66f79 100644 --- a/debian/patches/features/all/rt/0071-latency-hist.patch.patch +++ b/debian/patches/features/all/rt/0071-latency-hist.patch.patch @@ -1,7 +1,7 @@ -From f1beb73035be977df46e1cc273d9165981d3c811 Mon Sep 17 00:00:00 2001 +From f1b6f7811c3b510ff767bb639e71ca80cb2590af Mon Sep 17 00:00:00 2001 From: Carsten Emde Date: Tue, 19 Jul 2011 14:03:41 +0100 -Subject: [PATCH 071/271] latency-hist.patch +Subject: [PATCH 071/282] latency-hist.patch This patch provides a recording mechanism to store data of potential sources of system latencies. The recordings separately determine the diff --git a/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch b/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch index e3680c71b..84fbf3220 100644 --- a/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch +++ b/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch @@ -1,7 +1,7 @@ -From 24568f806f7af94794ae9601650ca10ada5092b4 Mon Sep 17 00:00:00 2001 +From 45ef50eea34f9e78db789e06cf73c681973d1517 Mon Sep 17 00:00:00 2001 From: Carsten Emde Date: Tue, 19 Jul 2011 13:53:12 +0100 -Subject: [PATCH 072/271] hwlatdetect.patch +Subject: [PATCH 072/282] hwlatdetect.patch Jon Masters developed this wonderful SMI detector. For details please consult Documentation/hwlat_detector.txt. It could be ported to Linux diff --git a/debian/patches/features/all/rt/0073-localversion.patch.patch b/debian/patches/features/all/rt/0073-localversion.patch.patch index 142079c4e..426f6f2b9 100644 --- a/debian/patches/features/all/rt/0073-localversion.patch.patch +++ b/debian/patches/features/all/rt/0073-localversion.patch.patch @@ -1,7 +1,7 @@ -From b39fbed043fb8ab8674ac44ca67113138408e1d9 Mon Sep 17 00:00:00 2001 +From 82af6fac99160166f358d78e7f6e0c33e4d6d9ee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 -Subject: [PATCH 073/271] localversion.patch +Subject: [PATCH 073/282] localversion.patch Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra diff --git a/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch b/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch index 71aac6ff1..b3380e9a9 100644 --- a/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch +++ b/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch @@ -1,7 +1,7 @@ -From 017ce14bf2a1a02c30759b285bb80936d29f76e9 Mon Sep 17 00:00:00 2001 +From 5251d708a751e91857000a401c0b220028c1189a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 23 Jul 2011 11:04:08 +0200 -Subject: [PATCH 074/271] early-printk-consolidate.patch +Subject: [PATCH 074/282] early-printk-consolidate.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0075-printk-kill.patch.patch b/debian/patches/features/all/rt/0075-printk-kill.patch.patch index fd34a355a..bffb95849 100644 --- a/debian/patches/features/all/rt/0075-printk-kill.patch.patch +++ b/debian/patches/features/all/rt/0075-printk-kill.patch.patch @@ -1,7 +1,7 @@ -From 58cd55a99f02b450aebc3f90b5822f61ba3785de Mon Sep 17 00:00:00 2001 +From 5a299cda552af0c2bab626d3730c4cbeade11c2b Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 22 Jul 2011 17:58:40 +0200 -Subject: [PATCH 075/271] printk-kill.patch +Subject: [PATCH 075/282] printk-kill.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch b/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch index 446d4a603..81a64122f 100644 --- a/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch +++ b/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch @@ -1,7 +1,7 @@ -From 6f105f763b9a9cb3e0536dfce235d0dbf7164a0c Mon Sep 17 00:00:00 2001 +From ad64ef7c94c9a86722a1f9ce1664793baa28c5f5 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 2 Sep 2011 14:29:33 +0200 -Subject: [PATCH 076/271] printk: 'force_early_printk' boot param to help with +Subject: [PATCH 076/282] printk: 'force_early_printk' boot param to help with debugging Gives me an option to screw printk and actually see what the machine diff --git a/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch b/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch index af353301f..bc70273f0 100644 --- a/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch +++ b/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch @@ -1,7 +1,7 @@ -From 9113b53e8be415daa5ea256197be21b9211d9719 Mon Sep 17 00:00:00 2001 +From 048d30367fa7a4243c27d9c4874790fd256f5278 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 17 Jun 2011 12:39:57 +0200 -Subject: [PATCH 077/271] rt-preempt-base-config.patch +Subject: [PATCH 077/282] rt-preempt-base-config.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch b/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch index 4d4e82d5b..4f846d20b 100644 --- a/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch +++ b/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch @@ -1,7 +1,7 @@ -From 9729dd0a86e87c3fbee8795bee8c6617a428286b Mon Sep 17 00:00:00 2001 +From 64cf889529be62fc6cc62df1ae4df10e1370f3bf Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:58 -0500 -Subject: [PATCH 078/271] bug: BUG_ON/WARN_ON variants dependend on RT/!RT +Subject: [PATCH 078/282] bug: BUG_ON/WARN_ON variants dependend on RT/!RT Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner diff --git a/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch b/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch index 919baa3cf..c46b61dd3 100644 --- a/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch +++ b/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch @@ -1,7 +1,7 @@ -From bd4c69742526cbd057c4034a101a4b1139501b21 Mon Sep 17 00:00:00 2001 +From f0213bc69b3cf36e06957f512e389a115b187625 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Jul 2009 22:34:14 +0200 -Subject: [PATCH 079/271] rt: local_irq_* variants depending on RT/!RT +Subject: [PATCH 079/282] rt: local_irq_* variants depending on RT/!RT Add local_irq_*_(no)rt variant which are mainly used to break interrupt disabled sections on PREEMPT_RT or to explicitely disable diff --git a/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch index 07350a408..185a9f6f1 100644 --- a/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch +++ b/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch @@ -1,7 +1,7 @@ -From 7b7525cf0311e388a50673a7f92e3a39aed2b73e Mon Sep 17 00:00:00 2001 +From c47b4bddc79e58cebe5229a428070e252f096131 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jul 2009 12:38:56 +0200 -Subject: [PATCH 080/271] preempt: Provide preempt_*_(no)rt variants +Subject: [PATCH 080/282] preempt: Provide preempt_*_(no)rt variants RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery. diff --git a/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch b/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch index bd57fdeaf..0b824d0a9 100644 --- a/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch +++ b/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch @@ -1,7 +1,7 @@ -From 284d23b160b640b8aa063dfd1184bb0b8a93988d Mon Sep 17 00:00:00 2001 +From 0355a5d1ba96389a4de2667088e226c46761b198 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 3 Jul 2009 08:44:29 -0500 -Subject: [PATCH 081/271] ata: Do not disable interrupts in ide code for +Subject: [PATCH 081/282] ata: Do not disable interrupts in ide code for preempt-rt Use the local_irq_*_nort variants. diff --git a/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch b/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch index d243cc231..9be28d5bd 100644 --- a/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch +++ b/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch @@ -1,7 +1,7 @@ -From 096886104439db1f9afb4a8d9f6c564fe6fe8054 Mon Sep 17 00:00:00 2001 +From b6cee1d8a3da934baf76350fe3ba25b7b52ad6a8 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:16 -0500 -Subject: [PATCH 082/271] ide: Do not disable interrupts for PREEMPT-RT +Subject: [PATCH 082/282] ide: Do not disable interrupts for PREEMPT-RT Use the local_irq_*_nort variants. diff --git a/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch b/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch index 68033e1d1..43900c70d 100644 --- a/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch +++ b/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch @@ -1,7 +1,7 @@ -From 6f4faa5f3d64c50255aa8c80591e21cc4477bb3a Mon Sep 17 00:00:00 2001 +From 7191d9fbd82214e96f5d0c1e3bdf03da46b45110 Mon Sep 17 00:00:00 2001 From: Sven-Thorsten Dietrich Date: Fri, 3 Jul 2009 08:30:35 -0500 -Subject: [PATCH 083/271] infiniband: Mellanox IB driver patch use _nort() +Subject: [PATCH 083/282] infiniband: Mellanox IB driver patch use _nort() primitives Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT diff --git a/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch b/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch index a04acfcd5..74ab62eb5 100644 --- a/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch +++ b/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch @@ -1,7 +1,7 @@ -From b819d26eb58e5f85b12a837596a64b84f983f815 Mon Sep 17 00:00:00 2001 +From 1e4ffeae63f0926e3c7821161b6278ec8c386851 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:16 -0500 -Subject: [PATCH 084/271] input: gameport: Do not disable interrupts on +Subject: [PATCH 084/282] input: gameport: Do not disable interrupts on PREEMPT_RT Use the _nort() primitives. diff --git a/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch b/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch index b1c1fc587..af2a06514 100644 --- a/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch +++ b/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From e62ea5ff16b12cb3667f22fda730eff8d3b3c622 Mon Sep 17 00:00:00 2001 +From db36ca412027b33bd89dcc04e3c6a5680701dcc1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Jul 2009 22:54:51 +0200 -Subject: [PATCH 085/271] acpi: Do not disable interrupts on PREEMPT_RT +Subject: [PATCH 085/282] acpi: Do not disable interrupts on PREEMPT_RT Use the local_irq_*_nort() variants. diff --git a/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch b/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch index bfb8c6bad..1f958ba07 100644 --- a/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch +++ b/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch @@ -1,7 +1,7 @@ -From 273e93964bd77279c00d19dd3e7cad068ef84c18 Mon Sep 17 00:00:00 2001 +From 88cbbcb43fb045f6c34ef6a1364efdee81870385 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Jul 2009 23:06:05 +0200 -Subject: [PATCH 086/271] core: Do not disable interrupts on RT in +Subject: [PATCH 086/282] core: Do not disable interrupts on RT in kernel/users.c Use the local_irq_*_nort variants to reduce latencies in RT. The code diff --git a/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch b/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch index 5680bfe71..0325575b3 100644 --- a/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch +++ b/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch @@ -1,7 +1,7 @@ -From 53360b4cb71ae3fa820b75eabde85c09714990e2 Mon Sep 17 00:00:00 2001 +From 254ee7aa44ceb7c5b659f3a875511419d23dc062 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:33 -0500 -Subject: [PATCH 087/271] core: Do not disable interrupts on RT in +Subject: [PATCH 087/282] core: Do not disable interrupts on RT in res_counter.c Frederic Weisbecker reported this warning: diff --git a/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch b/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch index 763da658e..bf4a09285 100644 --- a/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch +++ b/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch @@ -1,7 +1,7 @@ -From 60cef4fea189e4489cf1b2660ee5d2ba4cc29355 Mon Sep 17 00:00:00 2001 +From 1fd0ba792a8c99d373a6321ce1926add58737ae5 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 3 Jul 2009 08:44:26 -0500 -Subject: [PATCH 088/271] usb: Use local_irq_*_nort() variants +Subject: [PATCH 088/282] usb: Use local_irq_*_nort() variants [ tglx: Now that irqf_disabled is dead we should kill that ] diff --git a/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch b/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch index 03261b1a3..770eb526d 100644 --- a/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch +++ b/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch @@ -1,7 +1,7 @@ -From aa62959af4605a57f9972797ce76afb8f11d43bf Mon Sep 17 00:00:00 2001 +From 10df02eacb757eaffa3bf4d52b3e57df1e2513a3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 17 Aug 2009 19:49:19 +0200 -Subject: [PATCH 089/271] tty: Do not disable interrupts in put_ldisc on -rt +Subject: [PATCH 089/282] tty: Do not disable interrupts in put_ldisc on -rt Fixes the following on PREEMPT_RT: diff --git a/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch b/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch index 236dfae02..dc4b4d680 100644 --- a/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch +++ b/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch @@ -1,7 +1,7 @@ -From 4598c7b576dbb428050b3502887a6d90c94b3e40 Mon Sep 17 00:00:00 2001 +From 42eda548462d57760f150d4ff36757301c2aebc1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:34 -0500 -Subject: [PATCH 090/271] mm: scatterlist dont disable irqs on RT +Subject: [PATCH 090/282] mm: scatterlist dont disable irqs on RT Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch b/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch index 696e45715..fea254b04 100644 --- a/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch +++ b/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch @@ -1,7 +1,7 @@ -From 51098fa95b231d64448d31e7301123e51b616fd2 Mon Sep 17 00:00:00 2001 +From c21774940bc7629c44fe4af5c285479b84c30f73 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 22 Jul 2011 08:07:08 +0200 -Subject: [PATCH 091/271] signal-fix-up-rcu-wreckage.patch +Subject: [PATCH 091/282] signal-fix-up-rcu-wreckage.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch b/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch index b6485bde7..35137ec55 100644 --- a/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch +++ b/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch @@ -1,7 +1,7 @@ -From afd78055655a279c7a80a7a5939e85328bb95258 Mon Sep 17 00:00:00 2001 +From d699bd4579ad9e91080cdfcec188802134aae309 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jul 2011 21:05:33 +0200 -Subject: [PATCH 092/271] net-wireless-warn-nort.patch +Subject: [PATCH 092/282] net-wireless-warn-nort.patch Signed-off-by: Thomas Gleixner --- @@ -9,10 +9,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c -index 064d20f..642d96c 100644 +index cda4875..6791b22 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -2958,7 +2958,7 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) +@@ -2961,7 +2961,7 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) struct ieee80211_supported_band *sband; struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); diff --git a/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch b/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch index 3c386f512..a8d37e826 100644 --- a/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch +++ b/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch @@ -1,7 +1,7 @@ -From c7d566a2a74ce0de490459ea52804d85a1e09e9d Mon Sep 17 00:00:00 2001 +From a5974a016d5d7ee7da04337fe2aa0b20f093a33b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Aug 2009 09:56:42 +0200 -Subject: [PATCH 093/271] mm: Replace cgroup_page bit spinlock +Subject: [PATCH 093/282] mm: Replace cgroup_page bit spinlock Bit spinlocks are not working on RT. Replace them. diff --git a/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch index d29815444..4ec88360a 100644 --- a/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch +++ b/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch @@ -1,7 +1,7 @@ -From 50e92b8acdddd7c2ac49988c5820847f6006e60a Mon Sep 17 00:00:00 2001 +From df26a5cba834d9f4d824e34a038718c8aa2e079e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 09:18:52 +0100 -Subject: [PATCH 094/271] buffer_head: Replace bh_uptodate_lock for -rt +Subject: [PATCH 094/282] buffer_head: Replace bh_uptodate_lock for -rt Wrap the bit_spin_lock calls into a separate inline and add the RT replacements with a real spinlock. diff --git a/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch index df54f11bb..011b26215 100644 --- a/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch +++ b/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch @@ -1,7 +1,7 @@ -From 43b438bb16c45a9258a5e016f7033bc7e1e2303b Mon Sep 17 00:00:00 2001 +From 5422b7a233df86ab0aa48bf871410c17b70ff9ba Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 10:11:25 +0100 -Subject: [PATCH 095/271] fs: jbd/jbd2: Make state lock and journal head lock +Subject: [PATCH 095/282] fs: jbd/jbd2: Make state lock and journal head lock rt safe bit_spin_locks break under RT. diff --git a/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch b/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch index 7deacaed8..8be63ed7d 100644 --- a/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch +++ b/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch @@ -1,7 +1,7 @@ -From 237b1f26fdb29f4bafb5bb38caaf2f789014bfb7 Mon Sep 17 00:00:00 2001 +From 56fe10c465dfcceb087a80ac3b04601aab51015f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 10:22:04 +0100 -Subject: [PATCH 096/271] genirq: Disable DEBUG_SHIRQ for rt +Subject: [PATCH 096/282] genirq: Disable DEBUG_SHIRQ for rt Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch b/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch index ee5024871..800b4e15f 100644 --- a/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch +++ b/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch @@ -1,7 +1,7 @@ -From 4149711fe08f0340a4e090c29902bed82d01d708 Mon Sep 17 00:00:00 2001 +From a882291087c4201b04019099dc066e78673a0d83 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Jul 2009 16:07:37 +0200 -Subject: [PATCH 097/271] genirq: Disable random call on preempt-rt +Subject: [PATCH 097/282] genirq: Disable random call on preempt-rt The random call introduces high latencies and is almost unused. Disable it for -rt. diff --git a/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch b/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch index 53480787f..ba2355de0 100644 --- a/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch +++ b/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch @@ -1,7 +1,7 @@ -From 495b2823649a551c9267609edb1e71aefbcfdbc9 Mon Sep 17 00:00:00 2001 +From c68b73d5f260690c9f1331823d57dd7bbc77501a Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:57 -0500 -Subject: [PATCH 098/271] genirq: disable irqpoll on -rt +Subject: [PATCH 098/282] genirq: disable irqpoll on -rt Creates long latencies for no value diff --git a/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch b/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch index 30642d43b..35ef4b919 100644 --- a/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch +++ b/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch @@ -1,7 +1,7 @@ -From b502e77a5117fe7ee42aab041fa2411e93c6a542 Mon Sep 17 00:00:00 2001 +From a844f84d36323fda82577275b0d78d1f9a5b7deb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 3 Apr 2011 11:57:29 +0200 -Subject: [PATCH 099/271] genirq-force-threading.patch +Subject: [PATCH 099/282] genirq-force-threading.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch b/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch index 2262cba4d..298449327 100644 --- a/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch +++ b/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch @@ -1,7 +1,7 @@ -From fb73e20b1d7e7333a7c5de9f85749b210792c13d Mon Sep 17 00:00:00 2001 +From 57a7b64adf2a704e10d9ba68d002f30ae5f11c32 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 20 Jun 2009 11:36:54 +0200 -Subject: [PATCH 100/271] drivers/net: fix livelock issues +Subject: [PATCH 100/282] drivers/net: fix livelock issues Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro optimization. The reason is that the softirq thread is rescheduling @@ -53,7 +53,7 @@ index 95483bc..eaf84e9 100644 if (atl1e_tpd_avail(adapter) < tpd_req) { /* no enough descriptor, just stop queue */ diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c -index f9b6023..6d7412a 100644 +index f9b60230..6d7412a 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c @@ -1678,8 +1678,7 @@ static int t1_sge_tx(struct sk_buff *skb, struct adapter *adapter, diff --git a/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch b/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch index baa833fc6..05a4c4b2e 100644 --- a/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch +++ b/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch @@ -1,7 +1,7 @@ -From 3431e5abf7b21e512a4e881fd62de81171cd0345 Mon Sep 17 00:00:00 2001 +From bd931de893f70144e56bae8a5900d70365d8c37b Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 3 Jul 2009 08:30:00 -0500 -Subject: [PATCH 101/271] drivers/net: vortex fix locking issues +Subject: [PATCH 101/282] drivers/net: vortex fix locking issues Argh, cut and paste wasn't enough... diff --git a/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch b/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch index 902dae305..1d258cdeb 100644 --- a/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch +++ b/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch @@ -1,7 +1,7 @@ -From f2143bd89a36fc19294bf0888f69e055db19150e Mon Sep 17 00:00:00 2001 +From 4110c52a433828061c90541f81d1950db02f947e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Apr 2010 20:20:57 +0200 -Subject: [PATCH 102/271] drivers: net: gianfar: Make RT aware +Subject: [PATCH 102/282] drivers: net: gianfar: Make RT aware The adjust_link() disables interrupts before taking the queue locks. On RT those locks are converted to "sleeping" locks and diff --git a/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch b/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch index 1d3256152..6470e2b28 100644 --- a/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch +++ b/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch @@ -1,7 +1,7 @@ -From b4cadcb970f09b29bc22b63733153dd998a7c8a4 Mon Sep 17 00:00:00 2001 +From 159364b11155069d81e5e93adb7ec245bc3a880f Mon Sep 17 00:00:00 2001 From: Wu Zhangjin Date: Mon, 4 Jan 2010 11:33:02 +0800 -Subject: [PATCH 103/271] USB: Fix the mouse problem when copying large +Subject: [PATCH 103/282] USB: Fix the mouse problem when copying large amounts of data When copying large amounts of data between the USB storage devices and diff --git a/debian/patches/features/all/rt/0104-local-var.patch.patch b/debian/patches/features/all/rt/0104-local-var.patch.patch index a3b4e4790..16ce0ddee 100644 --- a/debian/patches/features/all/rt/0104-local-var.patch.patch +++ b/debian/patches/features/all/rt/0104-local-var.patch.patch @@ -1,7 +1,7 @@ -From 4503940a082ae0386fe109726d2eec9197669dd7 Mon Sep 17 00:00:00 2001 +From 0b82cd960445a3dc1756d906f718c7fc467626cb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jun 2011 18:40:37 +0200 -Subject: [PATCH 104/271] local-var.patch +Subject: [PATCH 104/282] local-var.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch b/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch index 1f6c53ae2..e7a156cb9 100644 --- a/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch +++ b/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch @@ -1,7 +1,7 @@ -From 621ee289179945850cb2878d7c0bc65169d1f275 Mon Sep 17 00:00:00 2001 +From 85fcde07047135f1e637f3ccde4ede49a0f5dfe8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 20 Jun 2011 09:03:47 +0200 -Subject: [PATCH 105/271] rt-local-irq-lock.patch +Subject: [PATCH 105/282] rt-local-irq-lock.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch b/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch index 1cb0780fd..0e5f38b1f 100644 --- a/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch +++ b/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch @@ -1,7 +1,7 @@ -From 24dfb357f232fbda6d144093f8eac4038287b01b Mon Sep 17 00:00:00 2001 +From 55349967274ba63aca4a72536c7e6c1d2b2063fe Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 17 Jun 2011 15:42:38 +0200 -Subject: [PATCH 106/271] cpu-rt-variants.patch +Subject: [PATCH 106/282] cpu-rt-variants.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch b/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch index c21565f47..7e57e109f 100644 --- a/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch +++ b/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch @@ -1,7 +1,7 @@ -From e501e07e51837018820a9b02957ce7e43d902171 Mon Sep 17 00:00:00 2001 +From 74eff412441a31600fd6935b1322a3bf8f4c76fe Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 18 Jun 2011 19:44:43 +0200 -Subject: [PATCH 107/271] mm-slab-wrap-functions.patch +Subject: [PATCH 107/282] mm-slab-wrap-functions.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch b/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch index 6edae092e..53f32ea1d 100644 --- a/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch +++ b/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch @@ -1,7 +1,7 @@ -From 34e1a29c704b0749b6394a20470c668be32be491 Mon Sep 17 00:00:00 2001 +From 9281f2ed6be7b222a8029133fefbdb7f97b63404 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 11 Oct 2011 23:56:23 -0400 -Subject: [PATCH 108/271] slab: Fix __do_drain to use the right array cache +Subject: [PATCH 108/282] slab: Fix __do_drain to use the right array cache The array cache in __do_drain() was using the cpu_cache_get() function which uses smp_processor_id() to get the proper array. On mainline, this diff --git a/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch b/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch index 093a87a02..75e519602 100644 --- a/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch +++ b/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch @@ -1,7 +1,7 @@ -From 78d37c46494f97844cfa0067f56f2f8c7a2a3bb9 Mon Sep 17 00:00:00 2001 +From 7db9ca2402c9588c7339e75efd4d8f5d9a5b525f Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 3 Jul 2009 08:44:43 -0500 -Subject: [PATCH 109/271] mm: More lock breaks in slab.c +Subject: [PATCH 109/282] mm: More lock breaks in slab.c Handle __free_pages outside of the locked regions. This reduces the lock contention on the percpu slab locks in -rt significantly. diff --git a/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch index 00acffaee..4055a04ff 100644 --- a/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch +++ b/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -1,7 +1,7 @@ -From 9f4c4aafe685d907b24ae3c33018ce4268040e1a Mon Sep 17 00:00:00 2001 +From 5e1cc4d26f11f3ed84824c66a85c6a51695363eb Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:37 -0500 -Subject: [PATCH 110/271] mm: page_alloc: rt-friendly per-cpu pages +Subject: [PATCH 110/282] mm: page_alloc: rt-friendly per-cpu pages rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. diff --git a/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch b/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch index 97a3ebcfb..b73097ea7 100644 --- a/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch +++ b/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch @@ -1,7 +1,7 @@ -From 8f8938be20b95052f5dfe2372f8afd8e621cf0af Mon Sep 17 00:00:00 2001 +From 87078e874af4c2f707155080d0e14a413777047f Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 3 Jul 2009 08:44:37 -0500 -Subject: [PATCH 111/271] mm: page_alloc reduce lock sections further +Subject: [PATCH 111/282] mm: page_alloc reduce lock sections further Split out the pages which are to be freed into a separate list and call free_pages_bulk() outside of the percpu page allocator locks. diff --git a/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch b/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch index 425853cd1..5856b1de3 100644 --- a/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch +++ b/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch @@ -1,7 +1,7 @@ -From 23d1d976e548d01beb6c78d3486bd10c5c5e398d Mon Sep 17 00:00:00 2001 +From 78e9541f415fa2c579dc36e66f9c4f918647b37f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jul 2011 16:47:49 +0200 -Subject: [PATCH 112/271] mm-page-alloc-fix.patch +Subject: [PATCH 112/282] mm-page-alloc-fix.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch b/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch index a441099e8..38431fff3 100644 --- a/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch +++ b/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch @@ -1,7 +1,7 @@ -From 153ada8ae21b6e8ba68ea78f989a884660b6a648 Mon Sep 17 00:00:00 2001 +From 26fb48fdcf100f637d8415f0154f7998a03255e8 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:51 -0500 -Subject: [PATCH 113/271] mm: convert swap to percpu locked +Subject: [PATCH 113/282] mm: convert swap to percpu locked Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner diff --git a/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch b/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch index 59ded9065..1f2a9ae7f 100644 --- a/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch +++ b/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch @@ -1,7 +1,7 @@ -From 8dfb251f4ed2962e0d676366c93478d0029bf326 Mon Sep 17 00:00:00 2001 +From df7507036c61fcade1c1ed7b1950793f0096857e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 20:47:08 +0200 -Subject: [PATCH 114/271] mm-vmstat-fix-the-irq-lock-asymetry.patch +Subject: [PATCH 114/282] mm-vmstat-fix-the-irq-lock-asymetry.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch b/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch index 74cf1ea06..ce7526000 100644 --- a/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch +++ b/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch @@ -1,7 +1,7 @@ -From 612e799fbf66488f07d5c7aff16024f7935803f4 Mon Sep 17 00:00:00 2001 +From 9826451465dd335f33bb184b891923d4d189a25e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:13 -0500 -Subject: [PATCH 115/271] mm: make vmstat -rt aware +Subject: [PATCH 115/282] mm: make vmstat -rt aware Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner diff --git a/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch b/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch index 0dd6e8df8..d30a8dac0 100644 --- a/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch +++ b/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch @@ -1,7 +1,7 @@ -From 8ddb8785a59f0c88b8fe3c7c0e9230d631036c44 Mon Sep 17 00:00:00 2001 +From 439a317e670e03a91f8ebc6d71684b63d3b5aa74 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 3 Jul 2009 08:44:54 -0500 -Subject: [PATCH 116/271] mm: shrink the page frame to !-rt size +Subject: [PATCH 116/282] mm: shrink the page frame to !-rt size He below is a boot-tested hack to shrink the page frame size back to normal. diff --git a/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch b/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch index 395e3107a..44c23b3b0 100644 --- a/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch +++ b/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch @@ -1,7 +1,7 @@ -From c49409135686639923e2afc7ea66f3d215e41b67 Mon Sep 17 00:00:00 2001 +From d2e15f3a46f118e0899735206d436f5380ca8d79 Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Sat, 1 Oct 2011 18:58:13 -0700 -Subject: [PATCH 117/271] ARM: Initialize ptl->lock for vector page +Subject: [PATCH 117/282] ARM: Initialize ptl->lock for vector page 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/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch b/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch index f9cf1f6ea..9b2bda15e 100644 --- a/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch +++ b/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch @@ -1,7 +1,7 @@ -From 87cf957abdb4fefbd52c540913269a1dbdaa2c1b Mon Sep 17 00:00:00 2001 +From fcf8616ce028bfa099fc88547032470c202d73b8 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:03 -0500 -Subject: [PATCH 118/271] mm: Allow only slab on RT +Subject: [PATCH 118/282] mm: Allow only slab on RT Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner diff --git a/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch b/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch index f1ee1edba..ecbfe75bc 100644 --- a/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch +++ b/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch @@ -1,7 +1,7 @@ -From 55748804d6b228d28686d7b3a08e41de752e76b5 Mon Sep 17 00:00:00 2001 +From 476a0c32970d7ead365304dead2a94921ee84b74 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:33:18 +0200 -Subject: [PATCH 119/271] radix-tree-rt-aware.patch +Subject: [PATCH 119/282] radix-tree-rt-aware.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch b/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch index 9f5481217..2c1918a8e 100644 --- a/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch +++ b/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch @@ -1,7 +1,7 @@ -From a5b4fcfd4fe682e2d4928496ed787d8ab21db0f1 Mon Sep 17 00:00:00 2001 +From 4280a3c44899a1155f4d1322e52168920963f704 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 10 Apr 2012 14:34:04 -0400 -Subject: [PATCH 120/271] panic-disable-random-on-rt +Subject: [PATCH 120/282] panic-disable-random-on-rt --- kernel/panic.c | 2 ++ diff --git a/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch b/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch index b0882393a..c7a2ece61 100644 --- a/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch +++ b/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch @@ -1,7 +1,7 @@ -From e0f829120e943c5f2ff5f93ed53fa5594d7816b4 Mon Sep 17 00:00:00 2001 +From 5e035cfab75fd41f0653dedd1573ed73ff2b7706 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:12 -0500 -Subject: [PATCH 121/271] ipc: Make the ipc code -rt aware +Subject: [PATCH 121/282] ipc: Make the ipc code -rt aware RT serializes the code with the (rt)spinlock but keeps preemption enabled. Some parts of the code need to be atomic nevertheless. diff --git a/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch b/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch index 6fdc37967..2ef61177b 100644 --- a/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch +++ b/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch @@ -1,7 +1,7 @@ -From 18127106130f5189bf9b3a2f13837a57becc417a Mon Sep 17 00:00:00 2001 +From e01092dac9ba96592a1ce3641cbcef43cb86bc53 Mon Sep 17 00:00:00 2001 From: KOBAYASHI Yoshitake Date: Sat, 23 Jul 2011 11:57:36 +0900 -Subject: [PATCH 122/271] ipc/mqueue: Add a critical section to avoid a +Subject: [PATCH 122/282] ipc/mqueue: Add a critical section to avoid a deadlock (Repost for v3.0-rt1 and changed the distination addreses) diff --git a/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch b/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch index a3f97a892..e831dac81 100644 --- a/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch +++ b/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch @@ -1,7 +1,7 @@ -From 8d28ea78f1347985d1d48d26e964197ad99e58a6 Mon Sep 17 00:00:00 2001 +From 0fb3cd8e7bae3142cc42f0876cb7229f35e64306 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:07 -0500 -Subject: [PATCH 123/271] relay: fix timer madness +Subject: [PATCH 123/282] relay: fix timer madness remove timer calls (!!!) from deep within the tracing infrastructure. This was totally bogus code that can cause lockups and worse. Poll @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/kernel/relay.c b/kernel/relay.c -index b6f803a..eae992d 100644 +index a535fc9..c0af3e6 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -340,6 +340,10 @@ static void wakeup_readers(unsigned long data) diff --git a/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch b/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch index ecc4d2841..dd0f7829b 100644 --- a/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch +++ b/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch @@ -1,7 +1,7 @@ -From f90f1c626b0016d54656b5f160b61e357f49fca1 Mon Sep 17 00:00:00 2001 +From 5d935483d70a9d8427cb1596df938352e316ebf0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 15 Jul 2011 16:24:45 +0200 -Subject: [PATCH 124/271] net-ipv4-route-use-locks-on-up-rt.patch +Subject: [PATCH 124/282] net-ipv4-route-use-locks-on-up-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch b/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch index a0be64cd2..2b94705aa 100644 --- a/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch +++ b/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch @@ -1,7 +1,7 @@ -From 6a01b2cff5d8ba0889a7f96e4d20bc081e9e2bb4 Mon Sep 17 00:00:00 2001 +From 4611f846bce43364ec89f9aad4ff2415b82c7caf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jun 2011 20:39:24 +0200 -Subject: [PATCH 125/271] workqueue-avoid-the-lock-in-cpu-dying.patch +Subject: [PATCH 125/282] workqueue-avoid-the-lock-in-cpu-dying.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch b/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch index c381d205a..5387bb38e 100644 --- a/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch +++ b/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch @@ -1,7 +1,7 @@ -From ed2896fd3eb4dbe63f89b15e2a66a4feb68f6d57 Mon Sep 17 00:00:00 2001 +From d9934e41c0fb51d0afbfff386b18f9ed48af9123 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 126/271] timers: prepare for full preemption +Subject: [PATCH 126/282] timers: prepare for full preemption 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/features/all/rt/0127-timers-preempt-rt-support.patch b/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch index 8bc7d6411..6dfea9b65 100644 --- a/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch +++ b/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch @@ -1,7 +1,7 @@ -From 835ba1d80b1859ecbe904d11b4403d069669bf38 Mon Sep 17 00:00:00 2001 +From bb0c3f398cc480a76ecd23facb2b584a25afb257 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:20 -0500 -Subject: [PATCH 127/271] timers: preempt-rt support +Subject: [PATCH 127/282] timers: preempt-rt support Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner diff --git a/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch b/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch index da187fd3a..987b9bc73 100644 --- a/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch +++ b/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch @@ -1,7 +1,7 @@ -From dba94b2326edf8fb9aa41552178ab1e6de0c556b Mon Sep 17 00:00:00 2001 +From 4f08775c1905f1057a7e152931b2f964987c593a Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:32 -0500 -Subject: [PATCH 128/271] timers: fix timer hotplug on -rt +Subject: [PATCH 128/282] timers: fix timer hotplug on -rt Here we are in the CPU_DEAD notifier, and we must not sleep nor enable interrupts. diff --git a/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch b/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch index d2eed39c7..f213f5f9c 100644 --- a/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch +++ b/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch @@ -1,7 +1,7 @@ -From d26d5ee4b6d3f1e54ad7377bf9d6c92280463503 Mon Sep 17 00:00:00 2001 +From b4314b6a723c8a5d50cfc50003bc6a58c0ee9b3d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:30 -0500 -Subject: [PATCH 129/271] timers: mov printk_tick to soft interrupt +Subject: [PATCH 129/282] timers: mov printk_tick to soft interrupt Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar diff --git a/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch b/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch index f90eed0fe..a8ac7c4dd 100644 --- a/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch +++ b/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch @@ -1,7 +1,7 @@ -From ff871349d460ecd8b294846333ffd6ae176b415c Mon Sep 17 00:00:00 2001 +From 6b3e39602b635fa2f71fff5dc26a363cffeec3f9 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 21 Aug 2009 11:56:45 +0200 -Subject: [PATCH 130/271] timer: delay waking softirqs from the jiffy tick +Subject: [PATCH 130/282] timer: delay waking softirqs from the jiffy tick People were complaining about broken balancing with the recent -rt series. diff --git a/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch b/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch index 5bd8f3295..be1a8e61f 100644 --- a/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch +++ b/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch @@ -1,7 +1,7 @@ -From 46052eed5a76f1588062da4f2e0a3099ff0221c2 Mon Sep 17 00:00:00 2001 +From 08cd6c1108784e10a1b2994c0058d58193637e61 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jul 2011 15:23:39 +0200 -Subject: [PATCH 131/271] timers: Avoid the switch timers base set to NULL +Subject: [PATCH 131/282] timers: Avoid the switch timers base set to NULL trick on RT On RT that code is preemptible, so we cannot assign NULL to timers diff --git a/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch b/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch index e508e7d7d..16a2c8255 100644 --- a/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch +++ b/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch @@ -1,7 +1,7 @@ -From ba1c06e48ffaa241200a5bfc9c8e0a5f2d891eb7 Mon Sep 17 00:00:00 2001 +From 66ed3105dab81c88335bd9c3cb6dd4070944db1f Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Sun, 16 Oct 2011 18:56:45 +0800 -Subject: [PATCH 132/271] printk: Don't call printk_tick in printk_needs_cpu() +Subject: [PATCH 132/282] printk: Don't call printk_tick in printk_needs_cpu() on RT printk_tick() can't be called in atomic context when RT is enabled, diff --git a/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch b/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch index 34d4c169f..922d3ed63 100644 --- a/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch +++ b/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch @@ -1,7 +1,7 @@ -From 5e424120158970ab67082b0102c193a24ba90482 Mon Sep 17 00:00:00 2001 +From 3fb8c447cf2a5fb7b9d5d5d6eef9788941e7907e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 133/271] hrtimers: prepare full preemption +Subject: [PATCH 133/282] hrtimers: prepare full preemption Make cancellation of a running callback in softirq context safe against preemption. diff --git a/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch index a85592c9c..8f532ad86 100644 --- a/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch +++ b/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch @@ -1,7 +1,7 @@ -From 2c4c5c9e998f52729077c5664996e02f8235b5e8 Mon Sep 17 00:00:00 2001 +From d57329a2347a0c0324638cfb0a6dac6dcd6ff2e2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:31 -0500 -Subject: [PATCH 134/271] hrtimer: fixup hrtimer callback changes for +Subject: [PATCH 134/282] hrtimer: fixup hrtimer callback changes for preempt-rt In preempt-rt we can not call the callbacks which take sleeping locks @@ -370,7 +370,7 @@ index 905e2cd2..1dd627b 100644 /** diff --git a/kernel/sched.c b/kernel/sched.c -index e1fee8d..dbb7d80 100644 +index f2fc6ee..057e72d 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -189,6 +189,7 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime) diff --git a/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch b/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch index b48b0ed11..4bbe60107 100644 --- a/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch +++ b/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch @@ -1,7 +1,7 @@ -From b7dd0bd76953eb357261f366476b8bac651001b6 Mon Sep 17 00:00:00 2001 +From cf20c3703ab9a12d50b608160f9c85c976cfe092 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 12 Aug 2011 17:39:54 +0200 -Subject: [PATCH 135/271] hrtimer: Don't call the timer handler from +Subject: [PATCH 135/282] hrtimer: Don't call the timer handler from hrtimer_start [] __delay+0xf/0x11 diff --git a/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch b/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch index 4dbba8b0f..0026868f3 100644 --- a/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch +++ b/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch @@ -1,7 +1,7 @@ -From 5100fc732eac1a036fa5e532336d6b2565945415 Mon Sep 17 00:00:00 2001 +From 1c2a1d160b5cc878596ce4bb89a9d6c057f90a26 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Thu, 13 Oct 2011 15:52:30 +0800 -Subject: [PATCH 136/271] hrtimer: Add missing debug_activate() aid [Was: Re: +Subject: [PATCH 136/282] hrtimer: Add missing debug_activate() aid [Was: Re: [ANNOUNCE] 3.0.6-rt17] On Fri, Oct 07, 2011 at 10:25:25AM -0700, Fernando Lopez-Lezcano wrote: diff --git a/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch b/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch index 346f32098..878abce94 100644 --- a/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch +++ b/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch @@ -1,7 +1,7 @@ -From 83fea32cbee51711340897638dfb28040990ac65 Mon Sep 17 00:00:00 2001 +From 94f180f7d0ee58a5c63dd8d306eff6cc430a7ba2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 14 Sep 2011 14:48:43 +0200 -Subject: [PATCH 137/271] hrtimer-fix-reprogram-madness.patch +Subject: [PATCH 137/282] hrtimer-fix-reprogram-madness.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch b/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch index 361f4e744..a7bc4d9ee 100644 --- a/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch +++ b/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch @@ -1,7 +1,7 @@ -From 4403d2d83fd79737bf901ee357d472781148fbd1 Mon Sep 17 00:00:00 2001 +From 1ba5e3df6eb69ac2a86ec9f49abf491896275b3d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 25 Jan 2012 11:08:40 +0100 -Subject: [PATCH 138/271] timer-fd: Prevent live lock +Subject: [PATCH 138/282] timer-fd: Prevent live lock If hrtimer_try_to_cancel() requires a retry, then depending on the priority setting te retry loop might prevent timer callback completion diff --git a/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch b/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch index e8e7b1bde..a70609f02 100644 --- a/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch +++ b/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch @@ -1,7 +1,7 @@ -From 25d6c5a8997c017fbe3665a01c9ab5ebc5d2554f Mon Sep 17 00:00:00 2001 +From 7c23e492b84633e29b72145d44992d54e5c77c4c Mon Sep 17 00:00:00 2001 From: John Stultz Date: Fri, 3 Jul 2009 08:29:58 -0500 -Subject: [PATCH 139/271] posix-timers: thread posix-cpu-timers on -rt +Subject: [PATCH 139/282] posix-timers: thread posix-cpu-timers on -rt posix-cpu-timer code takes non -rt safe locks in hard irq context. Move it to a thread. diff --git a/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch b/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch index 9d7e360f0..c489ddad5 100644 --- a/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch +++ b/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch @@ -1,7 +1,7 @@ -From 3c61ad031004a517a0c5becd68ec3be2f30307ad Mon Sep 17 00:00:00 2001 +From 60eefe2a494cb7d54bae186ac20d57fad7b055cc Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Fri, 3 Jul 2009 08:30:00 -0500 -Subject: [PATCH 140/271] posix-timers: Shorten posix_cpu_timers/ kernel +Subject: [PATCH 140/282] posix-timers: Shorten posix_cpu_timers/ kernel thread names Shorten the softirq kernel thread names because they always overflow the diff --git a/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch b/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch index 1fd537e1b..1d7398db4 100644 --- a/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch +++ b/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch @@ -1,7 +1,7 @@ -From 2542c38de3be7dd9a2e85b15cfb24904c49a851b Mon Sep 17 00:00:00 2001 +From 69b55e8ab8bf10fb0b71499eaa30402aed9f3e8a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:44 -0500 -Subject: [PATCH 141/271] posix-timers: Avoid wakeups when no timers are +Subject: [PATCH 141/282] posix-timers: Avoid wakeups when no timers are active Waking the thread even when no timers are scheduled is useless. diff --git a/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch b/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch index c8d5de28f..e1c896801 100644 --- a/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch +++ b/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch @@ -1,7 +1,7 @@ -From 90627f9b0947ad2b5152b1066a55fbb2cbee0f55 Mon Sep 17 00:00:00 2001 +From ea72f13fc26b074813a55ba3821730457639f227 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 May 2011 16:59:16 +0200 -Subject: [PATCH 142/271] sched-delay-put-task.patch +Subject: [PATCH 142/282] sched-delay-put-task.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch b/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch index 0f077a790..c53006dea 100644 --- a/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch +++ b/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch @@ -1,7 +1,7 @@ -From ccb4919cecc3f5a8f2a611814b65570d3aaecac5 Mon Sep 17 00:00:00 2001 +From 58c90f3d59c7f84f958a6f622a92707236703c70 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:12:51 +0200 -Subject: [PATCH 143/271] sched-limit-nr-migrate.patch +Subject: [PATCH 143/282] sched-limit-nr-migrate.patch Signed-off-by: Thomas Gleixner --- @@ -9,7 +9,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+) diff --git a/kernel/sched.c b/kernel/sched.c -index dbb7d80..3c204e5 100644 +index 057e72d..2dfaadd 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -942,7 +942,11 @@ late_initcall(sched_init_debug); diff --git a/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch b/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch index 3a363ff9d..73295cdab 100644 --- a/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch +++ b/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch @@ -1,7 +1,7 @@ -From d18ec62168c6c76a19dbed60186573c26680f474 Mon Sep 17 00:00:00 2001 +From d3877802f337f8d481cf97b3e9e4a15b7a4506db Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:20:33 +0200 -Subject: [PATCH 144/271] sched-mmdrop-delayed.patch +Subject: [PATCH 144/282] sched-mmdrop-delayed.patch Needs thread context (pgd_lock) -> ifdeffed. workqueues wont work with RT @@ -99,7 +99,7 @@ index 9d4653a..8aeb811 100644 * Decrement the use count and release all resources for an mm. */ diff --git a/kernel/sched.c b/kernel/sched.c -index 3c204e5..50d5ffe 100644 +index 2dfaadd..4375135 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -3174,8 +3174,12 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev) diff --git a/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch b/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch index e9b3b924d..541865c66 100644 --- a/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch +++ b/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch @@ -1,7 +1,7 @@ -From 362bef200691a6e163ec9b444ae0c69b6d731c27 Mon Sep 17 00:00:00 2001 +From 67c1b1ffef6a857dfd26a276164df9f441b477d5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 25 Jun 2011 09:21:04 +0200 -Subject: [PATCH 145/271] sched-rt-mutex-wakeup.patch +Subject: [PATCH 145/282] sched-rt-mutex-wakeup.patch Signed-off-by: Thomas Gleixner --- @@ -38,7 +38,7 @@ index e6f37ca..6c20349 100644 #ifdef CONFIG_SMP extern void kick_process(struct task_struct *tsk); diff --git a/kernel/sched.c b/kernel/sched.c -index 50d5ffe..6f3c921 100644 +index 4375135..c8b9101 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2827,8 +2827,25 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) diff --git a/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch b/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch index aeaddef67..de2924b51 100644 --- a/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch +++ b/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch @@ -1,7 +1,7 @@ -From 7fb83a66b4f687e9d0b96216590b75c83f3c1bc3 Mon Sep 17 00:00:00 2001 +From c8b298acaa3e3608be9b15ee5648c63bd6001b55 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 20:07:38 +0200 -Subject: [PATCH 146/271] sched-prevent-idle-boost.patch +Subject: [PATCH 146/282] sched-prevent-idle-boost.patch Signed-off-by: Thomas Gleixner --- @@ -9,7 +9,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 6f3c921..4ea4d51 100644 +index c8b9101..9d2547b 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -5036,6 +5036,24 @@ void rt_mutex_setprio(struct task_struct *p, int prio) diff --git a/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch b/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch index b307e4611..84ad48ff1 100644 --- a/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch +++ b/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch @@ -1,7 +1,7 @@ -From 57e213619eae42ba62af04d4b7d7d13bdca88f3f Mon Sep 17 00:00:00 2001 +From 786d60ec621e89188ed0251ffdc1014a93f40871 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 7 Jun 2011 09:19:06 +0200 -Subject: [PATCH 147/271] sched-might-sleep-do-not-account-rcu-depth.patch +Subject: [PATCH 147/282] sched-might-sleep-do-not-account-rcu-depth.patch Signed-off-by: Thomas Gleixner --- @@ -35,10 +35,10 @@ index 2cf4226..a0082e2 100644 /* Internal to kernel */ diff --git a/kernel/sched.c b/kernel/sched.c -index 4ea4d51..c5a59b5 100644 +index 9d2547b..155f94e 100644 --- a/kernel/sched.c +++ b/kernel/sched.c -@@ -8438,7 +8438,8 @@ void __init sched_init(void) +@@ -8435,7 +8435,8 @@ void __init sched_init(void) #ifdef CONFIG_DEBUG_ATOMIC_SLEEP static inline int preempt_count_equals(int preempt_offset) { diff --git a/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch b/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch index f6349665f..d3d32e90f 100644 --- a/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch +++ b/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch @@ -1,7 +1,7 @@ -From 3f3bf120892af044442920b321d29fcd210c38c1 Mon Sep 17 00:00:00 2001 +From 100839d7ba3c724618911d6a851bb805cfcd8cb7 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 16 Mar 2010 14:31:44 -0700 -Subject: [PATCH 148/271] sched: Break out from load_balancing on rq_lock +Subject: [PATCH 148/282] sched: Break out from load_balancing on rq_lock contention Also limit NEW_IDLE pull diff --git a/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch b/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch index b6f84d8b1..9e8549aa6 100644 --- a/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch +++ b/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch @@ -1,7 +1,7 @@ -From 921fcd2d82888a9b91a0181ea6ff83f45252cf8d Mon Sep 17 00:00:00 2001 +From c119b91ea0c7ed5bc8e5d69156bef47b11d5d007 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 7 Jun 2011 11:25:03 +0200 -Subject: [PATCH 149/271] sched-cond-resched.patch +Subject: [PATCH 149/282] sched-cond-resched.patch Signed-off-by: Thomas Gleixner --- @@ -9,7 +9,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index c5a59b5..8d6ec1a 100644 +index 155f94e..0818942 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -5774,9 +5774,17 @@ static inline int should_resched(void) diff --git a/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch b/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch index 1a5295f77..400110697 100644 --- a/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch +++ b/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch @@ -1,7 +1,7 @@ -From 6e6ae2782713ae720db759cda2c7fb5967632c7d Mon Sep 17 00:00:00 2001 +From 95d9cd364bcd1fab250fc6e6932263ca0c16abe9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Jul 2011 09:56:44 +0200 -Subject: [PATCH 150/271] cond-resched-softirq-fix.patch +Subject: [PATCH 150/282] cond-resched-softirq-fix.patch Signed-off-by: Thomas Gleixner --- @@ -31,7 +31,7 @@ index 6c20349..38d78dc 100644 /* * Does a critical section need to be broken due to another diff --git a/kernel/sched.c b/kernel/sched.c -index 8d6ec1a..82fe8e6 100644 +index 0818942..4e42b6a 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -5825,6 +5825,7 @@ int __cond_resched_lock(spinlock_t *lock) diff --git a/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch b/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch index 06ecf25a1..e0353e62f 100644 --- a/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch +++ b/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch @@ -1,7 +1,7 @@ -From 8ddd3ff5c27b0465d3d279474ac017c5ac9eec19 Mon Sep 17 00:00:00 2001 +From c0c44922fe20edfc0f4536a17f3285b85087646a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 20:46:52 +0200 -Subject: [PATCH 151/271] sched-no-work-when-pi-blocked.patch +Subject: [PATCH 151/282] sched-no-work-when-pi-blocked.patch Signed-off-by: Thomas Gleixner --- @@ -35,7 +35,7 @@ index 38d78dc..99e7f8b 100644 extern bool yield_to(struct task_struct *p, bool preempt); diff --git a/kernel/sched.c b/kernel/sched.c -index 82fe8e6..25f2fb7 100644 +index 4e42b6a..b6368a4 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4460,7 +4460,7 @@ need_resched: diff --git a/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch b/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch index fbeeba8db..7b5fd0f9c 100644 --- a/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch +++ b/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch @@ -1,7 +1,7 @@ -From 4218fa54c08ed1bb297e3ea11f7cddc0665794b1 Mon Sep 17 00:00:00 2001 +From b9ebacee63267fe6fe948a6bb784169a4a705a99 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 22:51:33 +0200 -Subject: [PATCH 152/271] cond-resched-lock-rt-tweak.patch +Subject: [PATCH 152/282] cond-resched-lock-rt-tweak.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch b/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch index 709cb0f0e..6ebd28642 100644 --- a/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch +++ b/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch @@ -1,7 +1,7 @@ -From 0af957b90152a3547bfce6ba205118aa2b15c4a8 Mon Sep 17 00:00:00 2001 +From ab60496c3c25d345672d883272ff812572ac51ab Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Sep 2011 16:42:35 +0200 -Subject: [PATCH 153/271] sched-disable-ttwu-queue.patch +Subject: [PATCH 153/282] sched-disable-ttwu-queue.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch index cbb1e5d8b..626084184 100644 --- a/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch +++ b/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch @@ -1,7 +1,7 @@ -From 7b56b9ec7657030124eff23987645f8fa331c190 Mon Sep 17 00:00:00 2001 +From 7a02f25d6805cdeeb6d611644757c5bbb6846a66 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:03:52 +0200 -Subject: [PATCH 154/271] sched: Disable CONFIG_RT_GROUP_SCHED on RT +Subject: [PATCH 154/282] sched: Disable CONFIG_RT_GROUP_SCHED on RT Carsten reported problems when running: diff --git a/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch b/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch index 83d8f198c..517b6246d 100644 --- a/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch +++ b/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch @@ -1,7 +1,7 @@ -From 2e030e32f21934503f75aade806a1bb1ebd30146 Mon Sep 17 00:00:00 2001 +From 99e5a07fe6fdec173ce90ee61fb2c2522a224fac Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Dec 2011 21:42:19 +0100 -Subject: [PATCH 155/271] sched: ttwu: Return success when only changing the +Subject: [PATCH 155/282] sched: ttwu: Return success when only changing the saved_state value When a task blocks on a rt lock, it saves the current state in @@ -21,7 +21,7 @@ Cc: stable-rt@vger.kernel.org 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 25f2fb7..2c803b2 100644 +index b6368a4..f22e4fd 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2834,8 +2834,10 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) diff --git a/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch b/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch index e0fe52ccb..0c836b9b4 100644 --- a/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch +++ b/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From b5f79e7b9e2d826a757bfdb57b332ec4f69a7304 Mon Sep 17 00:00:00 2001 +From 9f5163e90cb3d027987ae99930dfd5f7a0f73085 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:27 -0500 -Subject: [PATCH 156/271] stop_machine: convert stop_machine_run() to +Subject: [PATCH 156/282] stop_machine: convert stop_machine_run() to PREEMPT_RT Instead of playing with non-preemption, introduce explicit diff --git a/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch b/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch index aa9d727c0..2c2068b35 100644 --- a/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch +++ b/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch @@ -1,7 +1,7 @@ -From ad6e463b3ca9ad6826b0e4812d33d9ff73a28cd6 Mon Sep 17 00:00:00 2001 +From 9001d90d48355be93a23a6f3e2da8916189e7a1a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 19:53:19 +0200 -Subject: [PATCH 157/271] stomp-machine-mark-stomper-thread.patch +Subject: [PATCH 157/282] stomp-machine-mark-stomper-thread.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch b/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch index 317dedd15..327c3fe80 100644 --- a/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch +++ b/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch @@ -1,7 +1,7 @@ -From 49142ffd343b0f7166a2d6a5d73bf2567e545673 Mon Sep 17 00:00:00 2001 +From b83598a3b186fcbd48611dff1f4840de9868367c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 11:01:51 +0200 -Subject: [PATCH 158/271] stomp-machine-raw-lock.patch +Subject: [PATCH 158/282] stomp-machine-raw-lock.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch b/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch index a5b7f0b5e..658b73112 100644 --- a/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch +++ b/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch @@ -1,7 +1,7 @@ -From a5c652463db58de2bbbf68dbd27d8779ff1b6fca Mon Sep 17 00:00:00 2001 +From 1d98c3fce615cb9616c61ef488b5b6fbaf63cb89 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 15 Jun 2011 12:36:06 +0200 -Subject: [PATCH 159/271] hotplug: Lightweight get online cpus +Subject: [PATCH 159/282] hotplug: Lightweight get online cpus 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/features/all/rt/0160-hotplug-sync_unplug-No.patch b/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch index 6aafb9301..d8c4a004a 100644 --- a/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch +++ b/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch @@ -1,7 +1,7 @@ -From cd72fd6de9a59e824a015a4c75b9be346a83cd12 Mon Sep 17 00:00:00 2001 +From a110683e44ed54e3657bf221c063195a07152d66 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Sun, 16 Oct 2011 18:56:43 +0800 -Subject: [PATCH 160/271] hotplug: sync_unplug: No " " in task name +Subject: [PATCH 160/282] hotplug: sync_unplug: No " " in task name Otherwise the output will look a little odd. diff --git a/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch b/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch index 41e5f1abe..b42ab54f9 100644 --- a/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch +++ b/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch @@ -1,7 +1,7 @@ -From d62d52eb798f9a9c3d62d8a93205f7556df50cd9 Mon Sep 17 00:00:00 2001 +From 531892878204abb5f100b9f6c209a3eb42814ae5 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Thu, 28 Jul 2011 11:16:00 +0800 -Subject: [PATCH 161/271] hotplug: Reread hotplug_pcp on pin_current_cpu() +Subject: [PATCH 161/282] hotplug: Reread hotplug_pcp on pin_current_cpu() retry When retry happens, it's likely that the task has been migrated to diff --git a/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch b/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch index 957bf6578..b3408656e 100644 --- a/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch +++ b/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch @@ -1,7 +1,7 @@ -From e2afb78f43acf9c2adc574d8361bb4146afc21f7 Mon Sep 17 00:00:00 2001 +From 0d4cad8f0a045960257682398e931846ffff6f98 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Jun 2011 13:26:08 +0200 -Subject: [PATCH 162/271] sched-migrate-disable.patch +Subject: [PATCH 162/282] sched-migrate-disable.patch Signed-off-by: Thomas Gleixner --- @@ -82,7 +82,7 @@ index e6c58d8..94c8430 100644 * Generic and arch helpers */ diff --git a/kernel/sched.c b/kernel/sched.c -index 2c803b2..cdad99c 100644 +index f22e4fd..bb4ed390 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6223,11 +6223,12 @@ static inline void sched_init_granularity(void) diff --git a/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch b/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch index e4f95c0e1..b2ab7287e 100644 --- a/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch +++ b/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch @@ -1,7 +1,7 @@ -From d5f0c2d5e3b534568024bc5a33e124af8a4eb41a Mon Sep 17 00:00:00 2001 +From 0b101ab3dc639790c4afcc568b933c2082d54c29 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 19:35:29 +0200 -Subject: [PATCH 163/271] hotplug-use-migrate-disable.patch +Subject: [PATCH 163/282] hotplug-use-migrate-disable.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch b/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch index 283d26a9f..2434f9890 100644 --- a/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch +++ b/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch @@ -1,7 +1,7 @@ -From 16b4a3d8f67ba68c97da8ce4475f30295eddf7e9 Mon Sep 17 00:00:00 2001 +From 0442c22dc4dfd046ce41eda7a8c348d142c4c5d9 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Sun, 16 Oct 2011 18:56:44 +0800 -Subject: [PATCH 164/271] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE +Subject: [PATCH 164/282] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE cpu_unplug_begin() should be called before CPU_DOWN_PREPARE, because at CPU_DOWN_PREPARE cpu_active is cleared and sched_domain is diff --git a/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch b/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch index a48ebe11e..2e4bded0d 100644 --- a/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch +++ b/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch @@ -1,7 +1,7 @@ -From a4d7225ec1081258126615afcee55e543e7732b4 Mon Sep 17 00:00:00 2001 +From 526dfae1edc4f3553dfd772c4ad3b28abf7ff2b6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:56:42 +0200 -Subject: [PATCH 165/271] ftrace-migrate-disable-tracing.patch +Subject: [PATCH 165/282] ftrace-migrate-disable-tracing.patch Signed-off-by: Thomas Gleixner --- @@ -26,7 +26,7 @@ index c3da42d..7c5e176 100644 #define FTRACE_MAX_EVENT \ diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 697e49d..c44456b 100644 +index 5638104..1ea52d8 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1123,6 +1123,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, diff --git a/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch b/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch index 1dbc3bd15..9f1b62308 100644 --- a/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch +++ b/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch @@ -1,7 +1,7 @@ -From 7754a1d27ec0650158d7cbd4b4e17bebe04edda4 Mon Sep 17 00:00:00 2001 +From 8ad66c814c87ab75d0a11e2af2ce9538e3504d5b Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 16 Nov 2011 13:19:35 -0500 -Subject: [PATCH 166/271] tracing: Show padding as unsigned short +Subject: [PATCH 166/282] tracing: Show padding as unsigned short RT added two bytes to trace migrate disable counting to the trace events and used two bytes of the padding to make the change. The structures and diff --git a/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch b/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch index b4a821da1..4be894dad 100644 --- a/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch +++ b/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch @@ -1,7 +1,7 @@ -From 5822eb0add831b3fbae61f8ed487c9715adca51e Mon Sep 17 00:00:00 2001 +From c5eda07ea7ddefb0e710a1242815595c7b4aaf2b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 19:48:20 +0200 -Subject: [PATCH 167/271] migrate-disable-rt-variant.patch +Subject: [PATCH 167/282] migrate-disable-rt-variant.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch b/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch index 94dec6bd6..b93e198ef 100644 --- a/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch +++ b/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch @@ -1,7 +1,7 @@ -From 15c21e23456de9e9759871f02a576e33c2ede92a Mon Sep 17 00:00:00 2001 +From 823baa6584f84abe09f5539412c24931c96d45ea Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 11 Aug 2011 15:03:35 +0200 -Subject: [PATCH 168/271] sched: Optimize migrate_disable +Subject: [PATCH 168/282] sched: Optimize migrate_disable Change from task_rq_lock() to raw_spin_lock(&rq->lock) to avoid a few atomic ops. See comment on why it should be safe. @@ -13,7 +13,7 @@ Link: http://lkml.kernel.org/n/tip-cbz6hkl5r5mvwtx5s3tor2y6@git.kernel.org 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index cdad99c..92c8fd9 100644 +index bb4ed390..32c1425 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6318,7 +6318,19 @@ void migrate_disable(void) diff --git a/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch b/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch index 4ecd5d82f..709879999 100644 --- a/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch +++ b/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch @@ -1,7 +1,7 @@ -From bc7ca2d81bb7bc98282286500395c6076918028b Mon Sep 17 00:00:00 2001 +From b9897fa4a932a8a1cdcf80787317724a7b3610a7 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 11 Aug 2011 15:14:58 +0200 -Subject: [PATCH 169/271] sched: Generic migrate_disable +Subject: [PATCH 169/282] sched: Generic migrate_disable Make migrate_disable() be a preempt_disable() for !rt kernels. This allows generic code to use it but still enforces that these code @@ -122,7 +122,7 @@ index 94c8430..78fd0a2 100644 /* * Callback to arch code if there's nosmp or maxcpus=0 on the diff --git a/kernel/sched.c b/kernel/sched.c -index 92c8fd9..46c7c53 100644 +index 32c1425..7d4b771 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6223,7 +6223,7 @@ static inline void sched_init_granularity(void) @@ -160,7 +160,7 @@ index 92c8fd9..46c7c53 100644 /* * Move (not current) task off this cpu, onto dest cpu. We're doing diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index c44456b..ff03353 100644 +index 1ea52d8..8d7ee39 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1124,7 +1124,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, diff --git a/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch b/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch index 52812f1d4..4a3032c76 100644 --- a/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch +++ b/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch @@ -1,7 +1,7 @@ -From 297491403bea41d839f74da0eca4da852ed52c4e Mon Sep 17 00:00:00 2001 +From bb45e2678bff052bea335c154679ed104edf41f5 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Tue, 23 Aug 2011 16:12:43 +0200 -Subject: [PATCH 170/271] sched, rt: Fix migrate_enable() thinko +Subject: [PATCH 170/282] sched, rt: Fix migrate_enable() thinko Assigning mask = tsk_cpus_allowed(p) after p->migrate_disable = 0 ensures that we won't see a mask change.. no push/pull, we stack tasks on one CPU. @@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 46c7c53..dd735c8 100644 +index 7d4b771..9a06463 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6375,12 +6375,14 @@ void migrate_enable(void) diff --git a/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch b/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch index fac7e01c1..596458688 100644 --- a/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch +++ b/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch @@ -1,7 +1,7 @@ -From d31c3d5a98e8088fd2358eb8f1f429733254b1f7 Mon Sep 17 00:00:00 2001 +From 42932c13a03b216ff0cb8c1abb98918afd65f443 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 2 Sep 2011 14:29:27 +0200 -Subject: [PATCH 171/271] sched: teach migrate_disable about atomic contexts +Subject: [PATCH 171/282] sched: teach migrate_disable about atomic contexts [] spin_bug+0x94/0xa8 [] do_raw_spin_lock+0x43/0xea @@ -49,7 +49,7 @@ index 32e9e3f..af6cb0c 100644 cpumask_t cpus_allowed; diff --git a/kernel/sched.c b/kernel/sched.c -index dd735c8..89f873e 100644 +index 9a06463..b0ce219 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6306,6 +6306,17 @@ void migrate_disable(void) diff --git a/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch b/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch index 13afb8ef5..7fb4dffbc 100644 --- a/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch +++ b/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch @@ -1,7 +1,7 @@ -From c80f7ab4b80e89dec33c4b002fdd3d50e7f1e6a9 Mon Sep 17 00:00:00 2001 +From 1beb899f7c901bbbb5e98b24a3efac77c583dc29 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 27 Sep 2011 08:40:23 -0400 -Subject: [PATCH 172/271] sched: Postpone actual migration disalbe to schedule +Subject: [PATCH 172/282] sched: Postpone actual migration disalbe to schedule The migrate_disable() can cause a bit of a overhead to the RT kernel, as changing the affinity is expensive to do at every lock encountered. @@ -23,7 +23,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 132 insertions(+), 119 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 89f873e..9bf8918 100644 +index b0ce219..6386168 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4356,6 +4356,135 @@ static inline void schedule_debug(struct task_struct *prev) diff --git a/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch b/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch index a010af1fa..e1b01b42c 100644 --- a/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch +++ b/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch @@ -1,7 +1,7 @@ -From f29ca45cda1d2087a3bf0059dc13e67cb3ab234b Mon Sep 17 00:00:00 2001 +From 3f0d67625aa862ff98f2707d9f3ad5bf303c9a0c Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 27 Sep 2011 08:40:24 -0400 -Subject: [PATCH 173/271] sched: Do not compare cpu masks in scheduler +Subject: [PATCH 173/282] sched: Do not compare cpu masks in scheduler Signed-off-by: Peter Zijlstra Cc: Peter Zijlstra @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 9bf8918..f856bca 100644 +index 6386168..bf72394 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4384,16 +4384,12 @@ static inline void update_migrate_disable(struct task_struct *p) diff --git a/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch b/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch index 18663a27b..2be00f077 100644 --- a/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch +++ b/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch @@ -1,7 +1,7 @@ -From ebd7646db8a7d39f2eb8182b769bd38ebaf2787c Mon Sep 17 00:00:00 2001 +From e50a066c8707c5f08836d6de6bccefc8efc951c2 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 27 Sep 2011 08:40:25 -0400 -Subject: [PATCH 174/271] sched: Have migrate_disable ignore bounded threads +Subject: [PATCH 174/282] sched: Have migrate_disable ignore bounded threads Signed-off-by: Peter Zijlstra Cc: Peter Zijlstra @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index f856bca..c687aec 100644 +index bf72394..d96caa4 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4396,7 +4396,7 @@ void migrate_disable(void) diff --git a/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch b/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch index 43da7f431..bd8602278 100644 --- a/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch +++ b/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch @@ -1,7 +1,7 @@ -From 0def821d2d9294bb01ee69ddd49505dc0d02ef15 Mon Sep 17 00:00:00 2001 +From 5779767e2a9a8fb4e140a391ae535db90aef85e8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 4 Nov 2011 20:48:36 +0100 -Subject: [PATCH 175/271] sched-clear-pf-thread-bound-on-fallback-rq.patch +Subject: [PATCH 175/282] sched-clear-pf-thread-bound-on-fallback-rq.patch Signed-off-by: Thomas Gleixner --- @@ -9,7 +9,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/sched.c b/kernel/sched.c -index c687aec..316205e 100644 +index d96caa4..2f46cd1 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2570,7 +2570,12 @@ static int select_fallback_rq(int cpu, struct task_struct *p) diff --git a/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch b/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch index 560a12bcb..bf80ffc05 100644 --- a/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch +++ b/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch @@ -1,7 +1,7 @@ -From 65ce1893740ebae587772e8702b4f0722c5e998b Mon Sep 17 00:00:00 2001 +From 78c5ac2a4083b7373f6691155bf1afb106973679 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 9 Sep 2011 16:55:53 +0200 -Subject: [PATCH 176/271] ftrace-crap.patch +Subject: [PATCH 176/282] ftrace-crap.patch Signed-off-by: Thomas Gleixner --- @@ -10,7 +10,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index ff03353..f4de7ab 100644 +index 8d7ee39..dcf0df9 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -359,11 +359,13 @@ static DECLARE_DELAYED_WORK(wakeup_work, wakeup_work_handler); @@ -40,7 +40,7 @@ index ff03353..f4de7ab 100644 /** * register_tracer - register a tracer with the ftrace system. * @type - the plugin for the tracer -@@ -3196,6 +3204,7 @@ static int tracing_release_pipe(struct inode *inode, struct file *file) +@@ -3198,6 +3206,7 @@ static int tracing_release_pipe(struct inode *inode, struct file *file) return 0; } @@ -48,7 +48,7 @@ index ff03353..f4de7ab 100644 static unsigned int tracing_poll_pipe(struct file *filp, poll_table *poll_table) { -@@ -3217,8 +3226,7 @@ tracing_poll_pipe(struct file *filp, poll_table *poll_table) +@@ -3219,8 +3228,7 @@ tracing_poll_pipe(struct file *filp, poll_table *poll_table) } } @@ -58,7 +58,7 @@ index ff03353..f4de7ab 100644 { DEFINE_WAIT(wait); -@@ -3229,6 +3237,20 @@ void default_wait_pipe(struct trace_iterator *iter) +@@ -3231,6 +3239,20 @@ void default_wait_pipe(struct trace_iterator *iter) finish_wait(&trace_wait, &wait); } diff --git a/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch b/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch index c79cdae59..dc1bfbbdd 100644 --- a/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch +++ b/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch @@ -1,7 +1,7 @@ -From 897123206e1dc0410e5054fbf88c373531143843 Mon Sep 17 00:00:00 2001 +From f51015c7325c78de24da156edb4d1133e2a090b7 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 27 Sep 2011 13:56:50 -0400 -Subject: [PATCH 177/271] ring-buffer: Convert reader_lock from raw_spin_lock +Subject: [PATCH 177/282] ring-buffer: Convert reader_lock from raw_spin_lock into spin_lock The reader_lock is mostly taken in normal context with interrupts enabled. diff --git a/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch b/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch index e004a0738..8ba87f064 100644 --- a/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch +++ b/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch @@ -1,7 +1,7 @@ -From 7f43d9cea697574c83f4eba936cfcfbdd1054695 Mon Sep 17 00:00:00 2001 +From 20ecad574f342f016655f7dc3be3ce1fbcad3bc0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 16:29:27 +0200 -Subject: [PATCH 178/271] net-netif_rx_ni-migrate-disable.patch +Subject: [PATCH 178/282] net-netif_rx_ni-migrate-disable.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch b/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch index 96ce4a5ca..2a0f4728c 100644 --- a/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch +++ b/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch @@ -1,7 +1,7 @@ -From 66edd8709d647cb183338e671ddd6bb6a96008cf Mon Sep 17 00:00:00 2001 +From bb2ee87ca30a6a1f768ec130fc3318fc65ab961f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 13:16:38 -0500 -Subject: [PATCH 179/271] softirq: Sanitize softirq pending for NOHZ/RT +Subject: [PATCH 179/282] softirq: Sanitize softirq pending for NOHZ/RT Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch b/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch index 4420bc68f..074455cad 100644 --- a/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch +++ b/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch @@ -1,7 +1,7 @@ -From b7470706fd9de7db19b9dd83c10337a6b8a4f0de Mon Sep 17 00:00:00 2001 +From e9bded4a097ab9628e6e76d46987e96247c738c6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 18:51:23 +0200 -Subject: [PATCH 180/271] lockdep-rt.patch +Subject: [PATCH 180/282] lockdep-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch b/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch index 4b78cd6ae..04f4e9c05 100644 --- a/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch +++ b/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch @@ -1,7 +1,7 @@ -From dde7419bb0acbbc9e6c2e3af68a1f6ee6f911ce7 Mon Sep 17 00:00:00 2001 +From 040215c2ed4c41d82289e2aae9d92a3dbf31fa3c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:51:45 +0200 -Subject: [PATCH 181/271] mutex-no-spin-on-rt.patch +Subject: [PATCH 181/282] mutex-no-spin-on-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch b/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch index 25a8017fb..0ea725c33 100644 --- a/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch +++ b/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch @@ -1,7 +1,7 @@ -From 7294c7b2baee98dc63f2cbee366e46b5825e8a1d Mon Sep 17 00:00:00 2001 +From 3456c76d6c653d2ac47f38a3b946f418660a8a2a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 15:57:18 +0200 -Subject: [PATCH 182/271] softirq-local-lock.patch +Subject: [PATCH 182/282] softirq-local-lock.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch b/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch index 17dc1a792..47d0589b7 100644 --- a/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch +++ b/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch @@ -1,7 +1,7 @@ -From c0f99855495893c3c8281474ede568ced3dee991 Mon Sep 17 00:00:00 2001 +From bd62f92c1dc92aa7ce0bb5f6bc74c7fd5db13972 Mon Sep 17 00:00:00 2001 From: John Kacur Date: Mon, 14 Nov 2011 02:44:43 +0100 -Subject: [PATCH 183/271] softirq: Export in_serving_softirq() +Subject: [PATCH 183/282] softirq: Export in_serving_softirq() ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! diff --git a/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch b/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch index e606c233c..9675fd036 100644 --- a/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch +++ b/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch @@ -1,7 +1,7 @@ -From 025ec101e71cab9678031c784551be44433bb309 Mon Sep 17 00:00:00 2001 +From 0111f363c90caa87db86151f8931b46fb37e5d4d Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Thu, 13 Oct 2011 17:19:09 +0800 -Subject: [PATCH 184/271] hardirq.h: Define softirq_count() as OUL to kill +Subject: [PATCH 184/282] hardirq.h: Define softirq_count() as OUL to kill build warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch b/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch index 517ca28fe..4253ad567 100644 --- a/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch +++ b/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch @@ -1,7 +1,7 @@ -From 1e5f781db53b65d0a833433618ce18160bf73c7b Mon Sep 17 00:00:00 2001 +From c586610b67873ab0235240fdc3dc722fd6f7d430 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 30 Sep 2011 15:52:14 +0200 -Subject: [PATCH 185/271] softirq: Fix unplug deadlock +Subject: [PATCH 185/282] softirq: Fix unplug deadlock If ksoftirqd gets woken during hot-unplug, __thread_do_softirq() will call pin_current_cpu() which will block on the held cpu_hotplug.lock. diff --git a/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch b/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch index 56e106408..53312426c 100644 --- a/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch +++ b/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch @@ -1,7 +1,7 @@ -From f2aa9a72082af69fa7e436c5ed9cac8c07bba10e Mon Sep 17 00:00:00 2001 +From 74cbfef4724589f06d7fe41594359fa8626cf141 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 13:59:17 +0200 -Subject: [PATCH 186/271] softirq-disable-softirq-stacks-for-rt.patch +Subject: [PATCH 186/282] softirq-disable-softirq-stacks-for-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch b/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch index 6feefed69..486356f41 100644 --- a/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch +++ b/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch @@ -1,7 +1,7 @@ -From aa7ec9052d287e201889565c4d876cc1c87015f4 Mon Sep 17 00:00:00 2001 +From c2d7799fc86a7e99c5b126829400339ab6bd54f9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jul 2011 21:06:43 +0200 -Subject: [PATCH 187/271] softirq-make-fifo.patch +Subject: [PATCH 187/282] softirq-make-fifo.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch index bd72cbb8e..58f65185d 100644 --- a/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +++ b/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch @@ -1,7 +1,7 @@ -From 068a7ede0cad9a9ccac0007999ccbfc51899e997 Mon Sep 17 00:00:00 2001 +From 71669ee7a2c0fb9ab0f3e1bce477081299bcd4a7 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Tue, 29 Nov 2011 20:18:22 -0500 -Subject: [PATCH 188/271] tasklet: Prevent tasklets from going into infinite +Subject: [PATCH 188/282] tasklet: Prevent tasklets from going into infinite spin in RT When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads, diff --git a/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch index 85496172b..13276aa61 100644 --- a/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +++ b/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch @@ -1,7 +1,7 @@ -From 3d44f43031f26b72b0c992b4c9fa6086cfb7b10c Mon Sep 17 00:00:00 2001 +From d6e00c8f6c3f5dbd495639d7eeae0fc53f533a46 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 Jan 2012 13:01:27 +0100 -Subject: [PATCH 189/271] genirq: Allow disabling of softirq processing in irq +Subject: [PATCH 189/282] genirq: Allow disabling of softirq processing in irq thread context The processing of softirqs in irq thread context is a performance gain diff --git a/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch b/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch index ba65756bc..4594cff11 100644 --- a/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch +++ b/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch @@ -1,7 +1,7 @@ -From 420804f601e4766e2a4c61617fb6aad1a36e64b1 Mon Sep 17 00:00:00 2001 +From 6c3bea2ba959095693ed2f2eaacc8a31ab161efa Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 20:42:16 +0200 -Subject: [PATCH 190/271] local-vars-migrate-disable.patch +Subject: [PATCH 190/282] local-vars-migrate-disable.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch index e1378bf63..102d6975b 100644 --- a/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +++ b/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch @@ -1,7 +1,7 @@ -From e9092a457dc56054064e8e8a41619bfd154e7367 Mon Sep 17 00:00:00 2001 +From b796b63ee31658ee6e305585ed91da5cce80a9cb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 6 Apr 2010 16:51:31 +0200 -Subject: [PATCH 191/271] md: raid5: Make raid5_percpu handling RT aware +Subject: [PATCH 191/282] md: raid5: Make raid5_percpu handling RT aware __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic @@ -19,10 +19,10 @@ Tested-by: Udo van den Heuvel 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 858fdbb..c2401e8 100644 +index 6ba4954..8cb7613 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c -@@ -1245,8 +1245,9 @@ static void __raid_run_ops(struct stripe_head *sh, unsigned long ops_request) +@@ -1251,8 +1251,9 @@ static void __raid_run_ops(struct stripe_head *sh, unsigned long ops_request) struct raid5_percpu *percpu; unsigned long cpu; @@ -33,7 +33,7 @@ index 858fdbb..c2401e8 100644 if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) { ops_run_biofill(sh); overlap_clear++; -@@ -1298,7 +1299,8 @@ static void __raid_run_ops(struct stripe_head *sh, unsigned long ops_request) +@@ -1304,7 +1305,8 @@ static void __raid_run_ops(struct stripe_head *sh, unsigned long ops_request) if (test_and_clear_bit(R5_Overlap, &dev->flags)) wake_up(&sh->raid_conf->wait_for_overlap); } @@ -43,7 +43,7 @@ index 858fdbb..c2401e8 100644 } #ifdef CONFIG_MULTICORE_RAID456 -@@ -4539,6 +4541,7 @@ static int raid5_alloc_percpu(struct r5conf *conf) +@@ -4547,6 +4549,7 @@ static int raid5_alloc_percpu(struct r5conf *conf) break; } per_cpu_ptr(conf->percpu, cpu)->scribble = scribble; diff --git a/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch b/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch index bbf7e86dc..587d585e8 100644 --- a/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch +++ b/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch @@ -1,7 +1,7 @@ -From f56e061a1c52b1faf6c383275e442969c1b5766e Mon Sep 17 00:00:00 2001 +From 68475131b08f80b0689d7111b206ae97b0dfdfc3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 9 Jun 2011 11:43:52 +0200 -Subject: [PATCH 192/271] rtmutex-lock-killable.patch +Subject: [PATCH 192/282] rtmutex-lock-killable.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch b/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch index 57256fc43..f763e5270 100644 --- a/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch +++ b/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch @@ -1,7 +1,7 @@ -From 63729a815de553f61266c16c06b6b586bdf40eb4 Mon Sep 17 00:00:00 2001 +From b58278dc6ee1cf59a92c5ea5dcbc10516c257a53 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 10 Jun 2011 11:04:15 +0200 -Subject: [PATCH 193/271] rtmutex-futex-prepare-rt.patch +Subject: [PATCH 193/282] rtmutex-futex-prepare-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch index 8d23dba71..8c0c0fe07 100644 --- a/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +++ b/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch @@ -1,7 +1,7 @@ -From ad4305e2e682122728ecb257f751fcb0b3e1b836 Mon Sep 17 00:00:00 2001 +From be955a163a4eded51a096906573ff37ea4e1cb57 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 10 Apr 2012 14:34:13 -0400 -Subject: [PATCH 194/271] futex: Fix bug on when a requeued RT task times out +Subject: [PATCH 194/282] futex: Fix bug on when a requeued RT task times out Requeue with timeout causes a bug with PREEMPT_RT_FULL. diff --git a/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch b/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch index b49e491dd..ba19afe9e 100644 --- a/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch +++ b/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch @@ -1,7 +1,7 @@ -From 0bc35e04a6aa0d5064dffb36c9781a6b71c02195 Mon Sep 17 00:00:00 2001 +From fd5044b470027b0f6e5e31251a5deb8a1455f0b8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 10 Jun 2011 11:21:25 +0200 -Subject: [PATCH 195/271] rt-mutex-add-sleeping-spinlocks-support.patch +Subject: [PATCH 195/282] rt-mutex-add-sleeping-spinlocks-support.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch b/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch index de944230b..0e238882d 100644 --- a/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch +++ b/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch @@ -1,7 +1,7 @@ -From 25ab9c9e6f692045af9662683a54d6f8d58eb9ec Mon Sep 17 00:00:00 2001 +From 79b0e2d53b88a4dd8460171494475005996e1489 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 19:34:01 +0200 -Subject: [PATCH 196/271] spinlock-types-separate-raw.patch +Subject: [PATCH 196/282] spinlock-types-separate-raw.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch b/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch index 0f546ff46..aff7251ea 100644 --- a/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch +++ b/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch @@ -1,7 +1,7 @@ -From c8fccd9fbad72f51dfa88bf8241f1c0b9b3f1873 Mon Sep 17 00:00:00 2001 +From 736ec78653ac0582af280b09792f680c1558d3f8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 20:06:39 +0200 -Subject: [PATCH 197/271] rtmutex-avoid-include-hell.patch +Subject: [PATCH 197/282] rtmutex-avoid-include-hell.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch b/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch index 61f04ce46..dab5e5647 100644 --- a/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch +++ b/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch @@ -1,7 +1,7 @@ -From 9e5e2b3a9eb2fbb4938e70703bed6af3a4cea7f3 Mon Sep 17 00:00:00 2001 +From e7fefc493d72d19fa255aa54adcfdeced993d686 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 19:43:35 +0200 -Subject: [PATCH 198/271] rt-add-rt-spinlocks.patch +Subject: [PATCH 198/282] rt-add-rt-spinlocks.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch b/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch index e9e22eeba..1dcec66ee 100644 --- a/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch +++ b/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch @@ -1,7 +1,7 @@ -From 00470c04c494c3d79901a903d52e352e318ce35e Mon Sep 17 00:00:00 2001 +From 02174bd317bddbffaf86ebe9a748cf62d8585c5e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 20:56:22 +0200 -Subject: [PATCH 199/271] rt-add-rt-to-mutex-headers.patch +Subject: [PATCH 199/282] rt-add-rt-to-mutex-headers.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch b/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch index 509fc73ab..e1f71b886 100644 --- a/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch +++ b/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch @@ -1,7 +1,7 @@ -From 96ecdf14553a29759ac88843c31443d0b810ea92 Mon Sep 17 00:00:00 2001 +From e6bc2511b85527debac77a3027e656994e5a7d78 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 21:02:53 +0200 -Subject: [PATCH 200/271] rwsem-add-rt-variant.patch +Subject: [PATCH 200/282] rwsem-add-rt-variant.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch b/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch index 032cfebd1..6b9eb2f1a 100644 --- a/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch +++ b/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch @@ -1,7 +1,7 @@ -From ddeb99a8987f7f3197d563a5cfe82f1b7053269b Mon Sep 17 00:00:00 2001 +From 1c392b437459aca9796dda8e02e666e5d73546a6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 26 Jul 2009 19:39:56 +0200 -Subject: [PATCH 201/271] rt: Add the preempt-rt lock replacement APIs +Subject: [PATCH 201/282] rt: Add the preempt-rt lock replacement APIs Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex based locking functions for preempt-rt. diff --git a/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch b/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch index 5d503f907..c59a48b63 100644 --- a/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch +++ b/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch @@ -1,7 +1,7 @@ -From a405034a460d2d0348e311cf4a96cec19e438b97 Mon Sep 17 00:00:00 2001 +From 34a021b7c39ce7d57a1e44f948f286dec6dde2fb Mon Sep 17 00:00:00 2001 From: John Kacur Date: Mon, 19 Sep 2011 11:09:27 +0200 -Subject: [PATCH 202/271] rwlocks: Fix section mismatch +Subject: [PATCH 202/282] rwlocks: Fix section mismatch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch b/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch index 11d193885..274ed6fd6 100644 --- a/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch +++ b/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch @@ -1,7 +1,7 @@ -From 1d23b0348fbc31941809798a980f366ef947b3d7 Mon Sep 17 00:00:00 2001 +From 7e9f0a139f25c7ea7b918510a9d727665d36e3a5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 22:08:38 +0200 -Subject: [PATCH 203/271] timer-handle-idle-trylock-in-get-next-timer-irq.patch +Subject: [PATCH 203/282] timer-handle-idle-trylock-in-get-next-timer-irq.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch b/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch index 1bc7a3e08..6df233196 100644 --- a/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch +++ b/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch @@ -1,7 +1,7 @@ -From 4864a89f1d69a916e5c9d09825a8999711317913 Mon Sep 17 00:00:00 2001 +From 980ab6bba74ed5473d229a1defd6ac98639da62b Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:30 -0500 -Subject: [PATCH 204/271] RCU: Force PREEMPT_RCU for PREEMPT-RT +Subject: [PATCH 204/282] RCU: Force PREEMPT_RCU for PREEMPT-RT PREEMPT_RT relies on PREEMPT_RCU - only allow RCU to be configured interactively in the !PREEMPT_RT case. diff --git a/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch b/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch index 96c299f00..c7411e330 100644 --- a/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch +++ b/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch @@ -1,7 +1,7 @@ -From 600cb11178735715304dbc05dc42a9f4a38e6294 Mon Sep 17 00:00:00 2001 +From 3fab42d31ad6212337670d6208fafc11d5e8518e Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Sat, 13 Aug 2011 00:23:17 +0200 -Subject: [PATCH 205/271] rcu: Frob softirq test +Subject: [PATCH 205/282] rcu: Frob softirq test With RT_FULL we get the below wreckage: diff --git a/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch index 49fc1c71d..249ccd228 100644 --- a/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch +++ b/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch @@ -1,7 +1,7 @@ -From 686ef7c0afa9d00c0d2b3e92640a03466a4eb262 Mon Sep 17 00:00:00 2001 +From d4e671c17a1c0c45947409718f37fe44fdf15c96 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 5 Oct 2011 11:59:38 -0700 -Subject: [PATCH 206/271] rcu: Merge RCU-bh into RCU-preempt +Subject: [PATCH 206/282] rcu: Merge RCU-bh into RCU-preempt 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/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch b/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch index b82ac13aa..89e544658 100644 --- a/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch +++ b/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch @@ -1,7 +1,7 @@ -From a9fcfdd233ec38ca43f008e909d18c6114dbc250 Mon Sep 17 00:00:00 2001 +From aebde36f21d3f0bd04d6a44bd088222f9900bc1d Mon Sep 17 00:00:00 2001 From: John Kacur Date: Mon, 14 Nov 2011 02:44:42 +0100 -Subject: [PATCH 207/271] rcu: Fix macro substitution for synchronize_rcu_bh() +Subject: [PATCH 207/282] rcu: Fix macro substitution for synchronize_rcu_bh() on RT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch b/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch index 018d4e0a8..7cbb9f0c3 100644 --- a/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch +++ b/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch @@ -1,7 +1,7 @@ -From 8f0c27b98405d1c30f048a50a37086249e1e7020 Mon Sep 17 00:00:00 2001 +From fcb2be03b1bf2b2e7d94f1744920e36e8a503cd1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 14 Nov 2011 10:57:54 +0100 -Subject: [PATCH 208/271] rcu-more-fallout.patch +Subject: [PATCH 208/282] rcu-more-fallout.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch index 2d5408e26..2afc23b76 100644 --- a/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +++ b/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch @@ -1,7 +1,7 @@ -From 20f740e1cc883044915bf61344a482191d4c3f1c Mon Sep 17 00:00:00 2001 +From 01cf509ce91e102a8a559d1915c3cfb65ba0f6ea Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Wed, 5 Oct 2011 11:45:18 -0700 -Subject: [PATCH 209/271] rcu: Make ksoftirqd do RCU quiescent states +Subject: [PATCH 209/282] rcu: Make ksoftirqd do RCU quiescent states 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/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch b/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch index 48e9af262..b9e5ae79c 100644 --- a/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch +++ b/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch @@ -1,7 +1,7 @@ -From 554489274951704818f5e11a1246ce15085f539e Mon Sep 17 00:00:00 2001 +From 7bf34488013f754f247a637c5e8881e99a725101 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 14 Dec 2011 12:51:28 +0100 -Subject: [PATCH 210/271] rt/rcutree: Move misplaced prototype +Subject: [PATCH 210/282] rt/rcutree: Move misplaced prototype MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch b/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch index a613cffa3..aec42f98d 100644 --- a/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch +++ b/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch @@ -1,7 +1,7 @@ -From 38a27afbe2af41fb63f6546d24a89594830c00ce Mon Sep 17 00:00:00 2001 +From dfe9f9023836c611d735143f3ab0cf3653ede271 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 15 Jun 2011 11:02:21 +0200 -Subject: [PATCH 211/271] lglocks-rt.patch +Subject: [PATCH 211/282] lglocks-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch b/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch index 99893c4b7..7d2de2609 100644 --- a/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch +++ b/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch @@ -1,7 +1,7 @@ -From f9d8256725aaf4f9bc4ce99ece1e8b8d2c35ebe8 Mon Sep 17 00:00:00 2001 +From f92b2a2ab0f5de784405ae056facd175dd0fd710 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:01 -0500 -Subject: [PATCH 212/271] serial: 8250: Clean up the locking for -rt +Subject: [PATCH 212/282] serial: 8250: Clean up the locking for -rt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner diff --git a/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch b/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch index 15d0efe64..7f9892c85 100644 --- a/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch +++ b/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch @@ -1,7 +1,7 @@ -From 4cd86d50f81b22c35c3ab73a6e5ed3e14d16c9cb Mon Sep 17 00:00:00 2001 +From dafcd5e4cebf9282fd6a8d0af2d915904dddf382 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:01 -0500 -Subject: [PATCH 213/271] serial: 8250: Call flush_to_ldisc when the irq is +Subject: [PATCH 213/282] serial: 8250: Call flush_to_ldisc when the irq is threaded Signed-off-by: Ingo Molnar diff --git a/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch b/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch index 4c4d8366d..54d099ae2 100644 --- a/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch +++ b/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch @@ -1,7 +1,7 @@ -From 6e07b71316fcd6f69a2e9230d6ba993af50a3a44 Mon Sep 17 00:00:00 2001 +From 9f4b6c7ddfe57a31790b8dd052c91fd2d0063d02 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 -Subject: [PATCH 214/271] drivers-tty-fix-omap-lock-crap.patch +Subject: [PATCH 214/282] drivers-tty-fix-omap-lock-crap.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch index ec655715e..7980a53ce 100644 --- a/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch +++ b/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch @@ -1,7 +1,7 @@ -From ad90e83698ceff79059fc79c9120a6cd26d050df Mon Sep 17 00:00:00 2001 +From 075f10a3d7d377a5a028e0e93e4c6d88ec3db6cd Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 14 Dec 2011 13:05:54 +0100 -Subject: [PATCH 215/271] rt: Improve the serial console PASS_LIMIT +Subject: [PATCH 215/282] rt: Improve the serial console PASS_LIMIT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch b/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch index 0c2c48cf3..925e996ed 100644 --- a/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch +++ b/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch @@ -1,7 +1,7 @@ -From 818524b2f0a8fcdfcd31d57db28473bed012408e Mon Sep 17 00:00:00 2001 +From e3e61e2be6dd72506cc6a19d922557640d61138f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 19 Jul 2009 08:44:27 -0500 -Subject: [PATCH 216/271] fs: namespace preemption fix +Subject: [PATCH 216/282] fs: namespace preemption fix On RT we cannot loop with preemption disabled here as mnt_make_readonly() might have been preempted. We can safely enable diff --git a/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch b/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch index 3cba8932e..cfaae5101 100644 --- a/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch +++ b/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch @@ -1,7 +1,7 @@ -From 17888fdacbf63accc5bb522b870998eb169bb489 Mon Sep 17 00:00:00 2001 +From 4e43b88fd122994485809cf573792ea8f17bb5d9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 4 Jul 2011 09:48:40 +0200 -Subject: [PATCH 217/271] mm-protect-activate-switch-mm.patch +Subject: [PATCH 217/282] mm-protect-activate-switch-mm.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch b/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch index 7e0ea76a4..dddd6bb7c 100644 --- a/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch +++ b/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch @@ -1,7 +1,7 @@ -From d1a20aa23e3d3a7f863359c7efeac7c2e25168e3 Mon Sep 17 00:00:00 2001 +From 5a0628e24af22d4c3688e3628104001ac02ae638 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jun 2011 17:05:09 +0200 -Subject: [PATCH 218/271] fs-block-rt-support.patch +Subject: [PATCH 218/282] fs-block-rt-support.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch b/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch index 4eeb3f457..ee578411a 100644 --- a/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch +++ b/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch @@ -1,7 +1,7 @@ -From 9e7b71e9591413798128a375c2860550a0e17690 Mon Sep 17 00:00:00 2001 +From 7835474b053efcefe77f45142933b9aa287f650d Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Fri, 3 Jul 2009 08:44:12 -0500 -Subject: [PATCH 219/271] fs: ntfs: disable interrupt only on !RT +Subject: [PATCH 219/282] fs: ntfs: disable interrupt only on !RT On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote: > * Nick Piggin wrote: diff --git a/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch b/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch index 4abcb4a51..fd8ad9008 100644 --- a/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch +++ b/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch @@ -1,7 +1,7 @@ -From afb22a2588eb56bac19438dacbba0ec240c67721 Mon Sep 17 00:00:00 2001 +From dabbe4835cf07f0489f92c8daee2e124a1260b5c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 13 Dec 2010 16:33:39 +0100 -Subject: [PATCH 220/271] x86: Convert mce timer to hrtimer +Subject: [PATCH 220/282] x86: Convert mce timer to hrtimer mce_timer is started in atomic contexts of cpu bringup. This results in might_sleep() warnings on RT. Convert mce_timer to a hrtimer to diff --git a/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch index 7e430aa30..8bc150457 100644 --- a/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch +++ b/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch @@ -1,7 +1,7 @@ -From 6929c91ac27618fa7e49f22f9a3599f207a926e5 Mon Sep 17 00:00:00 2001 +From 5ed6bb39d98bfe7b85406228ec591bbaffea9946 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Dec 2010 14:25:18 +0100 -Subject: [PATCH 221/271] x86: stackprotector: Avoid random pool on rt +Subject: [PATCH 221/282] x86: stackprotector: Avoid random pool on rt 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/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch index 6e109f8cf..c49296494 100644 --- a/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch +++ b/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch @@ -1,7 +1,7 @@ -From c03c30327d32234c43a859522fcafd9d892e8998 Mon Sep 17 00:00:00 2001 +From 4690c13714e7b5fd3ad9401018615e2650a5130d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 26 Jul 2009 02:21:32 +0200 -Subject: [PATCH 222/271] x86: Use generic rwsem_spinlocks on -rt +Subject: [PATCH 222/282] x86: Use generic rwsem_spinlocks on -rt Simplifies the separation of anon_rw_semaphores and rw_semaphores for -rt. diff --git a/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch b/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch index 1ddcfc2d2..86f458d81 100644 --- a/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch +++ b/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch @@ -1,7 +1,7 @@ -From 37a8c7948f62d89eefa1fa75c94d2cbef308c409 Mon Sep 17 00:00:00 2001 +From d0e1d0ad6646e70a2b81bdab7a2dc4017afa2b51 Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Fri, 3 Jul 2009 08:44:10 -0500 -Subject: [PATCH 223/271] x86: Disable IST stacks for debug/int 3/stack fault +Subject: [PATCH 223/282] x86: Disable IST stacks for debug/int 3/stack fault for PREEMPT_RT Normally the x86-64 trap handlers for debug/int 3/stack fault run diff --git a/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch b/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch index 0ae956290..1e060bd1e 100644 --- a/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch +++ b/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch @@ -1,7 +1,7 @@ -From 1882e11963e2c548cf2e1b6db443ae57a36aef6e Mon Sep 17 00:00:00 2001 +From 581ff35e0c927a7306bd2d6406ddf18dc92f1354 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:42:26 +0200 -Subject: [PATCH 224/271] workqueue-use-get-cpu-light.patch +Subject: [PATCH 224/282] workqueue-use-get-cpu-light.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0225-epoll.patch.patch b/debian/patches/features/all/rt/0225-epoll.patch.patch index 4a0f77cc5..1acc77db2 100644 --- a/debian/patches/features/all/rt/0225-epoll.patch.patch +++ b/debian/patches/features/all/rt/0225-epoll.patch.patch @@ -1,7 +1,7 @@ -From 324df13ee0fc61d910ac83df6d8e597ec65efe42 Mon Sep 17 00:00:00 2001 +From e37fd5603f218cd00ea9e612ea5f10e39cef68c8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 16:35:35 +0200 -Subject: [PATCH 225/271] epoll.patch +Subject: [PATCH 225/282] epoll.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch b/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch index fe0cb670a..e76582820 100644 --- a/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch +++ b/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch @@ -1,7 +1,7 @@ -From db408def0885825ff24e72d6b842ab179fb8254c Mon Sep 17 00:00:00 2001 +From e635eb81d1daac1a9a8107fef6cb0c7b86626f4c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 11:39:36 +0200 -Subject: [PATCH 226/271] mm-vmalloc.patch +Subject: [PATCH 226/282] mm-vmalloc.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0227-workqueue-Fix-cpuhotplug-trainwreck.patch b/debian/patches/features/all/rt/0227-workqueue-Fix-cpuhotplug-trainwreck.patch index 82657bd64..bde2e0e45 100644 --- a/debian/patches/features/all/rt/0227-workqueue-Fix-cpuhotplug-trainwreck.patch +++ b/debian/patches/features/all/rt/0227-workqueue-Fix-cpuhotplug-trainwreck.patch @@ -1,7 +1,7 @@ -From be8c122edb51e40f2a88c9fbe7f3effc7015ec69 Mon Sep 17 00:00:00 2001 +From a7d9e4dc7ba971c9d775360f9c717ade76ec7456 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 30 Sep 2011 11:57:58 +0200 -Subject: [PATCH 227/271] workqueue: Fix cpuhotplug trainwreck +Subject: [PATCH 227/282] workqueue: Fix cpuhotplug trainwreck The current workqueue code does crazy stuff on cpu unplug, it relies on forced affine breakage, thereby violating per-cpu expectations. Worse, diff --git a/debian/patches/features/all/rt/0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch b/debian/patches/features/all/rt/0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch index 41b9679c6..ddd1c26d9 100644 --- a/debian/patches/features/all/rt/0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch +++ b/debian/patches/features/all/rt/0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch @@ -1,7 +1,7 @@ -From e219938b97dcd7e110c06527dbb6c2e91a7adaf0 Mon Sep 17 00:00:00 2001 +From ab52553ce10ebbb5187aec8feb1f8cf2ae835745 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 3 Oct 2011 12:43:25 +0200 -Subject: [PATCH 228/271] workqueue: Fix PF_THREAD_BOUND abuse +Subject: [PATCH 228/282] workqueue: Fix PF_THREAD_BOUND abuse PF_THREAD_BOUND is set by kthread_bind() and means the thread is bound to a particular cpu for correctness. The workqueue code abuses this diff --git a/debian/patches/features/all/rt/0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch b/debian/patches/features/all/rt/0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch index ee2306337..7153f85b6 100644 --- a/debian/patches/features/all/rt/0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch +++ b/debian/patches/features/all/rt/0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch @@ -1,7 +1,7 @@ -From 325348467f26839c302200835fce7ffbe2840773 Mon Sep 17 00:00:00 2001 +From 70cb7a3fb09d9e9c34813fa6b0630e0e2f30afc7 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Sun, 16 Oct 2011 18:56:46 +0800 -Subject: [PATCH 229/271] workqueue: Use get_cpu_light() in flush_gcwq() +Subject: [PATCH 229/282] workqueue: Use get_cpu_light() in flush_gcwq() BUG: sleeping function called from invalid context at kernel/rtmutex.c:645 in_atomic(): 1, irqs_disabled(): 0, pid: 1739, name: bash diff --git a/debian/patches/features/all/rt/0230-hotplug-stuff.patch.patch b/debian/patches/features/all/rt/0230-hotplug-stuff.patch.patch index 9c631ee96..f503cecd9 100644 --- a/debian/patches/features/all/rt/0230-hotplug-stuff.patch.patch +++ b/debian/patches/features/all/rt/0230-hotplug-stuff.patch.patch @@ -1,7 +1,7 @@ -From 45c6749a31fb2e9775423618bee9d5f5b572bc42 Mon Sep 17 00:00:00 2001 +From 87c93d741b1f53a098e26f5aa6c58a93b5722dc2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 4 Nov 2011 18:58:24 +0100 -Subject: [PATCH 230/271] hotplug-stuff.patch +Subject: [PATCH 230/282] hotplug-stuff.patch Do not take lock for non handled cases (might be atomic context) diff --git a/debian/patches/features/all/rt/0231-debugobjects-rt.patch.patch b/debian/patches/features/all/rt/0231-debugobjects-rt.patch.patch index 44c92fd85..35a4e2856 100644 --- a/debian/patches/features/all/rt/0231-debugobjects-rt.patch.patch +++ b/debian/patches/features/all/rt/0231-debugobjects-rt.patch.patch @@ -1,7 +1,7 @@ -From 9619f70dd9f0f74d120fcf5e75028db5ba810897 Mon Sep 17 00:00:00 2001 +From a96c5f5ef76e11807024504301264130b1e94683 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:41:35 +0200 -Subject: [PATCH 231/271] debugobjects-rt.patch +Subject: [PATCH 231/282] debugobjects-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0232-jump-label-rt.patch.patch b/debian/patches/features/all/rt/0232-jump-label-rt.patch.patch index f1b0ac634..cb3e4587b 100644 --- a/debian/patches/features/all/rt/0232-jump-label-rt.patch.patch +++ b/debian/patches/features/all/rt/0232-jump-label-rt.patch.patch @@ -1,7 +1,7 @@ -From dab12832a0e0d7a33e2afe3c5ea05bcbe6904d76 Mon Sep 17 00:00:00 2001 +From de5b87d9a4930a85f259f9226de92c042ff557ad Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 13 Jul 2011 11:03:16 +0200 -Subject: [PATCH 232/271] jump-label-rt.patch +Subject: [PATCH 232/282] jump-label-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0233-skbufhead-raw-lock.patch.patch b/debian/patches/features/all/rt/0233-skbufhead-raw-lock.patch.patch index 9461f6e68..64d769cda 100644 --- a/debian/patches/features/all/rt/0233-skbufhead-raw-lock.patch.patch +++ b/debian/patches/features/all/rt/0233-skbufhead-raw-lock.patch.patch @@ -1,7 +1,7 @@ -From 7c340f56c62ecfc8e38734d27dcd620511115773 Mon Sep 17 00:00:00 2001 +From b99aabd4f5e28195e4fb4b037d64211da9bc5d6a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 15:38:34 +0200 -Subject: [PATCH 233/271] skbufhead-raw-lock.patch +Subject: [PATCH 233/282] skbufhead-raw-lock.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0234-x86-no-perf-irq-work-rt.patch.patch b/debian/patches/features/all/rt/0234-x86-no-perf-irq-work-rt.patch.patch index 4deed3d81..7e38dfa19 100644 --- a/debian/patches/features/all/rt/0234-x86-no-perf-irq-work-rt.patch.patch +++ b/debian/patches/features/all/rt/0234-x86-no-perf-irq-work-rt.patch.patch @@ -1,7 +1,7 @@ -From 7ff26a4e498110abe0b33f670f7c28aabb6609a0 Mon Sep 17 00:00:00 2001 +From 710e9ca8bb6dcbf419cb58f61c977d2a0f092f41 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 13 Jul 2011 14:05:05 +0200 -Subject: [PATCH 234/271] x86-no-perf-irq-work-rt.patch +Subject: [PATCH 234/282] x86-no-perf-irq-work-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0235-console-make-rt-friendly.patch.patch b/debian/patches/features/all/rt/0235-console-make-rt-friendly.patch.patch index 0cb3d5ee3..5dfe2a089 100644 --- a/debian/patches/features/all/rt/0235-console-make-rt-friendly.patch.patch +++ b/debian/patches/features/all/rt/0235-console-make-rt-friendly.patch.patch @@ -1,7 +1,7 @@ -From 7b992d36d3f990ac56ee7f9722def7a6f494cffd Mon Sep 17 00:00:00 2001 +From f95189c4897dae842df819b47c475a6e55b10968 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 22:43:07 +0200 -Subject: [PATCH 235/271] console-make-rt-friendly.patch +Subject: [PATCH 235/282] console-make-rt-friendly.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0236-printk-Disable-migration-instead-of-preemption.patch b/debian/patches/features/all/rt/0236-printk-Disable-migration-instead-of-preemption.patch index 37a4383b1..3fd1fcd1d 100644 --- a/debian/patches/features/all/rt/0236-printk-Disable-migration-instead-of-preemption.patch +++ b/debian/patches/features/all/rt/0236-printk-Disable-migration-instead-of-preemption.patch @@ -1,7 +1,7 @@ -From 0457387c9839435b4d57bae9cff2f0e2aad30802 Mon Sep 17 00:00:00 2001 +From d64c0c55609757ae5706e4dc04c5b2d7435fb206 Mon Sep 17 00:00:00 2001 From: Richard Weinberger Date: Mon, 12 Dec 2011 14:35:56 +0100 -Subject: [PATCH 236/271] printk: Disable migration instead of preemption +Subject: [PATCH 236/282] printk: Disable migration instead of preemption There is no need do disable preemption in vprintk(), disable_migrate() is sufficient. This fixes the following bug in -rt: diff --git a/debian/patches/features/all/rt/0237-power-use-generic-rwsem-on-rt.patch b/debian/patches/features/all/rt/0237-power-use-generic-rwsem-on-rt.patch index 3dfc8fa12..19e4d3dfb 100644 --- a/debian/patches/features/all/rt/0237-power-use-generic-rwsem-on-rt.patch +++ b/debian/patches/features/all/rt/0237-power-use-generic-rwsem-on-rt.patch @@ -1,7 +1,7 @@ -From ea54720cb5b1ec946f2d8e6544998a7dd723dec7 Mon Sep 17 00:00:00 2001 +From 8abf3a8f2a3010f49aecc195bef940e7e26fec3c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 10 Apr 2012 14:34:18 -0400 -Subject: [PATCH 237/271] power-use-generic-rwsem-on-rt +Subject: [PATCH 237/282] power-use-generic-rwsem-on-rt --- arch/powerpc/Kconfig | 3 ++- diff --git a/debian/patches/features/all/rt/0238-power-disable-highmem-on-rt.patch.patch b/debian/patches/features/all/rt/0238-power-disable-highmem-on-rt.patch.patch index 7bebd6934..a323d6dbb 100644 --- a/debian/patches/features/all/rt/0238-power-disable-highmem-on-rt.patch.patch +++ b/debian/patches/features/all/rt/0238-power-disable-highmem-on-rt.patch.patch @@ -1,7 +1,7 @@ -From ad77318d1737d00b2de554c3a087b9fb7d59f50a Mon Sep 17 00:00:00 2001 +From 67f12b592052f2dd437379defcf6abef8a6b39e9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:08:34 +0200 -Subject: [PATCH 238/271] power-disable-highmem-on-rt.patch +Subject: [PATCH 238/282] power-disable-highmem-on-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0239-arm-disable-highmem-on-rt.patch.patch b/debian/patches/features/all/rt/0239-arm-disable-highmem-on-rt.patch.patch index 4728123c6..8af703db8 100644 --- a/debian/patches/features/all/rt/0239-arm-disable-highmem-on-rt.patch.patch +++ b/debian/patches/features/all/rt/0239-arm-disable-highmem-on-rt.patch.patch @@ -1,7 +1,7 @@ -From af6a1f1ce3a0ab5add0ede2cf31095786fa40b5f Mon Sep 17 00:00:00 2001 +From ab4a42c5d9568105ca3cf8510eb7b76933a5a99e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:09:28 +0200 -Subject: [PATCH 239/271] arm-disable-highmem-on-rt.patch +Subject: [PATCH 239/282] arm-disable-highmem-on-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch b/debian/patches/features/all/rt/0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch index ce4596b39..e33db2c44 100644 --- a/debian/patches/features/all/rt/0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch +++ b/debian/patches/features/all/rt/0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch @@ -1,7 +1,7 @@ -From 952d80801423eaa6cf09414c8f71890099eede95 Mon Sep 17 00:00:00 2001 +From b05bcd1c1fae42c2c4d98a1a5e08635cd8e755ef Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 1 May 2010 18:29:35 +0200 -Subject: [PATCH 240/271] ARM: at91: tclib: Default to tclib timer for RT +Subject: [PATCH 240/282] ARM: at91: tclib: Default to tclib timer for RT RT is not too happy about the shared timer interrupt in AT91 devices. Default to tclib timer for RT. diff --git a/debian/patches/features/all/rt/0241-mips-disable-highmem-on-rt.patch.patch b/debian/patches/features/all/rt/0241-mips-disable-highmem-on-rt.patch.patch index f7479e696..7b971420e 100644 --- a/debian/patches/features/all/rt/0241-mips-disable-highmem-on-rt.patch.patch +++ b/debian/patches/features/all/rt/0241-mips-disable-highmem-on-rt.patch.patch @@ -1,7 +1,7 @@ -From 6c3284be883940e5832f1c37fb2a3793f6562b1d Mon Sep 17 00:00:00 2001 +From c63b87f027f0b13d6cc5af18948c22ae34e42b73 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:10:12 +0200 -Subject: [PATCH 241/271] mips-disable-highmem-on-rt.patch +Subject: [PATCH 241/282] mips-disable-highmem-on-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch b/debian/patches/features/all/rt/0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch index ed1f836a0..6397d7cfd 100644 --- a/debian/patches/features/all/rt/0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch +++ b/debian/patches/features/all/rt/0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch @@ -1,7 +1,7 @@ -From d87b6967a333be4a6aff553b8ed740f75d0be7f8 Mon Sep 17 00:00:00 2001 +From 0e84272c3cc440bcf82c85b509a41025c37f8af4 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 6 Oct 2011 10:48:39 -0400 -Subject: [PATCH 242/271] net: Avoid livelock in net_tx_action() on RT +Subject: [PATCH 242/282] net: Avoid livelock in net_tx_action() on RT qdisc_lock is taken w/o disabling interrupts or bottom halfs. So code holding a qdisc_lock() can be interrupted and softirqs can run on the diff --git a/debian/patches/features/all/rt/0243-ping-sysrq.patch.patch b/debian/patches/features/all/rt/0243-ping-sysrq.patch.patch index 04bf19e37..bd82b8beb 100644 --- a/debian/patches/features/all/rt/0243-ping-sysrq.patch.patch +++ b/debian/patches/features/all/rt/0243-ping-sysrq.patch.patch @@ -1,7 +1,7 @@ -From cb365ae10d414b663ed50187d49a02b53876218b Mon Sep 17 00:00:00 2001 +From 00e8b5d95c00eaacd0c21e28d637c9e3fb2aeaf8 Mon Sep 17 00:00:00 2001 From: Carsten Emde Date: Tue, 19 Jul 2011 13:51:17 +0100 -Subject: [PATCH 243/271] ping-sysrq.patch +Subject: [PATCH 243/282] ping-sysrq.patch There are (probably rare) situations when a system crashed and the system console becomes unresponsive but the network icmp layer still is alive. diff --git a/debian/patches/features/all/rt/0244-kgdb-serial-Short-term-workaround.patch b/debian/patches/features/all/rt/0244-kgdb-serial-Short-term-workaround.patch index 4644eaacf..3bf8ec90b 100644 --- a/debian/patches/features/all/rt/0244-kgdb-serial-Short-term-workaround.patch +++ b/debian/patches/features/all/rt/0244-kgdb-serial-Short-term-workaround.patch @@ -1,7 +1,7 @@ -From 6494d399f04fefaad6a9272ca415c64e5eb58a0c Mon Sep 17 00:00:00 2001 +From 8d9e59eb1c9d07257389761efa3f2fafd5efcbd7 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Thu, 28 Jul 2011 12:42:23 -0500 -Subject: [PATCH 244/271] kgdb/serial: Short term workaround +Subject: [PATCH 244/282] kgdb/serial: Short term workaround On 07/27/2011 04:37 PM, Thomas Gleixner wrote: > - KGDB (not yet disabled) is reportedly unusable on -rt right now due diff --git a/debian/patches/features/all/rt/0245-add-sys-kernel-realtime-entry.patch b/debian/patches/features/all/rt/0245-add-sys-kernel-realtime-entry.patch index 8ff932d92..04b3c288f 100644 --- a/debian/patches/features/all/rt/0245-add-sys-kernel-realtime-entry.patch +++ b/debian/patches/features/all/rt/0245-add-sys-kernel-realtime-entry.patch @@ -1,7 +1,7 @@ -From 549bfe0dcabd1cc1b7d47d00dd0ee3ee6ae860f1 Mon Sep 17 00:00:00 2001 +From 33ecbefdf7721168f934b96db57f533dda2b0680 Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 -Subject: [PATCH 245/271] add /sys/kernel/realtime entry +Subject: [PATCH 245/282] add /sys/kernel/realtime entry Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. diff --git a/debian/patches/features/all/rt/0246-mm-rt-kmap_atomic-scheduling.patch b/debian/patches/features/all/rt/0246-mm-rt-kmap_atomic-scheduling.patch index ffe43f8e2..8fe33a0ae 100644 --- a/debian/patches/features/all/rt/0246-mm-rt-kmap_atomic-scheduling.patch +++ b/debian/patches/features/all/rt/0246-mm-rt-kmap_atomic-scheduling.patch @@ -1,7 +1,7 @@ -From 6afdb3d9259405e0fcb8b0ed0202fd222354ae4b Mon Sep 17 00:00:00 2001 +From 308e2bc43acca8555609c62b6cd68f7fe8cad4f0 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 28 Jul 2011 10:43:51 +0200 -Subject: [PATCH 246/271] mm, rt: kmap_atomic scheduling +Subject: [PATCH 246/282] mm, rt: kmap_atomic scheduling 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/features/all/rt/0247-ipc-sem-Rework-semaphore-wakeups.patch b/debian/patches/features/all/rt/0247-ipc-sem-Rework-semaphore-wakeups.patch index 31e4d70b8..621777fc9 100644 --- a/debian/patches/features/all/rt/0247-ipc-sem-Rework-semaphore-wakeups.patch +++ b/debian/patches/features/all/rt/0247-ipc-sem-Rework-semaphore-wakeups.patch @@ -1,7 +1,7 @@ -From 3ff09c18bef2ba0721662beea7bf8bfb82f07e48 Mon Sep 17 00:00:00 2001 +From 2ee07bf22c87aaf29def43054f4d4ae049093e02 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 13 Sep 2011 15:09:40 +0200 -Subject: [PATCH 247/271] ipc/sem: Rework semaphore wakeups +Subject: [PATCH 247/282] ipc/sem: Rework semaphore wakeups Current sysv sems have a weird ass wakeup scheme that involves keeping preemption disabled over a potential O(n^2) loop and busy waiting on diff --git a/debian/patches/features/all/rt/0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch b/debian/patches/features/all/rt/0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch index 6e797b3ab..31110ebbb 100644 --- a/debian/patches/features/all/rt/0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch +++ b/debian/patches/features/all/rt/0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch @@ -1,7 +1,7 @@ -From 4cfe99af9a7fab14a52aeff48f057bc66720a6ca Mon Sep 17 00:00:00 2001 +From 24c21bd75c142ffd7a03e9759bf85d134edcd7bf Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Fri, 23 Sep 2011 13:43:12 -0700 -Subject: [PATCH 248/271] sysrq: Allow immediate Magic SysRq output for +Subject: [PATCH 248/282] sysrq: Allow immediate Magic SysRq output for PREEMPT_RT_FULL Add a CONFIG option to allow the output from Magic SysRq to be output diff --git a/debian/patches/features/all/rt/0249-x86-kvm-require-const-tsc-for-rt.patch.patch b/debian/patches/features/all/rt/0249-x86-kvm-require-const-tsc-for-rt.patch.patch index 3f25ce230..c1d08fee7 100644 --- a/debian/patches/features/all/rt/0249-x86-kvm-require-const-tsc-for-rt.patch.patch +++ b/debian/patches/features/all/rt/0249-x86-kvm-require-const-tsc-for-rt.patch.patch @@ -1,7 +1,7 @@ -From ddc2b463d6d9d9eefe4aeb06a7bc0eb83e2b9d1f Mon Sep 17 00:00:00 2001 +From c5be414b6788f97f4d1dcd2abf165a898e19421f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 6 Nov 2011 12:26:18 +0100 -Subject: [PATCH 249/271] x86-kvm-require-const-tsc-for-rt.patch +Subject: [PATCH 249/282] x86-kvm-require-const-tsc-for-rt.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0250-scsi-fcoe-rt-aware.patch.patch b/debian/patches/features/all/rt/0250-scsi-fcoe-rt-aware.patch.patch index 995fc357f..7f3c36f4f 100644 --- a/debian/patches/features/all/rt/0250-scsi-fcoe-rt-aware.patch.patch +++ b/debian/patches/features/all/rt/0250-scsi-fcoe-rt-aware.patch.patch @@ -1,7 +1,7 @@ -From db68ca60955dd57030651ac162579f48374920de Mon Sep 17 00:00:00 2001 +From a614366243460c792576feef39811a5bb0ffcf75 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 12 Nov 2011 14:00:48 +0100 -Subject: [PATCH 250/271] scsi-fcoe-rt-aware.patch +Subject: [PATCH 250/282] scsi-fcoe-rt-aware.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0251-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches/features/all/rt/0251-x86-crypto-Reduce-preempt-disabled-regions.patch index 6051834cc..c4163f38d 100644 --- a/debian/patches/features/all/rt/0251-x86-crypto-Reduce-preempt-disabled-regions.patch +++ b/debian/patches/features/all/rt/0251-x86-crypto-Reduce-preempt-disabled-regions.patch @@ -1,7 +1,7 @@ -From a5f782d4f3dc1bc7b0696a29d66f5586b6b42f7a Mon Sep 17 00:00:00 2001 +From 397b11f45a724a9760c50a4ecffb5772861837aa Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 14 Nov 2011 18:19:27 +0100 -Subject: [PATCH 251/271] x86: crypto: Reduce preempt disabled regions +Subject: [PATCH 251/282] x86: crypto: Reduce preempt disabled regions Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. diff --git a/debian/patches/features/all/rt/0252-dm-Make-rt-aware.patch b/debian/patches/features/all/rt/0252-dm-Make-rt-aware.patch index 7bdd62262..44ac0edf5 100644 --- a/debian/patches/features/all/rt/0252-dm-Make-rt-aware.patch +++ b/debian/patches/features/all/rt/0252-dm-Make-rt-aware.patch @@ -1,7 +1,7 @@ -From 1e586b1cc36f241bd94af1232e357e621fcc75e2 Mon Sep 17 00:00:00 2001 +From c4aa23b95a74e2a241978a4a78efa6c03d38e78e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 14 Nov 2011 23:06:09 +0100 -Subject: [PATCH 252/271] dm: Make rt aware +Subject: [PATCH 252/282] dm: Make rt aware Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has interrupts legitimately enabled here as we cant deadlock against the diff --git a/debian/patches/features/all/rt/0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches/features/all/rt/0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch index 4992f76c3..e21acec6a 100644 --- a/debian/patches/features/all/rt/0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch +++ b/debian/patches/features/all/rt/0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch @@ -1,7 +1,7 @@ -From d3c201cf28f41cc64c38cc93dcd6461a99b074e4 Mon Sep 17 00:00:00 2001 +From eaedebb112f2261c9cae77708c6a848ac698d44d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 14 Dec 2011 01:03:49 +0100 -Subject: [PATCH 253/271] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT +Subject: [PATCH 253/282] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT We can't deal with the cpumask allocations which happen in atomic context (see arch/x86/kernel/apic/io_apic.c) on RT right now. diff --git a/debian/patches/features/all/rt/0254-seqlock-Prevent-rt-starvation.patch b/debian/patches/features/all/rt/0254-seqlock-Prevent-rt-starvation.patch index a238165d5..83429d51a 100644 --- a/debian/patches/features/all/rt/0254-seqlock-Prevent-rt-starvation.patch +++ b/debian/patches/features/all/rt/0254-seqlock-Prevent-rt-starvation.patch @@ -1,7 +1,7 @@ -From dc277883a518b1b7574e6a17b13ce418f958b9ac Mon Sep 17 00:00:00 2001 +From 97f7428133dbd3d2b851a0951443e97730780c46 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Feb 2012 12:03:30 +0100 -Subject: [PATCH 254/271] seqlock: Prevent rt starvation +Subject: [PATCH 254/282] seqlock: Prevent rt starvation 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/features/all/rt/0255-timer-Fix-hotplug-for-rt.patch b/debian/patches/features/all/rt/0255-timer-Fix-hotplug-for-rt.patch index b43fa6f43..74884e158 100644 --- a/debian/patches/features/all/rt/0255-timer-Fix-hotplug-for-rt.patch +++ b/debian/patches/features/all/rt/0255-timer-Fix-hotplug-for-rt.patch @@ -1,7 +1,7 @@ -From 5d0a85c358bd29ce6a67afdbf8922ad39191e914 Mon Sep 17 00:00:00 2001 +From 6c9f4dfd4ae0fd2eacd068b26cf8b55f4753591b Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 1 Mar 2012 13:55:28 -0500 -Subject: [PATCH 255/271] timer: Fix hotplug for -rt +Subject: [PATCH 255/282] timer: Fix hotplug for -rt Revert the RT patch: Author: Ingo Molnar diff --git a/debian/patches/features/all/rt/0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch b/debian/patches/features/all/rt/0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch index 5bfa1d092..15502afe4 100644 --- a/debian/patches/features/all/rt/0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch +++ b/debian/patches/features/all/rt/0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch @@ -1,7 +1,7 @@ -From 8730036ba9154e0c287f333118521680289bd8d6 Mon Sep 17 00:00:00 2001 +From 1f5a1959f2e84e5b3fa72f4bddb5cba651d28baf Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 1 Mar 2012 13:55:29 -0500 -Subject: [PATCH 256/271] futex/rt: Fix possible lockup when taking pi_lock in +Subject: [PATCH 256/282] futex/rt: Fix possible lockup when taking pi_lock in proxy handler When taking the pi_lock, we must disable interrupts because the diff --git a/debian/patches/features/all/rt/0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch b/debian/patches/features/all/rt/0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch index c96ef36cb..167e69090 100644 --- a/debian/patches/features/all/rt/0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch +++ b/debian/patches/features/all/rt/0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch @@ -1,7 +1,7 @@ -From ae5e69d73d0b9ebf678376af524bd9273b951914 Mon Sep 17 00:00:00 2001 +From 642a33470d3602678ca70b432b7490ed28f43d47 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 1 Mar 2012 13:55:32 -0500 -Subject: [PATCH 257/271] ring-buffer/rt: Check for irqs disabled before +Subject: [PATCH 257/282] ring-buffer/rt: Check for irqs disabled before grabbing reader lock In RT the reader lock is a mutex and we can not grab it when preemption is diff --git a/debian/patches/features/all/rt/0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch b/debian/patches/features/all/rt/0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch index 734d14ab0..4528c216d 100644 --- a/debian/patches/features/all/rt/0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch +++ b/debian/patches/features/all/rt/0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch @@ -1,7 +1,7 @@ -From fac6226570ae53ea221e39d8aea2c2a517ae0e7f Mon Sep 17 00:00:00 2001 +From fb1730b3c7da776c0a11104d96271ced8ec841d0 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 1 Mar 2012 13:55:33 -0500 -Subject: [PATCH 258/271] sched/rt: Fix wait_task_interactive() to test +Subject: [PATCH 258/282] sched/rt: Fix wait_task_interactive() to test rt_spin_lock state The wait_task_interactive() will have a task sleep waiting for another @@ -25,7 +25,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c -index 316205e..95ae97c 100644 +index 2f46cd1..1c16687 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2450,7 +2450,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) diff --git a/debian/patches/features/all/rt/0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch b/debian/patches/features/all/rt/0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch index e854b8398..2701ae2fc 100644 --- a/debian/patches/features/all/rt/0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch +++ b/debian/patches/features/all/rt/0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch @@ -1,7 +1,7 @@ -From baa89d4c448bb48defdfe2d8b23a8255155bb8da Mon Sep 17 00:00:00 2001 +From 0fa53abc8b79338a4cd1f0c6a685298a25987169 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 1 Mar 2012 13:55:30 -0500 -Subject: [PATCH 259/271] lglock/rt: Use non-rt for_each_cpu() in -rt code +Subject: [PATCH 259/282] lglock/rt: Use non-rt for_each_cpu() in -rt code Currently the RT version of the lglocks() does a for_each_online_cpu() in the name##_global_lock_online() functions. Non-rt uses its own diff --git a/debian/patches/features/all/rt/0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch b/debian/patches/features/all/rt/0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch index 523f75e24..c72389a99 100644 --- a/debian/patches/features/all/rt/0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch +++ b/debian/patches/features/all/rt/0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch @@ -1,7 +1,7 @@ -From 08ff6d2aa737b0fd586ed8a7ec7f03fe11150082 Mon Sep 17 00:00:00 2001 +From 2dcbac89def8a6fd0defb8ac1d8bdbbd851bd23b Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 2 Mar 2012 10:36:57 -0500 -Subject: [PATCH 260/271] cpu: Make hotplug.lock a "sleeping" spinlock on RT +Subject: [PATCH 260/282] cpu: Make hotplug.lock a "sleeping" spinlock on RT Tasks can block on hotplug.lock in pin_current_cpu(), but their state might be != RUNNING. So the mutex wakeup will set the state diff --git a/debian/patches/features/all/rt/0261-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches/features/all/rt/0261-softirq-Check-preemption-after-reenabling-interrupts.patch index ee300a035..933147942 100644 --- a/debian/patches/features/all/rt/0261-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/debian/patches/features/all/rt/0261-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,7 +1,7 @@ -From 4101379a8b864056d0b5e87de052d212f1358279 Mon Sep 17 00:00:00 2001 +From 2c6e0a659790820738cde0c2509f587fcbade762 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 13 Nov 2011 17:17:09 +0100 -Subject: [PATCH 261/271] softirq: Check preemption after reenabling +Subject: [PATCH 261/282] softirq: Check preemption after reenabling interrupts raise_softirq_irqoff() disables interrupts and wakes the softirq diff --git a/debian/patches/features/all/rt/0262-rt-Introduce-cpu_chill.patch b/debian/patches/features/all/rt/0262-rt-Introduce-cpu_chill.patch index 474d820a6..5ccd1c13c 100644 --- a/debian/patches/features/all/rt/0262-rt-Introduce-cpu_chill.patch +++ b/debian/patches/features/all/rt/0262-rt-Introduce-cpu_chill.patch @@ -1,7 +1,7 @@ -From eccd9dea38ad49e51ba3397ba247a06c7dc0d827 Mon Sep 17 00:00:00 2001 +From 1139b0f9cd25ef5d85da02f8cdd7d012971005fe Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 20:51:03 +0100 -Subject: [PATCH 262/271] rt: Introduce cpu_chill() +Subject: [PATCH 262/282] rt: Introduce cpu_chill() 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/features/all/rt/0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches/features/all/rt/0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch index b6984802d..77ab1df45 100644 --- a/debian/patches/features/all/rt/0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +++ b/debian/patches/features/all/rt/0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch @@ -1,7 +1,7 @@ -From 0319cf12cf8700a10865119336aece0c06b1da3d Mon Sep 17 00:00:00 2001 +From 0f1f831cb60e0491b6fa115a53d36af00f030150 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:00:34 +0100 -Subject: [PATCH 263/271] fs: dcache: Use cpu_chill() in trylock loops +Subject: [PATCH 263/282] fs: dcache: Use cpu_chill() in trylock loops 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/features/all/rt/0264-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches/features/all/rt/0264-net-Use-cpu_chill-instead-of-cpu_relax.patch index f3fa9fe77..0dceb215c 100644 --- a/debian/patches/features/all/rt/0264-net-Use-cpu_chill-instead-of-cpu_relax.patch +++ b/debian/patches/features/all/rt/0264-net-Use-cpu_chill-instead-of-cpu_relax.patch @@ -1,7 +1,7 @@ -From 2818e474f3d3f303a1f9860fcb810ed78d3bf87d Mon Sep 17 00:00:00 2001 +From 3c99cbd1421b9701d6428527f72854624e189493 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:10:04 +0100 -Subject: [PATCH 264/271] net: Use cpu_chill() instead of cpu_relax() +Subject: [PATCH 264/282] net: Use cpu_chill() instead of cpu_relax() 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/features/all/rt/0265-kconfig-disable-a-few-options-rt.patch.patch b/debian/patches/features/all/rt/0265-kconfig-disable-a-few-options-rt.patch.patch index 4caf9319a..3a5459e24 100644 --- a/debian/patches/features/all/rt/0265-kconfig-disable-a-few-options-rt.patch.patch +++ b/debian/patches/features/all/rt/0265-kconfig-disable-a-few-options-rt.patch.patch @@ -1,7 +1,7 @@ -From 08aecc40057694874911b9903c59231d80bea040 Mon Sep 17 00:00:00 2001 +From b3c3371d794d584a5fb5c7170bd7855954830e65 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 24 Jul 2011 12:11:43 +0200 -Subject: [PATCH 265/271] kconfig-disable-a-few-options-rt.patch +Subject: [PATCH 265/282] kconfig-disable-a-few-options-rt.patch Disable stuff which is known to have issues on RT diff --git a/debian/patches/features/all/rt/0266-kconfig-preempt-rt-full.patch.patch b/debian/patches/features/all/rt/0266-kconfig-preempt-rt-full.patch.patch index 493681148..6bbc66e5c 100644 --- a/debian/patches/features/all/rt/0266-kconfig-preempt-rt-full.patch.patch +++ b/debian/patches/features/all/rt/0266-kconfig-preempt-rt-full.patch.patch @@ -1,7 +1,7 @@ -From a298ba591146845659546839c65f2d2b61cac361 Mon Sep 17 00:00:00 2001 +From a102630a4239e6fac58715692712e054fb99bd57 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 14:58:57 +0200 -Subject: [PATCH 266/271] kconfig-preempt-rt-full.patch +Subject: [PATCH 266/282] kconfig-preempt-rt-full.patch Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches/features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch b/debian/patches/features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch index c00fd3d41..076b6bc16 100644 --- a/debian/patches/features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch +++ b/debian/patches/features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch @@ -1,7 +1,7 @@ -From b3c1becb96c9c5507a39012a630457263a319cf4 Mon Sep 17 00:00:00 2001 +From f19a2fd410a39c8f7c03e1147bffcd42d2a187bb Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Mon, 16 Apr 2012 21:51:54 -0400 -Subject: [PATCH 267/271] rt: Make migrate_disable/enable() and +Subject: [PATCH 267/282] rt: Make migrate_disable/enable() and __rt_mutex_init non-GPL only Modules that load on the normal vanilla kernel should also load on @@ -28,7 +28,7 @@ index b525158..9c4f6e5 100644 /** * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a diff --git a/kernel/sched.c b/kernel/sched.c -index 95ae97c..20f5b6a 100644 +index 1c16687..4dd1fff 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4425,7 +4425,7 @@ void migrate_disable(void) diff --git a/debian/patches/features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch b/debian/patches/features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch index fcc5e196f..ba1ed2a0c 100644 --- a/debian/patches/features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch +++ b/debian/patches/features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch @@ -1,7 +1,7 @@ -From 0bb0dcc93417eebf25235aefda523ed3733d877b Mon Sep 17 00:00:00 2001 +From 6476e15acbd7d86a98aa00b22a4dc0c2ca115d2e Mon Sep 17 00:00:00 2001 From: John Kacur Date: Fri, 27 Apr 2012 12:48:46 +0200 -Subject: [PATCH 268/271] scsi: qla2xxx: Use local_irq_save_nort() in +Subject: [PATCH 268/282] scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_poll RT triggers the following: diff --git a/debian/patches/features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch b/debian/patches/features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch index 795e46180..3727ae15f 100644 --- a/debian/patches/features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch +++ b/debian/patches/features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch @@ -1,7 +1,7 @@ -From e5bcba89face7647749907f8a5da0d10442d04a6 Mon Sep 17 00:00:00 2001 +From d327f8e3cbd85c35a042fff7512fcf9f82f8c8a7 Mon Sep 17 00:00:00 2001 From: Priyanka Jain Date: Thu, 17 May 2012 09:35:11 +0530 -Subject: [PATCH 269/271] net,RT:REmove preemption disabling in netif_rx() +Subject: [PATCH 269/282] net,RT:REmove preemption disabling in netif_rx() 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by diff --git a/debian/patches/features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch b/debian/patches/features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch index 36840cde1..cda4be826 100644 --- a/debian/patches/features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch +++ b/debian/patches/features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch @@ -1,7 +1,7 @@ -From 002636683a8da0e4ed480d13c038ee06c977d01e Mon Sep 17 00:00:00 2001 +From a2c34586490cc927d9354f67021fe76443754e9e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 22 May 2012 21:15:10 +0200 -Subject: [PATCH 270/271] mips-remove-smp-reserve-lock.patch +Subject: [PATCH 270/282] mips-remove-smp-reserve-lock.patch Instead of making the lock raw, remove it as it protects nothing. diff --git a/debian/patches/features/all/rt/0271-Latency-histogramms-Cope-with-backwards-running-loca.patch b/debian/patches/features/all/rt/0271-Latency-histogramms-Cope-with-backwards-running-loca.patch new file mode 100644 index 000000000..5889d0c2a --- /dev/null +++ b/debian/patches/features/all/rt/0271-Latency-histogramms-Cope-with-backwards-running-loca.patch @@ -0,0 +1,267 @@ +From d7327d99a277761720e7e8c055a2f37e23061f24 Mon Sep 17 00:00:00 2001 +From: Carsten Emde +Date: Wed, 11 Jul 2012 22:05:17 +0000 +Subject: [PATCH 271/282] Latency histogramms: Cope with backwards running + local trace clock + +Thanks to the wonders of modern technology, the local trace clock can +now run backwards. Since this never happened before, the time difference +between now and somewhat earlier was expected to never become negative +and, thus, stored in an unsigned integer variable. Nowadays, we need a +signed integer to ensure that the value is stored as underflow in the +related histogram. (In cases where this is not a misfunction, bipolar +histograms can be used.) + +This patch takes care that all latency variables are represented as +signed integers and negative numbers are considered as histogram +underflows. + +In one of the misbehaving processors switching to global clock solved +the problem: + echo global >/sys/kernel/debug/tracing/trace_clock + +Signed-off-by: Carsten Emde +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + include/linux/sched.h | 2 +- + kernel/trace/latency_hist.c | 71 ++++++++++++++++++++++--------------------- + 2 files changed, 38 insertions(+), 35 deletions(-) + +diff --git a/include/linux/sched.h b/include/linux/sched.h +index 1f6b11a..0174e3a 100644 +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1585,7 +1585,7 @@ struct task_struct { + #ifdef CONFIG_WAKEUP_LATENCY_HIST + u64 preempt_timestamp_hist; + #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST +- unsigned long timer_offset; ++ long timer_offset; + #endif + #endif + #endif /* CONFIG_TRACING */ +diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c +index 9d49fcb..d514eef 100644 +--- a/kernel/trace/latency_hist.c ++++ b/kernel/trace/latency_hist.c +@@ -27,6 +27,8 @@ + #include "trace.h" + #include + ++#define NSECS_PER_USECS 1000L ++ + #define CREATE_TRACE_POINTS + #include + +@@ -46,11 +48,11 @@ enum { + struct hist_data { + atomic_t hist_mode; /* 0 log, 1 don't log */ + long offset; /* set it to MAX_ENTRY_NUM/2 for a bipolar scale */ +- unsigned long min_lat; +- unsigned long max_lat; ++ long min_lat; ++ long max_lat; + unsigned long long below_hist_bound_samples; + unsigned long long above_hist_bound_samples; +- unsigned long long accumulate_lat; ++ long long accumulate_lat; + unsigned long long total_samples; + unsigned long long hist_array[MAX_ENTRY_NUM]; + }; +@@ -152,8 +154,8 @@ static struct enable_data timerandwakeup_enabled_data = { + static DEFINE_PER_CPU(struct maxlatproc_data, timerandwakeup_maxlatproc); + #endif + +-void notrace latency_hist(int latency_type, int cpu, unsigned long latency, +- unsigned long timeroffset, cycle_t stop, ++void notrace latency_hist(int latency_type, int cpu, long latency, ++ long timeroffset, cycle_t stop, + struct task_struct *p) + { + struct hist_data *my_hist; +@@ -224,7 +226,7 @@ void notrace latency_hist(int latency_type, int cpu, unsigned long latency, + my_hist->hist_array[latency]++; + + if (unlikely(latency > my_hist->max_lat || +- my_hist->min_lat == ULONG_MAX)) { ++ my_hist->min_lat == LONG_MAX)) { + #if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ + defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) + if (latency_type == WAKEUP_LATENCY || +@@ -263,15 +265,14 @@ static void *l_start(struct seq_file *m, loff_t *pos) + atomic_dec(&my_hist->hist_mode); + + if (likely(my_hist->total_samples)) { +- unsigned long avg = (unsigned long) +- div64_u64(my_hist->accumulate_lat, ++ long avg = (long) div64_s64(my_hist->accumulate_lat, + my_hist->total_samples); + snprintf(minstr, sizeof(minstr), "%ld", +- (long) my_hist->min_lat - my_hist->offset); ++ my_hist->min_lat - my_hist->offset); + snprintf(avgstr, sizeof(avgstr), "%ld", +- (long) avg - my_hist->offset); ++ avg - my_hist->offset); + snprintf(maxstr, sizeof(maxstr), "%ld", +- (long) my_hist->max_lat - my_hist->offset); ++ my_hist->max_lat - my_hist->offset); + } else { + strcpy(minstr, ""); + strcpy(avgstr, minstr); +@@ -376,10 +377,10 @@ static void hist_reset(struct hist_data *hist) + memset(hist->hist_array, 0, sizeof(hist->hist_array)); + hist->below_hist_bound_samples = 0ULL; + hist->above_hist_bound_samples = 0ULL; +- hist->min_lat = ULONG_MAX; +- hist->max_lat = 0UL; ++ hist->min_lat = LONG_MAX; ++ hist->max_lat = LONG_MIN; + hist->total_samples = 0ULL; +- hist->accumulate_lat = 0ULL; ++ hist->accumulate_lat = 0LL; + + atomic_inc(&hist->hist_mode); + } +@@ -790,9 +791,9 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason, + + stop = ftrace_now(cpu); + time_set++; +- if (start && stop >= start) { +- unsigned long latency = +- nsecs_to_usecs(stop - start); ++ if (start) { ++ long latency = ((long) (stop - start)) / ++ NSECS_PER_USECS; + + latency_hist(IRQSOFF_LATENCY, cpu, latency, 0, + stop, NULL); +@@ -808,9 +809,9 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason, + + if (!(time_set++)) + stop = ftrace_now(cpu); +- if (start && stop >= start) { +- unsigned long latency = +- nsecs_to_usecs(stop - start); ++ if (start) { ++ long latency = ((long) (stop - start)) / ++ NSECS_PER_USECS; + + latency_hist(PREEMPTOFF_LATENCY, cpu, latency, + 0, stop, NULL); +@@ -827,9 +828,10 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason, + + if (!time_set) + stop = ftrace_now(cpu); +- if (start && stop >= start) { +- unsigned long latency = +- nsecs_to_usecs(stop - start); ++ if (start) { ++ long latency = ((long) (stop - start)) / ++ NSECS_PER_USECS; ++ + latency_hist(PREEMPTIRQSOFF_LATENCY, cpu, + latency, 0, stop, NULL); + } +@@ -908,7 +910,7 @@ static notrace void probe_wakeup_latency_hist_stop(void *v, + { + unsigned long flags; + int cpu = task_cpu(next); +- unsigned long latency; ++ long latency; + cycle_t stop; + struct task_struct *cpu_wakeup_task; + +@@ -939,7 +941,8 @@ static notrace void probe_wakeup_latency_hist_stop(void *v, + */ + stop = ftrace_now(raw_smp_processor_id()); + +- latency = nsecs_to_usecs(stop - next->preempt_timestamp_hist); ++ latency = ((long) (stop - next->preempt_timestamp_hist)) / ++ NSECS_PER_USECS; + + if (per_cpu(wakeup_sharedprio, cpu)) { + latency_hist(WAKEUP_LATENCY_SHAREDPRIO, cpu, latency, 0, stop, +@@ -975,7 +978,7 @@ static notrace void probe_hrtimer_interrupt(void *v, int cpu, + (task->prio < curr->prio || + (task->prio == curr->prio && + !cpumask_test_cpu(cpu, &task->cpus_allowed)))) { +- unsigned long latency; ++ long latency; + cycle_t now; + + if (missed_timer_offsets_pid) { +@@ -985,7 +988,7 @@ static notrace void probe_hrtimer_interrupt(void *v, int cpu, + } + + now = ftrace_now(cpu); +- latency = (unsigned long) div_s64(-latency_ns, 1000); ++ latency = (long) div_s64(-latency_ns, NSECS_PER_USECS); + latency_hist(MISSED_TIMER_OFFSETS, cpu, latency, latency, now, + task); + #ifdef CONFIG_WAKEUP_LATENCY_HIST +@@ -1026,7 +1029,7 @@ static __init int latency_hist_init(void) + &per_cpu(irqsoff_hist, i), &latency_hist_fops); + my_hist = &per_cpu(irqsoff_hist, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + } + entry = debugfs_create_file("reset", 0644, dentry, + (void *)IRQSOFF_LATENCY, &latency_hist_reset_fops); +@@ -1041,7 +1044,7 @@ static __init int latency_hist_init(void) + &per_cpu(preemptoff_hist, i), &latency_hist_fops); + my_hist = &per_cpu(preemptoff_hist, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + } + entry = debugfs_create_file("reset", 0644, dentry, + (void *)PREEMPTOFF_LATENCY, &latency_hist_reset_fops); +@@ -1056,7 +1059,7 @@ static __init int latency_hist_init(void) + &per_cpu(preemptirqsoff_hist, i), &latency_hist_fops); + my_hist = &per_cpu(preemptirqsoff_hist, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + } + entry = debugfs_create_file("reset", 0644, dentry, + (void *)PREEMPTIRQSOFF_LATENCY, &latency_hist_reset_fops); +@@ -1081,14 +1084,14 @@ static __init int latency_hist_init(void) + &latency_hist_fops); + my_hist = &per_cpu(wakeup_latency_hist, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + + entry = debugfs_create_file(name, 0444, dentry_sharedprio, + &per_cpu(wakeup_latency_hist_sharedprio, i), + &latency_hist_fops); + my_hist = &per_cpu(wakeup_latency_hist_sharedprio, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + + sprintf(name, cpufmt_maxlatproc, i); + +@@ -1122,7 +1125,7 @@ static __init int latency_hist_init(void) + &per_cpu(missed_timer_offsets, i), &latency_hist_fops); + my_hist = &per_cpu(missed_timer_offsets, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + + sprintf(name, cpufmt_maxlatproc, i); + mp = &per_cpu(missed_timer_offsets_maxlatproc, i); +@@ -1150,7 +1153,7 @@ static __init int latency_hist_init(void) + &latency_hist_fops); + my_hist = &per_cpu(timerandwakeup_latency_hist, i); + atomic_set(&my_hist->hist_mode, 1); +- my_hist->min_lat = 0xFFFFFFFFUL; ++ my_hist->min_lat = LONG_MAX; + + sprintf(name, cpufmt_maxlatproc, i); + mp = &per_cpu(timerandwakeup_maxlatproc, i); +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch b/debian/patches/features/all/rt/0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch new file mode 100644 index 000000000..2f7185334 --- /dev/null +++ b/debian/patches/features/all/rt/0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch @@ -0,0 +1,73 @@ +From 0e081f2bf2208420a7aa811c4adf9f6eccd0f9a5 Mon Sep 17 00:00:00 2001 +From: Carsten Emde +Date: Wed, 11 Jul 2012 22:05:18 +0000 +Subject: [PATCH 272/282] Latency histograms: Adjust timer, if already elapsed + when programmed + +Nothing prevents a programmer from calling clock_nanosleep() with an +already elapsed wakeup time in absolute time mode or with a too small +delay in relative time mode. Such timers cannot wake up in time and, +thus, should be corrected when entered into the missed timers latency +histogram (CONFIG_MISSED_TIMERS_HIST). + +This patch marks such timers and uses a corrected expiration time. + +Signed-off-by: Carsten Emde +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + include/linux/hrtimer.h | 3 +++ + kernel/hrtimer.c | 16 ++++++++++++++-- + 2 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h +index 0e37086..7408760 100644 +--- a/include/linux/hrtimer.h ++++ b/include/linux/hrtimer.h +@@ -113,6 +113,9 @@ struct hrtimer { + unsigned long state; + struct list_head cb_entry; + int irqsafe; ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ ktime_t praecox; ++#endif + #ifdef CONFIG_TIMER_STATS + int start_pid; + void *start_site; +diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c +index 3991464..a080e62 100644 +--- a/kernel/hrtimer.c ++++ b/kernel/hrtimer.c +@@ -1021,6 +1021,17 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, + #endif + } + ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ { ++ ktime_t now = new_base->get_time(); ++ ++ if (ktime_to_ns(tim) < ktime_to_ns(now)) ++ timer->praecox = now; ++ else ++ timer->praecox = ktime_set(0, 0); ++ } ++#endif ++ + hrtimer_set_expires_range_ns(timer, tim, delta_ns); + + timer_stats_hrtimer_set_start_info(timer); +@@ -1458,8 +1469,9 @@ retry: + timer = container_of(node, struct hrtimer, node); + + trace_hrtimer_interrupt(raw_smp_processor_id(), +- ktime_to_ns(ktime_sub( +- hrtimer_get_expires(timer), basenow)), ++ ktime_to_ns(ktime_sub(ktime_to_ns(timer->praecox) ? ++ timer->praecox : hrtimer_get_expires(timer), ++ basenow)), + current, + timer->function == hrtimer_wakeup ? + container_of(timer, struct hrtimer_sleeper, +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch b/debian/patches/features/all/rt/0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch new file mode 100644 index 000000000..b9a669134 --- /dev/null +++ b/debian/patches/features/all/rt/0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch @@ -0,0 +1,32 @@ +From 066906f37fd7ccf55983231a6b805df14ee186c8 Mon Sep 17 00:00:00 2001 +From: Carsten Emde +Date: Wed, 11 Jul 2012 22:05:18 +0000 +Subject: [PATCH 273/282] Disable RT_GROUP_SCHED in PREEMPT_RT_FULL + +Strange CPU stalls have been observed in RT when RT_GROUP_SCHED +was configured. + +Disable it for now. + +Signed-off-by: Carsten Emde +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + init/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/init/Kconfig b/init/Kconfig +index dbc82d0..720c182 100644 +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -731,6 +731,7 @@ config RT_GROUP_SCHED + bool "Group scheduling for SCHED_RR/FIFO" + depends on EXPERIMENTAL + depends on CGROUP_SCHED ++ depends on !PREEMPT_RT_FULL + default n + help + This feature lets you explicitly allocate real CPU bandwidth +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch b/debian/patches/features/all/rt/0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch new file mode 100644 index 000000000..2bbaa0b67 --- /dev/null +++ b/debian/patches/features/all/rt/0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch @@ -0,0 +1,38 @@ +From 9b8ee4b19fa92ca0868411f2cb5754fb72f226c5 Mon Sep 17 00:00:00 2001 +From: Carsten Emde +Date: Wed, 11 Jul 2012 22:05:19 +0000 +Subject: [PATCH 274/282] Latency histograms: Detect another yet overlooked + sharedprio condition + +While waiting for an RT process to be woken up, the previous process may +go to wait and switch to another one with the same priority which then +becomes current. This condition was not correctly recognized and led to +erroneously high latency recordings during periods of low CPU load. + +This patch correctly marks such latencies as sharedprio and prevents +them from being recorded as actual system latency. + +Signed-off-by: Carsten Emde +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + kernel/trace/latency_hist.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c +index d514eef..6a4c869 100644 +--- a/kernel/trace/latency_hist.c ++++ b/kernel/trace/latency_hist.c +@@ -935,6 +935,9 @@ static notrace void probe_wakeup_latency_hist_stop(void *v, + goto out; + } + ++ if (current->prio == cpu_wakeup_task->prio) ++ per_cpu(wakeup_sharedprio, cpu) = 1; ++ + /* + * The task we are waiting for is about to be switched to. + * Calculate latency and store it in histogram. +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0275-slab-Prevent-local-lock-deadlock.patch b/debian/patches/features/all/rt/0275-slab-Prevent-local-lock-deadlock.patch new file mode 100644 index 000000000..46463ea49 --- /dev/null +++ b/debian/patches/features/all/rt/0275-slab-Prevent-local-lock-deadlock.patch @@ -0,0 +1,77 @@ +From 3118dd738f1fadb2e916d6ebf0da6eae1af7731f Mon Sep 17 00:00:00 2001 +From: Thomas Gleixner +Date: Wed, 11 Jul 2012 22:05:19 +0000 +Subject: [PATCH 275/282] slab: Prevent local lock deadlock + +On RT we avoid the cross cpu function calls and take the per cpu local +locks instead. Now the code missed that taking the local lock on the +cpu which runs the code must use the proper local lock functions and +not a simple spin_lock(). Otherwise it deadlocks later when trying to +acquire the local lock with the proper function. + +Reported-and-tested-by: Chris Pringle +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + mm/slab.c | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +diff --git a/mm/slab.c b/mm/slab.c +index 5f0c5ef..3bef5e5 100644 +--- a/mm/slab.c ++++ b/mm/slab.c +@@ -739,8 +739,26 @@ slab_on_each_cpu(void (*func)(void *arg, int this_cpu), void *arg) + { + unsigned int i; + ++ get_cpu_light(); + for_each_online_cpu(i) + func(arg, i); ++ put_cpu_light(); ++} ++ ++static void lock_slab_on(unsigned int cpu) ++{ ++ if (cpu == smp_processor_id()) ++ local_lock_irq(slab_lock); ++ else ++ local_spin_lock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock); ++} ++ ++static void unlock_slab_on(unsigned int cpu) ++{ ++ if (cpu == smp_processor_id()) ++ local_unlock_irq(slab_lock); ++ else ++ local_spin_unlock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock); + } + #endif + +@@ -2627,10 +2645,10 @@ static void do_drain(void *arg, int cpu) + { + LIST_HEAD(tmp); + +- spin_lock_irq(&per_cpu(slab_lock, cpu).lock); ++ lock_slab_on(cpu); + __do_drain(arg, cpu); + list_splice_init(&per_cpu(slab_free_list, cpu), &tmp); +- spin_unlock_irq(&per_cpu(slab_lock, cpu).lock); ++ unlock_slab_on(cpu); + free_delayed(&tmp); + } + #endif +@@ -4095,9 +4113,9 @@ static void do_ccupdate_local(void *info) + #else + static void do_ccupdate_local(void *info, int cpu) + { +- spin_lock_irq(&per_cpu(slab_lock, cpu).lock); ++ lock_slab_on(cpu); + __do_ccupdate_local(info, cpu); +- spin_unlock_irq(&per_cpu(slab_lock, cpu).lock); ++ unlock_slab_on(cpu); + } + #endif + +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch b/debian/patches/features/all/rt/0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch new file mode 100644 index 000000000..18ff28606 --- /dev/null +++ b/debian/patches/features/all/rt/0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch @@ -0,0 +1,35 @@ +From bf5f5b697062ab1b3f1fc67327cf4c3294af1fb7 Mon Sep 17 00:00:00 2001 +From: Mike Galbraith +Date: Wed, 11 Jul 2012 22:05:20 +0000 +Subject: [PATCH 276/282] fs, jbd: pull your plug when waiting for space + +With an -rt kernel, and a heavy sync IO load, tasks can jam +up on journal locks without unplugging, which can lead to +terminal IO starvation. Unplug and schedule when waiting for space. + +Signed-off-by: Mike Galbraith +Cc: Steven Rostedt +Cc: Theodore Tso +Link: http://lkml.kernel.org/r/1341812414.7370.73.camel@marge.simpson.net +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + fs/jbd/checkpoint.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c +index 5c93ffc..ddbd223 100644 +--- a/fs/jbd/checkpoint.c ++++ b/fs/jbd/checkpoint.c +@@ -129,6 +129,8 @@ void __log_wait_for_space(journal_t *journal) + if (journal->j_flags & JFS_ABORT) + return; + spin_unlock(&journal->j_state_lock); ++ if (current->plug) ++ io_schedule(); + mutex_lock(&journal->j_checkpoint_mutex); + + /* +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch b/debian/patches/features/all/rt/0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch new file mode 100644 index 000000000..a34d37594 --- /dev/null +++ b/debian/patches/features/all/rt/0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch @@ -0,0 +1,74 @@ +From b10ed9d7b0a28da0f42b197e1ddcf52f188004c5 Mon Sep 17 00:00:00 2001 +From: Yong Zhang +Date: Wed, 11 Jul 2012 22:05:21 +0000 +Subject: [PATCH 277/282] perf: Make swevent hrtimer run in irq instead of + softirq + +Otherwise we get a deadlock like below: + +[ 1044.042749] BUG: scheduling while atomic: ksoftirqd/21/141/0x00010003 +[ 1044.042752] INFO: lockdep is turned off. +[ 1044.042754] Modules linked in: +[ 1044.042757] Pid: 141, comm: ksoftirqd/21 Tainted: G W 3.4.0-rc2-rt3-23676-ga723175-dirty #29 +[ 1044.042759] Call Trace: +[ 1044.042761] [] __schedule_bug+0x65/0x80 +[ 1044.042770] [] __schedule+0x83c/0xa70 +[ 1044.042775] [] ? prepare_to_wait+0x32/0xb0 +[ 1044.042779] [] schedule+0x2e/0xa0 +[ 1044.042782] [] hrtimer_wait_for_timer+0x6d/0xb0 +[ 1044.042786] [] ? wake_up_bit+0x40/0x40 +[ 1044.042790] [] hrtimer_cancel+0x20/0x40 +[ 1044.042794] [] perf_swevent_cancel_hrtimer+0x3c/0x50 +[ 1044.042798] [] task_clock_event_stop+0x11/0x40 +[ 1044.042802] [] task_clock_event_del+0xe/0x10 +[ 1044.042805] [] event_sched_out+0x118/0x1d0 +[ 1044.042809] [] group_sched_out+0x29/0x90 +[ 1044.042813] [] __perf_event_disable+0x18e/0x200 +[ 1044.042817] [] remote_function+0x63/0x70 +[ 1044.042821] [] generic_smp_call_function_single_interrupt+0xce/0x120 +[ 1044.042826] [] smp_call_function_single_interrupt+0x27/0x40 +[ 1044.042831] [] call_function_single_interrupt+0x6c/0x80 +[ 1044.042833] [] ? perf_event_overflow+0x20/0x20 +[ 1044.042840] [] ? _raw_spin_unlock_irq+0x30/0x70 +[ 1044.042844] [] ? _raw_spin_unlock_irq+0x36/0x70 +[ 1044.042848] [] run_hrtimer_softirq+0xc2/0x200 +[ 1044.042853] [] ? perf_event_overflow+0x20/0x20 +[ 1044.042857] [] __do_softirq_common+0xf5/0x3a0 +[ 1044.042862] [] __thread_do_softirq+0x15d/0x200 +[ 1044.042865] [] run_ksoftirqd+0xfa/0x210 +[ 1044.042869] [] ? __thread_do_softirq+0x200/0x200 +[ 1044.042873] [] ? __thread_do_softirq+0x200/0x200 +[ 1044.042877] [] kthread+0xb6/0xc0 +[ 1044.042881] [] ? _raw_spin_unlock_irq+0x3b/0x70 +[ 1044.042886] [] kernel_thread_helper+0x4/0x10 +[ 1044.042889] [] ? finish_task_switch+0x8c/0x110 +[ 1044.042894] [] ? _raw_spin_unlock_irq+0x3b/0x70 +[ 1044.042897] [] ? retint_restore_args+0xe/0xe +[ 1044.042900] [] ? kthreadd+0x1e0/0x1e0 +[ 1044.042902] [] ? gs_change+0xb/0xb + +Signed-off-by: Yong Zhang +Cc: Peter Zijlstra +Cc: Steven Rostedt +Link: http://lkml.kernel.org/r/1341476476-5666-1-git-send-email-yong.zhang0@gmail.com +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +--- + kernel/events/core.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/kernel/events/core.c b/kernel/events/core.c +index 58690af..4d9159a 100644 +--- a/kernel/events/core.c ++++ b/kernel/events/core.c +@@ -5420,6 +5420,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event) + + hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hwc->hrtimer.function = perf_swevent_hrtimer; ++ hwc->hrtimer.irqsafe = 1; + + /* + * Since hrtimers have a fixed rate, we can do a static freq->period +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch b/debian/patches/features/all/rt/0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch new file mode 100644 index 000000000..0c747fa45 --- /dev/null +++ b/debian/patches/features/all/rt/0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch @@ -0,0 +1,545 @@ +From 11a3485532fc17ff54227a27eb2352770ed4ab9c Mon Sep 17 00:00:00 2001 +From: Steven Rostedt +Date: Mon, 16 Jul 2012 08:07:43 +0000 +Subject: [PATCH 278/282] cpu/rt: Rework cpu down for PREEMPT_RT + +Bringing a CPU down is a pain with the PREEMPT_RT kernel because +tasks can be preempted in many more places than in non-RT. In +order to handle per_cpu variables, tasks may be pinned to a CPU +for a while, and even sleep. But these tasks need to be off the CPU +if that CPU is going down. + +Several synchronization methods have been tried, but when stressed +they failed. This is a new approach. + +A sync_tsk thread is still created and tasks may still block on a +lock when the CPU is going down, but how that works is a bit different. +When cpu_down() starts, it will create the sync_tsk and wait on it +to inform that current tasks that are pinned on the CPU are no longer +pinned. But new tasks that are about to be pinned will still be allowed +to do so at this time. + +Then the notifiers are called. Several notifiers will bring down tasks +that will enter these locations. Some of these tasks will take locks +of other tasks that are on the CPU. If we don't let those other tasks +continue, but make them block until CPU down is done, the tasks that +the notifiers are waiting on will never complete as they are waiting +for the locks held by the tasks that are blocked. + +Thus we still let the task pin the CPU until the notifiers are done. +After the notifiers run, we then make new tasks entering the pinned +CPU sections grab a mutex and wait. This mutex is now a per CPU mutex +in the hotplug_pcp descriptor. + +To help things along, a new function in the scheduler code is created +called migrate_me(). This function will try to migrate the current task +off the CPU this is going down if possible. When the sync_tsk is created, +all tasks will then try to migrate off the CPU going down. There are +several cases that this wont work, but it helps in most cases. + +After the notifiers are called and if a task can't migrate off but enters +the pin CPU sections, it will be forced to wait on the hotplug_pcp mutex +until the CPU down is complete. Then the scheduler will force the migration +anyway. + +Also, I found that THREAD_BOUND need to also be accounted for in the +pinned CPU, and the migrate_disable no longer treats them special. +This helps fix issues with ksoftirqd and workqueue that unbind on CPU down. + +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner +--- + include/linux/sched.h | 7 ++ + kernel/cpu.c | 236 +++++++++++++++++++++++++++++++++++++++++-------- + kernel/sched.c | 82 ++++++++++++++++- + 3 files changed, 285 insertions(+), 40 deletions(-) + +diff --git a/include/linux/sched.h b/include/linux/sched.h +index 0174e3a..9ca3172 100644 +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1933,6 +1933,10 @@ extern void do_set_cpus_allowed(struct task_struct *p, + + extern int set_cpus_allowed_ptr(struct task_struct *p, + const struct cpumask *new_mask); ++int migrate_me(void); ++void tell_sched_cpu_down_begin(int cpu); ++void tell_sched_cpu_down_done(int cpu); ++ + #else + static inline void do_set_cpus_allowed(struct task_struct *p, + const struct cpumask *new_mask) +@@ -1945,6 +1949,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p, + return -EINVAL; + return 0; + } ++static inline int migrate_me(void) { return 0; } ++static inline void tell_sched_cpu_down_begin(int cpu) { } ++static inline void tell_sched_cpu_down_done(int cpu) { } + #endif + + #ifndef CONFIG_CPUMASK_OFFSTACK +diff --git a/kernel/cpu.c b/kernel/cpu.c +index 66dfb74..0964e93 100644 +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -46,12 +46,7 @@ static int cpu_hotplug_disabled; + + static struct { + struct task_struct *active_writer; +-#ifdef CONFIG_PREEMPT_RT_FULL +- /* Makes the lock keep the task's state */ +- spinlock_t lock; +-#else + struct mutex lock; /* Synchronizes accesses to refcount, */ +-#endif + /* + * Also blocks the new readers during + * an ongoing cpu hotplug operation. +@@ -67,20 +62,42 @@ static struct { + .refcount = 0, + }; + +-#ifdef CONFIG_PREEMPT_RT_FULL +-# define hotplug_lock() rt_spin_lock(&cpu_hotplug.lock) +-# define hotplug_unlock() rt_spin_unlock(&cpu_hotplug.lock) +-#else +-# define hotplug_lock() mutex_lock(&cpu_hotplug.lock) +-# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock) +-#endif +- ++/** ++ * hotplug_pcp - per cpu hotplug descriptor ++ * @unplug: set when pin_current_cpu() needs to sync tasks ++ * @sync_tsk: the task that waits for tasks to finish pinned sections ++ * @refcount: counter of tasks in pinned sections ++ * @grab_lock: set when the tasks entering pinned sections should wait ++ * @synced: notifier for @sync_tsk to tell cpu_down it's finished ++ * @mutex: the mutex to make tasks wait (used when @grab_lock is true) ++ * @mutex_init: zero if the mutex hasn't been initialized yet. ++ * ++ * Although @unplug and @sync_tsk may point to the same task, the @unplug ++ * is used as a flag and still exists after @sync_tsk has exited and ++ * @sync_tsk set to NULL. ++ */ + struct hotplug_pcp { + struct task_struct *unplug; ++ struct task_struct *sync_tsk; + int refcount; ++ int grab_lock; + struct completion synced; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ spinlock_t lock; ++#else ++ struct mutex mutex; ++#endif ++ int mutex_init; + }; + ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define hotplug_lock(hp) rt_spin_lock(&(hp)->lock) ++# define hotplug_unlock(hp) rt_spin_unlock(&(hp)->lock) ++#else ++# define hotplug_lock(hp) mutex_lock(&(hp)->mutex) ++# define hotplug_unlock(hp) mutex_unlock(&(hp)->mutex) ++#endif ++ + static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp); + + /** +@@ -94,18 +111,40 @@ static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp); + void pin_current_cpu(void) + { + struct hotplug_pcp *hp; ++ int force = 0; + + retry: + hp = &__get_cpu_var(hotplug_pcp); + +- if (!hp->unplug || hp->refcount || preempt_count() > 1 || ++ if (!hp->unplug || hp->refcount || force || preempt_count() > 1 || + hp->unplug == current || (current->flags & PF_STOMPER)) { + hp->refcount++; + return; + } +- preempt_enable(); +- hotplug_lock(); +- hotplug_unlock(); ++ ++ if (hp->grab_lock) { ++ preempt_enable(); ++ hotplug_lock(hp); ++ hotplug_unlock(hp); ++ } else { ++ preempt_enable(); ++ /* ++ * Try to push this task off of this CPU. ++ */ ++ if (!migrate_me()) { ++ preempt_disable(); ++ hp = &__get_cpu_var(hotplug_pcp); ++ if (!hp->grab_lock) { ++ /* ++ * Just let it continue it's already pinned ++ * or about to sleep. ++ */ ++ force = 1; ++ goto retry; ++ } ++ preempt_enable(); ++ } ++ } + preempt_disable(); + goto retry; + } +@@ -127,26 +166,84 @@ void unpin_current_cpu(void) + wake_up_process(hp->unplug); + } + +-/* +- * FIXME: Is this really correct under all circumstances ? +- */ ++static void wait_for_pinned_cpus(struct hotplug_pcp *hp) ++{ ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ while (hp->refcount) { ++ schedule_preempt_disabled(); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ } ++} ++ + static int sync_unplug_thread(void *data) + { + struct hotplug_pcp *hp = data; + + preempt_disable(); + hp->unplug = current; ++ wait_for_pinned_cpus(hp); ++ ++ /* ++ * This thread will synchronize the cpu_down() with threads ++ * that have pinned the CPU. When the pinned CPU count reaches ++ * zero, we inform the cpu_down code to continue to the next step. ++ */ + set_current_state(TASK_UNINTERRUPTIBLE); +- while (hp->refcount) { +- schedule_preempt_disabled(); ++ preempt_enable(); ++ complete(&hp->synced); ++ ++ /* ++ * If all succeeds, the next step will need tasks to wait till ++ * the CPU is offline before continuing. To do this, the grab_lock ++ * is set and tasks going into pin_current_cpu() will block on the ++ * mutex. But we still need to wait for those that are already in ++ * pinned CPU sections. If the cpu_down() failed, the kthread_should_stop() ++ * will kick this thread out. ++ */ ++ while (!hp->grab_lock && !kthread_should_stop()) { ++ schedule(); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ } ++ ++ /* Make sure grab_lock is seen before we see a stale completion */ ++ smp_mb(); ++ ++ /* ++ * Now just before cpu_down() enters stop machine, we need to make ++ * sure all tasks that are in pinned CPU sections are out, and new ++ * tasks will now grab the lock, keeping them from entering pinned ++ * CPU sections. ++ */ ++ if (!kthread_should_stop()) { ++ preempt_disable(); ++ wait_for_pinned_cpus(hp); ++ preempt_enable(); ++ complete(&hp->synced); ++ } ++ ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ while (!kthread_should_stop()) { ++ schedule(); + set_current_state(TASK_UNINTERRUPTIBLE); + } + set_current_state(TASK_RUNNING); +- preempt_enable(); +- complete(&hp->synced); ++ ++ /* ++ * Force this thread off this CPU as it's going down and ++ * we don't want any more work on this CPU. ++ */ ++ current->flags &= ~PF_THREAD_BOUND; ++ do_set_cpus_allowed(current, cpu_present_mask); ++ migrate_me(); + return 0; + } + ++static void __cpu_unplug_sync(struct hotplug_pcp *hp) ++{ ++ wake_up_process(hp->sync_tsk); ++ wait_for_completion(&hp->synced); ++} ++ + /* + * Start the sync_unplug_thread on the target cpu and wait for it to + * complete. +@@ -154,23 +251,83 @@ static int sync_unplug_thread(void *data) + static int cpu_unplug_begin(unsigned int cpu) + { + struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); +- struct task_struct *tsk; ++ int err; ++ ++ /* Protected by cpu_hotplug.lock */ ++ if (!hp->mutex_init) { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ spin_lock_init(&hp->lock); ++#else ++ mutex_init(&hp->mutex); ++#endif ++ hp->mutex_init = 1; ++ } ++ ++ /* Inform the scheduler to migrate tasks off this CPU */ ++ tell_sched_cpu_down_begin(cpu); + + init_completion(&hp->synced); +- tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu); +- if (IS_ERR(tsk)) +- return (PTR_ERR(tsk)); +- kthread_bind(tsk, cpu); +- wake_up_process(tsk); +- wait_for_completion(&hp->synced); ++ ++ hp->sync_tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu); ++ if (IS_ERR(hp->sync_tsk)) { ++ err = PTR_ERR(hp->sync_tsk); ++ hp->sync_tsk = NULL; ++ return err; ++ } ++ kthread_bind(hp->sync_tsk, cpu); ++ ++ /* ++ * Wait for tasks to get out of the pinned sections, ++ * it's still OK if new tasks enter. Some CPU notifiers will ++ * wait for tasks that are going to enter these sections and ++ * we must not have them block. ++ */ ++ __cpu_unplug_sync(hp); ++ + return 0; + } + ++static void cpu_unplug_sync(unsigned int cpu) ++{ ++ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); ++ ++ init_completion(&hp->synced); ++ /* The completion needs to be initialzied before setting grab_lock */ ++ smp_wmb(); ++ ++ /* Grab the mutex before setting grab_lock */ ++ hotplug_lock(hp); ++ hp->grab_lock = 1; ++ ++ /* ++ * The CPU notifiers have been completed. ++ * Wait for tasks to get out of pinned CPU sections and have new ++ * tasks block until the CPU is completely down. ++ */ ++ __cpu_unplug_sync(hp); ++ ++ /* All done with the sync thread */ ++ kthread_stop(hp->sync_tsk); ++ hp->sync_tsk = NULL; ++} ++ + static void cpu_unplug_done(unsigned int cpu) + { + struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); + + hp->unplug = NULL; ++ /* Let all tasks know cpu unplug is finished before cleaning up */ ++ smp_wmb(); ++ ++ if (hp->sync_tsk) ++ kthread_stop(hp->sync_tsk); ++ ++ if (hp->grab_lock) { ++ hotplug_unlock(hp); ++ /* protected by cpu_hotplug.lock */ ++ hp->grab_lock = 0; ++ } ++ tell_sched_cpu_down_done(cpu); + } + + void get_online_cpus(void) +@@ -178,9 +335,9 @@ void get_online_cpus(void) + might_sleep(); + if (cpu_hotplug.active_writer == current) + return; +- hotplug_lock(); ++ mutex_lock(&cpu_hotplug.lock); + cpu_hotplug.refcount++; +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + + } + EXPORT_SYMBOL_GPL(get_online_cpus); +@@ -189,10 +346,10 @@ void put_online_cpus(void) + { + if (cpu_hotplug.active_writer == current) + return; +- hotplug_lock(); ++ mutex_lock(&cpu_hotplug.lock); + if (!--cpu_hotplug.refcount && unlikely(cpu_hotplug.active_writer)) + wake_up_process(cpu_hotplug.active_writer); +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + + } + EXPORT_SYMBOL_GPL(put_online_cpus); +@@ -224,11 +381,11 @@ static void cpu_hotplug_begin(void) + cpu_hotplug.active_writer = current; + + for (;;) { +- hotplug_lock(); ++ mutex_lock(&cpu_hotplug.lock); + if (likely(!cpu_hotplug.refcount)) + break; + __set_current_state(TASK_UNINTERRUPTIBLE); +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + schedule(); + } + } +@@ -236,7 +393,7 @@ static void cpu_hotplug_begin(void) + static void cpu_hotplug_done(void) + { + cpu_hotplug.active_writer = NULL; +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + } + + #else /* #if CONFIG_HOTPLUG_CPU */ +@@ -371,6 +528,9 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen) + goto out_release; + } + ++ /* Notifiers are done. Don't let any more tasks pin this CPU. */ ++ cpu_unplug_sync(cpu); ++ + err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu)); + if (err) { + /* CPU didn't die: tell everyone. Can't complain. */ +diff --git a/kernel/sched.c b/kernel/sched.c +index 4dd1fff..bc2375e 100644 +--- a/kernel/sched.c ++++ b/kernel/sched.c +@@ -4403,7 +4403,7 @@ void migrate_disable(void) + { + struct task_struct *p = current; + +- if (in_atomic() || p->flags & PF_THREAD_BOUND) { ++ if (in_atomic()) { + #ifdef CONFIG_SCHED_DEBUG + p->migrate_disable_atomic++; + #endif +@@ -4434,7 +4434,7 @@ void migrate_enable(void) + unsigned long flags; + struct rq *rq; + +- if (in_atomic() || p->flags & PF_THREAD_BOUND) { ++ if (in_atomic()) { + #ifdef CONFIG_SCHED_DEBUG + p->migrate_disable_atomic--; + #endif +@@ -6360,6 +6360,84 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) + cpumask_copy(&p->cpus_allowed, new_mask); + } + ++static DEFINE_PER_CPU(struct cpumask, sched_cpumasks); ++static DEFINE_MUTEX(sched_down_mutex); ++static cpumask_t sched_down_cpumask; ++ ++void tell_sched_cpu_down_begin(int cpu) ++{ ++ mutex_lock(&sched_down_mutex); ++ cpumask_set_cpu(cpu, &sched_down_cpumask); ++ mutex_unlock(&sched_down_mutex); ++} ++ ++void tell_sched_cpu_down_done(int cpu) ++{ ++ mutex_lock(&sched_down_mutex); ++ cpumask_clear_cpu(cpu, &sched_down_cpumask); ++ mutex_unlock(&sched_down_mutex); ++} ++ ++/** ++ * migrate_me - try to move the current task off this cpu ++ * ++ * Used by the pin_current_cpu() code to try to get tasks ++ * to move off the current CPU as it is going down. ++ * It will only move the task if the task isn't pinned to ++ * the CPU (with migrate_disable, affinity or THREAD_BOUND) ++ * and the task has to be in a RUNNING state. Otherwise the ++ * movement of the task will wake it up (change its state ++ * to running) when the task did not expect it. ++ * ++ * Returns 1 if it succeeded in moving the current task ++ * 0 otherwise. ++ */ ++int migrate_me(void) ++{ ++ struct task_struct *p = current; ++ struct migration_arg arg; ++ struct cpumask *cpumask; ++ struct cpumask *mask; ++ unsigned long flags; ++ unsigned int dest_cpu; ++ struct rq *rq; ++ ++ /* ++ * We can not migrate tasks bounded to a CPU or tasks not ++ * running. The movement of the task will wake it up. ++ */ ++ if (p->flags & PF_THREAD_BOUND || p->state) ++ return 0; ++ ++ mutex_lock(&sched_down_mutex); ++ rq = task_rq_lock(p, &flags); ++ ++ cpumask = &__get_cpu_var(sched_cpumasks); ++ mask = &p->cpus_allowed; ++ ++ cpumask_andnot(cpumask, mask, &sched_down_cpumask); ++ ++ if (!cpumask_weight(cpumask)) { ++ /* It's only on this CPU? */ ++ task_rq_unlock(rq, p, &flags); ++ mutex_unlock(&sched_down_mutex); ++ return 0; ++ } ++ ++ dest_cpu = cpumask_any_and(cpu_active_mask, cpumask); ++ ++ arg.task = p; ++ arg.dest_cpu = dest_cpu; ++ ++ task_rq_unlock(rq, p, &flags); ++ ++ stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg); ++ tlb_migrate_finish(p->mm); ++ mutex_unlock(&sched_down_mutex); ++ ++ return 1; ++} ++ + /* + * This is how migration works: + * +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch b/debian/patches/features/all/rt/0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch new file mode 100644 index 000000000..0f32ffbe5 --- /dev/null +++ b/debian/patches/features/all/rt/0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch @@ -0,0 +1,35 @@ +From 1b3a69d48f1f68d069cdadea0e43f9f34e919460 Mon Sep 17 00:00:00 2001 +From: Steven Rostedt +Date: Tue, 17 Jul 2012 10:45:59 -0400 +Subject: [PATCH 279/282] cpu/rt: Fix cpu_hotplug variable initialization + +The commit "cpu/rt: Rework cpu down for PREEMPT_RT" changed the double +meaning of the cpu_hotplug.lock, where it was a spinlock for RT and a +mutex for non-RT, to just a mutex for both. But the initialization of +the variable was not updated to reflect this change. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Steven Rostedt +--- + kernel/cpu.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/kernel/cpu.c b/kernel/cpu.c +index 0964e93..8f87b72 100644 +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -54,11 +54,7 @@ static struct { + int refcount; + } cpu_hotplug = { + .active_writer = NULL, +-#ifdef CONFIG_PREEMPT_RT_FULL +- .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock), +-#else + .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock), +-#endif + .refcount = 0, + }; + +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch b/debian/patches/features/all/rt/0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch new file mode 100644 index 000000000..124ace45f --- /dev/null +++ b/debian/patches/features/all/rt/0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch @@ -0,0 +1,96 @@ +From 13c1866747488ef76afe12b3adec243f0d59772d Mon Sep 17 00:00:00 2001 +From: Steven Rostedt +Date: Mon, 16 Jul 2012 08:07:44 +0000 +Subject: [PATCH 280/282] workqueue: Revert workqueue: Fix PF_THREAD_BOUND + abuse + +Revert commit + + Author: Peter Zijlstra + Date: Mon Oct 3 12:43:25 2011 +0200 + workqueue: Fix PF_THREAD_BOUND abuse + +As TREAD_BOUND no longer affects cpu down, and this code introduced +a lot of races with taking down a CPU. + +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner +--- + kernel/workqueue.c | 29 +++++++++-------------------- + 1 file changed, 9 insertions(+), 20 deletions(-) + +diff --git a/kernel/workqueue.c b/kernel/workqueue.c +index 674d783..5179143 100644 +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -1288,14 +1288,8 @@ __acquires(&gcwq->lock) + return false; + if (task_cpu(task) == gcwq->cpu && + cpumask_equal(¤t->cpus_allowed, +- get_cpu_mask(gcwq->cpu))) { +- /* +- * Since we're binding to a particular cpu and need to +- * stay there for correctness, mark us PF_THREAD_BOUND. +- */ +- task->flags |= PF_THREAD_BOUND; ++ get_cpu_mask(gcwq->cpu))) + return true; +- } + spin_unlock_irq(&gcwq->lock); + + /* +@@ -1309,18 +1303,6 @@ __acquires(&gcwq->lock) + } + } + +-static void worker_unbind_and_unlock(struct worker *worker) +-{ +- struct global_cwq *gcwq = worker->gcwq; +- struct task_struct *task = worker->task; +- +- /* +- * Its no longer required we're PF_THREAD_BOUND, the work is done. +- */ +- task->flags &= ~PF_THREAD_BOUND; +- spin_unlock_irq(&gcwq->lock); +-} +- + static struct worker *alloc_worker(void) + { + struct worker *worker; +@@ -1383,9 +1365,15 @@ static struct worker *create_worker(struct global_cwq *gcwq, bool bind) + if (IS_ERR(worker->task)) + goto fail; + ++ /* ++ * A rogue worker will become a regular one if CPU comes ++ * online later on. Make sure every worker has ++ * PF_THREAD_BOUND set. ++ */ + if (bind && !on_unbound_cpu) + kthread_bind(worker->task, gcwq->cpu); + else { ++ worker->task->flags |= PF_THREAD_BOUND; + if (on_unbound_cpu) + worker->flags |= WORKER_UNBOUND; + } +@@ -2062,7 +2050,7 @@ repeat: + if (keep_working(gcwq)) + wake_up_worker(gcwq); + +- worker_unbind_and_unlock(rescuer); ++ spin_unlock_irq(&gcwq->lock); + } + + schedule(); +@@ -3011,6 +2999,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *name, + if (IS_ERR(rescuer->task)) + goto err; + ++ rescuer->task->flags |= PF_THREAD_BOUND; + wake_up_process(rescuer->task); + } + +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch b/debian/patches/features/all/rt/0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch new file mode 100644 index 000000000..a12ab5e4f --- /dev/null +++ b/debian/patches/features/all/rt/0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch @@ -0,0 +1,803 @@ +From 2368a1cce3ab4a01e714e43b2342a398e847ff57 Mon Sep 17 00:00:00 2001 +From: Steven Rostedt +Date: Mon, 16 Jul 2012 08:07:44 +0000 +Subject: [PATCH 281/282] workqueue: Revert workqueue: Fix cpuhotplug + trainwreck + +Revert + + Author: Peter Zijlstra + Date: Fri Sep 30 11:57:58 2011 +0200 + workqueue: Fix cpuhotplug trainwreck + +As TREAD_BOUND no longer affects cpu down, and this code introduced +a lot of races with taking down a CPU. + +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner +--- + include/linux/cpu.h | 6 +- + include/linux/workqueue.h | 5 +- + kernel/workqueue.c | 561 +++++++++++++++++++++++++++++++++------------ + 3 files changed, 415 insertions(+), 157 deletions(-) + +diff --git a/include/linux/cpu.h b/include/linux/cpu.h +index 72e90bb..c46ec3e 100644 +--- a/include/linux/cpu.h ++++ b/include/linux/cpu.h +@@ -66,10 +66,8 @@ enum { + /* migration should happen before other stuff but after perf */ + CPU_PRI_PERF = 20, + CPU_PRI_MIGRATION = 10, +- +- CPU_PRI_WORKQUEUE_ACTIVE = 5, /* prepare workqueues for others */ +- CPU_PRI_NORMAL = 0, +- CPU_PRI_WORKQUEUE_INACTIVE = -5, /* flush workqueues after others */ ++ /* prepare workqueues for other notifiers */ ++ CPU_PRI_WORKQUEUE = 5, + }; + + #define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */ +diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h +index 3d8ac9d..e228ca9 100644 +--- a/include/linux/workqueue.h ++++ b/include/linux/workqueue.h +@@ -254,10 +254,9 @@ enum { + WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */ + WQ_HIGHPRI = 1 << 4, /* high priority */ + WQ_CPU_INTENSIVE = 1 << 5, /* cpu instensive workqueue */ +- WQ_NON_AFFINE = 1 << 6, /* free to move works around cpus */ + +- WQ_DRAINING = 1 << 7, /* internal: workqueue is draining */ +- WQ_RESCUER = 1 << 8, /* internal: workqueue has rescuer */ ++ WQ_DRAINING = 1 << 6, /* internal: workqueue is draining */ ++ WQ_RESCUER = 1 << 7, /* internal: workqueue has rescuer */ + + WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */ + WQ_MAX_UNBOUND_PER_CPU = 4, /* 4 * #cpus for unbound wq */ +diff --git a/kernel/workqueue.c b/kernel/workqueue.c +index 5179143..5d23c05b 100644 +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -41,7 +41,6 @@ + #include + #include + #include +-#include + + #include "workqueue_sched.h" + +@@ -58,10 +57,20 @@ enum { + WORKER_DIE = 1 << 1, /* die die die */ + WORKER_IDLE = 1 << 2, /* is idle */ + WORKER_PREP = 1 << 3, /* preparing to run works */ +- WORKER_CPU_INTENSIVE = 1 << 4, /* cpu intensive */ +- WORKER_UNBOUND = 1 << 5, /* worker is unbound */ ++ WORKER_ROGUE = 1 << 4, /* not bound to any cpu */ ++ WORKER_REBIND = 1 << 5, /* mom is home, come back */ ++ WORKER_CPU_INTENSIVE = 1 << 6, /* cpu intensive */ ++ WORKER_UNBOUND = 1 << 7, /* worker is unbound */ + +- WORKER_NOT_RUNNING = WORKER_PREP | WORKER_CPU_INTENSIVE | WORKER_UNBOUND, ++ WORKER_NOT_RUNNING = WORKER_PREP | WORKER_ROGUE | WORKER_REBIND | ++ WORKER_CPU_INTENSIVE | WORKER_UNBOUND, ++ ++ /* gcwq->trustee_state */ ++ TRUSTEE_START = 0, /* start */ ++ TRUSTEE_IN_CHARGE = 1, /* trustee in charge of gcwq */ ++ TRUSTEE_BUTCHER = 2, /* butcher workers */ ++ TRUSTEE_RELEASE = 3, /* release workers */ ++ TRUSTEE_DONE = 4, /* trustee is done */ + + BUSY_WORKER_HASH_ORDER = 6, /* 64 pointers */ + BUSY_WORKER_HASH_SIZE = 1 << BUSY_WORKER_HASH_ORDER, +@@ -75,6 +84,7 @@ enum { + (min two ticks) */ + MAYDAY_INTERVAL = HZ / 10, /* and then every 100ms */ + CREATE_COOLDOWN = HZ, /* time to breath after fail */ ++ TRUSTEE_COOLDOWN = HZ / 10, /* for trustee draining */ + + /* + * Rescue workers are used only on emergencies and shared by +@@ -126,6 +136,7 @@ struct worker { + unsigned long last_active; /* L: last active timestamp */ + unsigned int flags; /* X: flags */ + int id; /* I: worker id */ ++ struct work_struct rebind_work; /* L: rebind worker to cpu */ + int sleeping; /* None */ + }; + +@@ -153,8 +164,10 @@ struct global_cwq { + + struct ida worker_ida; /* L: for worker IDs */ + ++ struct task_struct *trustee; /* L: for gcwq shutdown */ ++ unsigned int trustee_state; /* L: trustee state */ ++ wait_queue_head_t trustee_wait; /* trustee wait */ + struct worker *first_idle; /* L: first idle worker */ +- wait_queue_head_t idle_wait; + } ____cacheline_aligned_in_smp; + + /* +@@ -961,38 +974,13 @@ static bool is_chained_work(struct workqueue_struct *wq) + return false; + } + +-static void ___queue_work(struct workqueue_struct *wq, struct global_cwq *gcwq, +- struct work_struct *work) +-{ +- struct cpu_workqueue_struct *cwq; +- struct list_head *worklist; +- unsigned int work_flags; +- +- /* gcwq determined, get cwq and queue */ +- cwq = get_cwq(gcwq->cpu, wq); +- trace_workqueue_queue_work(gcwq->cpu, cwq, work); +- +- BUG_ON(!list_empty(&work->entry)); +- +- cwq->nr_in_flight[cwq->work_color]++; +- work_flags = work_color_to_flags(cwq->work_color); +- +- if (likely(cwq->nr_active < cwq->max_active)) { +- trace_workqueue_activate_work(work); +- cwq->nr_active++; +- worklist = gcwq_determine_ins_pos(gcwq, cwq); +- } else { +- work_flags |= WORK_STRUCT_DELAYED; +- worklist = &cwq->delayed_works; +- } +- +- insert_work(cwq, work, worklist, work_flags); +-} +- + static void __queue_work(unsigned int cpu, struct workqueue_struct *wq, + struct work_struct *work) + { + struct global_cwq *gcwq; ++ struct cpu_workqueue_struct *cwq; ++ struct list_head *worklist; ++ unsigned int work_flags; + unsigned long flags; + + debug_work_activate(work); +@@ -1038,32 +1026,27 @@ static void __queue_work(unsigned int cpu, struct workqueue_struct *wq, + spin_lock_irqsave(&gcwq->lock, flags); + } + +- ___queue_work(wq, gcwq, work); ++ /* gcwq determined, get cwq and queue */ ++ cwq = get_cwq(gcwq->cpu, wq); ++ trace_workqueue_queue_work(cpu, cwq, work); + +- spin_unlock_irqrestore(&gcwq->lock, flags); +-} ++ BUG_ON(!list_empty(&work->entry)); + +-/** +- * queue_work_on - queue work on specific cpu +- * @cpu: CPU number to execute work on +- * @wq: workqueue to use +- * @work: work to queue +- * +- * Returns 0 if @work was already on a queue, non-zero otherwise. +- * +- * We queue the work to a specific CPU, the caller must ensure it +- * can't go away. +- */ +-static int +-__queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work) +-{ +- int ret = 0; ++ cwq->nr_in_flight[cwq->work_color]++; ++ work_flags = work_color_to_flags(cwq->work_color); + +- if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { +- __queue_work(cpu, wq, work); +- ret = 1; ++ if (likely(cwq->nr_active < cwq->max_active)) { ++ trace_workqueue_activate_work(work); ++ cwq->nr_active++; ++ worklist = gcwq_determine_ins_pos(gcwq, cwq); ++ } else { ++ work_flags |= WORK_STRUCT_DELAYED; ++ worklist = &cwq->delayed_works; + } +- return ret; ++ ++ insert_work(cwq, work, worklist, work_flags); ++ ++ spin_unlock_irqrestore(&gcwq->lock, flags); + } + + /** +@@ -1080,19 +1063,34 @@ int queue_work(struct workqueue_struct *wq, struct work_struct *work) + { + int ret; + +- ret = __queue_work_on(get_cpu_light(), wq, work); ++ ret = queue_work_on(get_cpu_light(), wq, work); + put_cpu_light(); + + return ret; + } + EXPORT_SYMBOL_GPL(queue_work); + ++/** ++ * queue_work_on - queue work on specific cpu ++ * @cpu: CPU number to execute work on ++ * @wq: workqueue to use ++ * @work: work to queue ++ * ++ * Returns 0 if @work was already on a queue, non-zero otherwise. ++ * ++ * We queue the work to a specific CPU, the caller must ensure it ++ * can't go away. ++ */ + int + queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work) + { +- WARN_ON(wq->flags & WQ_NON_AFFINE); ++ int ret = 0; + +- return __queue_work_on(cpu, wq, work); ++ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { ++ __queue_work(cpu, wq, work); ++ ret = 1; ++ } ++ return ret; + } + EXPORT_SYMBOL_GPL(queue_work_on); + +@@ -1138,8 +1136,6 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, + struct timer_list *timer = &dwork->timer; + struct work_struct *work = &dwork->work; + +- WARN_ON((wq->flags & WQ_NON_AFFINE) && cpu != -1); +- + if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { + unsigned int lcpu; + +@@ -1205,13 +1201,12 @@ static void worker_enter_idle(struct worker *worker) + /* idle_list is LIFO */ + list_add(&worker->entry, &gcwq->idle_list); + +- if (gcwq->nr_idle == gcwq->nr_workers) +- wake_up_all(&gcwq->idle_wait); +- +- if (too_many_workers(gcwq) && !timer_pending(&gcwq->idle_timer)) { +- mod_timer(&gcwq->idle_timer, +- jiffies + IDLE_WORKER_TIMEOUT); +- } ++ if (likely(!(worker->flags & WORKER_ROGUE))) { ++ if (too_many_workers(gcwq) && !timer_pending(&gcwq->idle_timer)) ++ mod_timer(&gcwq->idle_timer, ++ jiffies + IDLE_WORKER_TIMEOUT); ++ } else ++ wake_up_all(&gcwq->trustee_wait); + + /* sanity check nr_running */ + WARN_ON_ONCE(gcwq->nr_workers == gcwq->nr_idle && +@@ -1303,6 +1298,23 @@ __acquires(&gcwq->lock) + } + } + ++/* ++ * Function for worker->rebind_work used to rebind rogue busy workers ++ * to the associated cpu which is coming back online. This is ++ * scheduled by cpu up but can race with other cpu hotplug operations ++ * and may be executed twice without intervening cpu down. ++ */ ++static void worker_rebind_fn(struct work_struct *work) ++{ ++ struct worker *worker = container_of(work, struct worker, rebind_work); ++ struct global_cwq *gcwq = worker->gcwq; ++ ++ if (worker_maybe_bind_and_lock(worker)) ++ worker_clr_flags(worker, WORKER_REBIND); ++ ++ spin_unlock_irq(&gcwq->lock); ++} ++ + static struct worker *alloc_worker(void) + { + struct worker *worker; +@@ -1311,6 +1323,7 @@ static struct worker *alloc_worker(void) + if (worker) { + INIT_LIST_HEAD(&worker->entry); + INIT_LIST_HEAD(&worker->scheduled); ++ INIT_WORK(&worker->rebind_work, worker_rebind_fn); + /* on creation a worker is in !idle && prep state */ + worker->flags = WORKER_PREP; + } +@@ -1650,6 +1663,13 @@ static bool manage_workers(struct worker *worker) + + gcwq->flags &= ~GCWQ_MANAGING_WORKERS; + ++ /* ++ * The trustee might be waiting to take over the manager ++ * position, tell it we're done. ++ */ ++ if (unlikely(gcwq->trustee)) ++ wake_up_all(&gcwq->trustee_wait); ++ + return ret; + } + +@@ -3189,76 +3209,171 @@ EXPORT_SYMBOL_GPL(work_busy); + * gcwqs serve mix of short, long and very long running works making + * blocked draining impractical. + * ++ * This is solved by allowing a gcwq to be detached from CPU, running ++ * it with unbound (rogue) workers and allowing it to be reattached ++ * later if the cpu comes back online. A separate thread is created ++ * to govern a gcwq in such state and is called the trustee of the ++ * gcwq. ++ * ++ * Trustee states and their descriptions. ++ * ++ * START Command state used on startup. On CPU_DOWN_PREPARE, a ++ * new trustee is started with this state. ++ * ++ * IN_CHARGE Once started, trustee will enter this state after ++ * assuming the manager role and making all existing ++ * workers rogue. DOWN_PREPARE waits for trustee to ++ * enter this state. After reaching IN_CHARGE, trustee ++ * tries to execute the pending worklist until it's empty ++ * and the state is set to BUTCHER, or the state is set ++ * to RELEASE. ++ * ++ * BUTCHER Command state which is set by the cpu callback after ++ * the cpu has went down. Once this state is set trustee ++ * knows that there will be no new works on the worklist ++ * and once the worklist is empty it can proceed to ++ * killing idle workers. ++ * ++ * RELEASE Command state which is set by the cpu callback if the ++ * cpu down has been canceled or it has come online ++ * again. After recognizing this state, trustee stops ++ * trying to drain or butcher and clears ROGUE, rebinds ++ * all remaining workers back to the cpu and releases ++ * manager role. ++ * ++ * DONE Trustee will enter this state after BUTCHER or RELEASE ++ * is complete. ++ * ++ * trustee CPU draining ++ * took over down complete ++ * START -----------> IN_CHARGE -----------> BUTCHER -----------> DONE ++ * | | ^ ++ * | CPU is back online v return workers | ++ * ----------------> RELEASE -------------- + */ + +-static int __devinit workqueue_cpu_up_callback(struct notifier_block *nfb, +- unsigned long action, +- void *hcpu) +-{ +- unsigned int cpu = (unsigned long)hcpu; +- struct global_cwq *gcwq = get_gcwq(cpu); +- struct worker *uninitialized_var(new_worker); +- unsigned long flags; ++/** ++ * trustee_wait_event_timeout - timed event wait for trustee ++ * @cond: condition to wait for ++ * @timeout: timeout in jiffies ++ * ++ * wait_event_timeout() for trustee to use. Handles locking and ++ * checks for RELEASE request. ++ * ++ * CONTEXT: ++ * spin_lock_irq(gcwq->lock) which may be released and regrabbed ++ * multiple times. To be used by trustee. ++ * ++ * RETURNS: ++ * Positive indicating left time if @cond is satisfied, 0 if timed ++ * out, -1 if canceled. ++ */ ++#define trustee_wait_event_timeout(cond, timeout) ({ \ ++ long __ret = (timeout); \ ++ while (!((cond) || (gcwq->trustee_state == TRUSTEE_RELEASE)) && \ ++ __ret) { \ ++ spin_unlock_irq(&gcwq->lock); \ ++ __wait_event_timeout(gcwq->trustee_wait, (cond) || \ ++ (gcwq->trustee_state == TRUSTEE_RELEASE), \ ++ __ret); \ ++ spin_lock_irq(&gcwq->lock); \ ++ } \ ++ gcwq->trustee_state == TRUSTEE_RELEASE ? -1 : (__ret); \ ++}) + +- action &= ~CPU_TASKS_FROZEN; ++/** ++ * trustee_wait_event - event wait for trustee ++ * @cond: condition to wait for ++ * ++ * wait_event() for trustee to use. Automatically handles locking and ++ * checks for CANCEL request. ++ * ++ * CONTEXT: ++ * spin_lock_irq(gcwq->lock) which may be released and regrabbed ++ * multiple times. To be used by trustee. ++ * ++ * RETURNS: ++ * 0 if @cond is satisfied, -1 if canceled. ++ */ ++#define trustee_wait_event(cond) ({ \ ++ long __ret1; \ ++ __ret1 = trustee_wait_event_timeout(cond, MAX_SCHEDULE_TIMEOUT);\ ++ __ret1 < 0 ? -1 : 0; \ ++}) + +- switch (action) { +- case CPU_UP_PREPARE: +- BUG_ON(gcwq->first_idle); +- new_worker = create_worker(gcwq, false); +- if (!new_worker) +- return NOTIFY_BAD; +- case CPU_UP_CANCELED: +- case CPU_ONLINE: +- break; +- default: +- return notifier_from_errno(0); +- } ++static int __cpuinit trustee_thread(void *__gcwq) ++{ ++ struct global_cwq *gcwq = __gcwq; ++ struct worker *worker; ++ struct work_struct *work; ++ struct hlist_node *pos; ++ long rc; ++ int i; + +- /* some are called w/ irq disabled, don't disturb irq status */ +- spin_lock_irqsave(&gcwq->lock, flags); ++ BUG_ON(gcwq->cpu != smp_processor_id()); + +- switch (action) { +- case CPU_UP_PREPARE: +- BUG_ON(gcwq->first_idle); +- gcwq->first_idle = new_worker; +- break; ++ spin_lock_irq(&gcwq->lock); ++ /* ++ * Claim the manager position and make all workers rogue. ++ * Trustee must be bound to the target cpu and can't be ++ * cancelled. ++ */ ++ BUG_ON(gcwq->cpu != smp_processor_id()); ++ rc = trustee_wait_event(!(gcwq->flags & GCWQ_MANAGING_WORKERS)); ++ BUG_ON(rc < 0); + +- case CPU_UP_CANCELED: +- destroy_worker(gcwq->first_idle); +- gcwq->first_idle = NULL; +- break; ++ gcwq->flags |= GCWQ_MANAGING_WORKERS; + +- case CPU_ONLINE: +- spin_unlock_irq(&gcwq->lock); +- kthread_bind(gcwq->first_idle->task, cpu); +- spin_lock_irq(&gcwq->lock); +- gcwq->flags |= GCWQ_MANAGE_WORKERS; +- start_worker(gcwq->first_idle); +- gcwq->first_idle = NULL; +- break; +- } ++ list_for_each_entry(worker, &gcwq->idle_list, entry) ++ worker->flags |= WORKER_ROGUE; + +- spin_unlock_irqrestore(&gcwq->lock, flags); ++ for_each_busy_worker(worker, i, pos, gcwq) ++ worker->flags |= WORKER_ROGUE; + +- return notifier_from_errno(0); +-} ++ /* ++ * Call schedule() so that we cross rq->lock and thus can ++ * guarantee sched callbacks see the rogue flag. This is ++ * necessary as scheduler callbacks may be invoked from other ++ * cpus. ++ */ ++ spin_unlock_irq(&gcwq->lock); ++ schedule(); ++ spin_lock_irq(&gcwq->lock); + +-static void flush_gcwq(struct global_cwq *gcwq) +-{ +- struct work_struct *work, *nw; +- struct worker *worker, *n; +- LIST_HEAD(non_affine_works); ++ /* ++ * Sched callbacks are disabled now. Zap nr_running. After ++ * this, nr_running stays zero and need_more_worker() and ++ * keep_working() are always true as long as the worklist is ++ * not empty. ++ */ ++ atomic_set(get_gcwq_nr_running(gcwq->cpu), 0); + ++ spin_unlock_irq(&gcwq->lock); ++ del_timer_sync(&gcwq->idle_timer); + spin_lock_irq(&gcwq->lock); +- list_for_each_entry_safe(work, nw, &gcwq->worklist, entry) { +- struct workqueue_struct *wq = get_work_cwq(work)->wq; + +- if (wq->flags & WQ_NON_AFFINE) +- list_move(&work->entry, &non_affine_works); +- } ++ /* ++ * We're now in charge. Notify and proceed to drain. We need ++ * to keep the gcwq running during the whole CPU down ++ * procedure as other cpu hotunplug callbacks may need to ++ * flush currently running tasks. ++ */ ++ gcwq->trustee_state = TRUSTEE_IN_CHARGE; ++ wake_up_all(&gcwq->trustee_wait); + +- while (!list_empty(&gcwq->worklist)) { ++ /* ++ * The original cpu is in the process of dying and may go away ++ * anytime now. When that happens, we and all workers would ++ * be migrated to other cpus. Try draining any left work. We ++ * want to get it over with ASAP - spam rescuers, wake up as ++ * many idlers as necessary and create new ones till the ++ * worklist is empty. Note that if the gcwq is frozen, there ++ * may be frozen works in freezable cwqs. Don't declare ++ * completion while frozen. ++ */ ++ while (gcwq->nr_workers != gcwq->nr_idle || ++ gcwq->flags & GCWQ_FREEZING || ++ gcwq->trustee_state == TRUSTEE_IN_CHARGE) { + int nr_works = 0; + + list_for_each_entry(work, &gcwq->worklist, entry) { +@@ -3272,55 +3387,200 @@ static void flush_gcwq(struct global_cwq *gcwq) + wake_up_process(worker->task); + } + +- spin_unlock_irq(&gcwq->lock); +- + if (need_to_create_worker(gcwq)) { +- worker = create_worker(gcwq, true); +- if (worker) ++ spin_unlock_irq(&gcwq->lock); ++ worker = create_worker(gcwq, false); ++ spin_lock_irq(&gcwq->lock); ++ if (worker) { ++ worker->flags |= WORKER_ROGUE; + start_worker(worker); ++ } + } + +- wait_event_timeout(gcwq->idle_wait, +- gcwq->nr_idle == gcwq->nr_workers, HZ/10); +- +- spin_lock_irq(&gcwq->lock); ++ /* give a breather */ ++ if (trustee_wait_event_timeout(false, TRUSTEE_COOLDOWN) < 0) ++ break; + } + +- WARN_ON(gcwq->nr_workers != gcwq->nr_idle); ++ /* ++ * Either all works have been scheduled and cpu is down, or ++ * cpu down has already been canceled. Wait for and butcher ++ * all workers till we're canceled. ++ */ ++ do { ++ rc = trustee_wait_event(!list_empty(&gcwq->idle_list)); ++ while (!list_empty(&gcwq->idle_list)) ++ destroy_worker(list_first_entry(&gcwq->idle_list, ++ struct worker, entry)); ++ } while (gcwq->nr_workers && rc >= 0); + +- list_for_each_entry_safe(worker, n, &gcwq->idle_list, entry) +- destroy_worker(worker); ++ /* ++ * At this point, either draining has completed and no worker ++ * is left, or cpu down has been canceled or the cpu is being ++ * brought back up. There shouldn't be any idle one left. ++ * Tell the remaining busy ones to rebind once it finishes the ++ * currently scheduled works by scheduling the rebind_work. ++ */ ++ WARN_ON(!list_empty(&gcwq->idle_list)); + +- WARN_ON(gcwq->nr_workers || gcwq->nr_idle); ++ for_each_busy_worker(worker, i, pos, gcwq) { ++ struct work_struct *rebind_work = &worker->rebind_work; + +- spin_unlock_irq(&gcwq->lock); ++ /* ++ * Rebind_work may race with future cpu hotplug ++ * operations. Use a separate flag to mark that ++ * rebinding is scheduled. ++ */ ++ worker->flags |= WORKER_REBIND; ++ worker->flags &= ~WORKER_ROGUE; + +- gcwq = get_gcwq(get_cpu_light()); +- spin_lock_irq(&gcwq->lock); +- list_for_each_entry_safe(work, nw, &non_affine_works, entry) { +- list_del_init(&work->entry); +- ___queue_work(get_work_cwq(work)->wq, gcwq, work); ++ /* queue rebind_work, wq doesn't matter, use the default one */ ++ if (test_and_set_bit(WORK_STRUCT_PENDING_BIT, ++ work_data_bits(rebind_work))) ++ continue; ++ ++ debug_work_activate(rebind_work); ++ insert_work(get_cwq(gcwq->cpu, system_wq), rebind_work, ++ worker->scheduled.next, ++ work_color_to_flags(WORK_NO_COLOR)); + } ++ ++ /* relinquish manager role */ ++ gcwq->flags &= ~GCWQ_MANAGING_WORKERS; ++ ++ /* notify completion */ ++ gcwq->trustee = NULL; ++ gcwq->trustee_state = TRUSTEE_DONE; ++ wake_up_all(&gcwq->trustee_wait); + spin_unlock_irq(&gcwq->lock); +- put_cpu_light(); ++ return 0; + } + +-static int __devinit workqueue_cpu_down_callback(struct notifier_block *nfb, ++/** ++ * wait_trustee_state - wait for trustee to enter the specified state ++ * @gcwq: gcwq the trustee of interest belongs to ++ * @state: target state to wait for ++ * ++ * Wait for the trustee to reach @state. DONE is already matched. ++ * ++ * CONTEXT: ++ * spin_lock_irq(gcwq->lock) which may be released and regrabbed ++ * multiple times. To be used by cpu_callback. ++ */ ++static void __cpuinit wait_trustee_state(struct global_cwq *gcwq, int state) ++__releases(&gcwq->lock) ++__acquires(&gcwq->lock) ++{ ++ if (!(gcwq->trustee_state == state || ++ gcwq->trustee_state == TRUSTEE_DONE)) { ++ spin_unlock_irq(&gcwq->lock); ++ __wait_event(gcwq->trustee_wait, ++ gcwq->trustee_state == state || ++ gcwq->trustee_state == TRUSTEE_DONE); ++ spin_lock_irq(&gcwq->lock); ++ } ++} ++ ++static int __devinit workqueue_cpu_callback(struct notifier_block *nfb, + unsigned long action, + void *hcpu) + { + unsigned int cpu = (unsigned long)hcpu; + struct global_cwq *gcwq = get_gcwq(cpu); ++ struct task_struct *new_trustee = NULL; ++ struct worker *uninitialized_var(new_worker); ++ unsigned long flags; + + action &= ~CPU_TASKS_FROZEN; + +- switch (action) { +- case CPU_DOWN_PREPARE: +- flush_gcwq(gcwq); +- break; +- } ++ switch (action) { ++ case CPU_DOWN_PREPARE: ++ new_trustee = kthread_create(trustee_thread, gcwq, ++ "workqueue_trustee/%d\n", cpu); ++ if (IS_ERR(new_trustee)) ++ return notifier_from_errno(PTR_ERR(new_trustee)); ++ kthread_bind(new_trustee, cpu); ++ /* fall through */ ++ case CPU_UP_PREPARE: ++ BUG_ON(gcwq->first_idle); ++ new_worker = create_worker(gcwq, false); ++ if (!new_worker) { ++ if (new_trustee) ++ kthread_stop(new_trustee); ++ return NOTIFY_BAD; ++ } ++ break; ++ case CPU_POST_DEAD: ++ case CPU_UP_CANCELED: ++ case CPU_DOWN_FAILED: ++ case CPU_ONLINE: ++ break; ++ case CPU_DYING: ++ /* ++ * We access this lockless. We are on the dying CPU ++ * and called from stomp machine. ++ * ++ * Before this, the trustee and all workers except for ++ * the ones which are still executing works from ++ * before the last CPU down must be on the cpu. After ++ * this, they'll all be diasporas. ++ */ ++ gcwq->flags |= GCWQ_DISASSOCIATED; ++ default: ++ goto out; ++ } ++ ++ /* some are called w/ irq disabled, don't disturb irq status */ ++ spin_lock_irqsave(&gcwq->lock, flags); ++ ++ switch (action) { ++ case CPU_DOWN_PREPARE: ++ /* initialize trustee and tell it to acquire the gcwq */ ++ BUG_ON(gcwq->trustee || gcwq->trustee_state != TRUSTEE_DONE); ++ gcwq->trustee = new_trustee; ++ gcwq->trustee_state = TRUSTEE_START; ++ wake_up_process(gcwq->trustee); ++ wait_trustee_state(gcwq, TRUSTEE_IN_CHARGE); ++ /* fall through */ ++ case CPU_UP_PREPARE: ++ BUG_ON(gcwq->first_idle); ++ gcwq->first_idle = new_worker; ++ break; ++ ++ case CPU_POST_DEAD: ++ gcwq->trustee_state = TRUSTEE_BUTCHER; ++ /* fall through */ ++ case CPU_UP_CANCELED: ++ destroy_worker(gcwq->first_idle); ++ gcwq->first_idle = NULL; ++ break; + ++ case CPU_DOWN_FAILED: ++ case CPU_ONLINE: ++ gcwq->flags &= ~GCWQ_DISASSOCIATED; ++ if (gcwq->trustee_state != TRUSTEE_DONE) { ++ gcwq->trustee_state = TRUSTEE_RELEASE; ++ wake_up_process(gcwq->trustee); ++ wait_trustee_state(gcwq, TRUSTEE_DONE); ++ } ++ ++ /* ++ * Trustee is done and there might be no worker left. ++ * Put the first_idle in and request a real manager to ++ * take a look. ++ */ ++ spin_unlock_irq(&gcwq->lock); ++ kthread_bind(gcwq->first_idle->task, cpu); ++ spin_lock_irq(&gcwq->lock); ++ gcwq->flags |= GCWQ_MANAGE_WORKERS; ++ start_worker(gcwq->first_idle); ++ gcwq->first_idle = NULL; ++ break; ++ } ++ ++ spin_unlock_irqrestore(&gcwq->lock, flags); + ++out: + return notifier_from_errno(0); + } + +@@ -3517,8 +3777,7 @@ static int __init init_workqueues(void) + unsigned int cpu; + int i; + +- cpu_notifier(workqueue_cpu_up_callback, CPU_PRI_WORKQUEUE_ACTIVE); +- hotcpu_notifier(workqueue_cpu_down_callback, CPU_PRI_WORKQUEUE_INACTIVE); ++ cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE); + + /* initialize gcwqs */ + for_each_gcwq_cpu(cpu) { +@@ -3541,7 +3800,9 @@ static int __init init_workqueues(void) + (unsigned long)gcwq); + + ida_init(&gcwq->worker_ida); +- init_waitqueue_head(&gcwq->idle_wait); ++ ++ gcwq->trustee_state = TRUSTEE_DONE; ++ init_waitqueue_head(&gcwq->trustee_wait); + } + + /* create the initial worker */ +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/0271-Linux-3.2.20-rt32-REBASE.patch b/debian/patches/features/all/rt/0282-Linux-3.2.23-rt37-REBASE.patch similarity index 57% rename from debian/patches/features/all/rt/0271-Linux-3.2.20-rt32-REBASE.patch rename to debian/patches/features/all/rt/0282-Linux-3.2.23-rt37-REBASE.patch index acf537835..a1ff277e1 100644 --- a/debian/patches/features/all/rt/0271-Linux-3.2.20-rt32-REBASE.patch +++ b/debian/patches/features/all/rt/0282-Linux-3.2.23-rt37-REBASE.patch @@ -1,19 +1,19 @@ -From 776fb4d39fa4da747d2a0fd1929e3e16f4eeee92 Mon Sep 17 00:00:00 2001 +From 214b9416c8681625ff8090fa0d84d2f64c126057 Mon Sep 17 00:00:00 2001 From: Steven Rostedt -Date: Thu, 7 Jun 2012 11:22:24 -0400 -Subject: [PATCH 271/271] Linux 3.2.20-rt32 REBASE +Date: Tue, 17 Jul 2012 21:59:04 -0400 +Subject: [PATCH 282/282] Linux 3.2.23-rt37 REBASE --- localversion-rt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-rt b/localversion-rt -index b2111a2..ce6a482 100644 +index b2111a2..a3b2408 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt24 -+-rt32 ++-rt37 -- 1.7.10 diff --git a/debian/patches/features/all/rt/series b/debian/patches/features/all/rt/series index e04901d79..bc951490d 100644 --- a/debian/patches/features/all/rt/series +++ b/debian/patches/features/all/rt/series @@ -268,4 +268,15 @@ 0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch 0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch 0270-mips-remove-smp-reserve-lock.patch.patch -0271-Linux-3.2.20-rt32-REBASE.patch +0271-Latency-histogramms-Cope-with-backwards-running-loca.patch +0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch +0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch +0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch +0275-slab-Prevent-local-lock-deadlock.patch +0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch +0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch +0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch +0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch +0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch +0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch +0282-Linux-3.2.23-rt37-REBASE.patch diff --git a/debian/patches/series-rt b/debian/patches/series-rt index a6f808f4b..df6527715 100644 --- a/debian/patches/series-rt +++ b/debian/patches/series-rt @@ -70,6 +70,7 @@ features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch features/all/rt/0071-latency-hist.patch.patch features/all/rt/0072-hwlatdetect.patch.patch +features/all/rt/0073-localversion.patch.patch features/all/rt/0074-early-printk-consolidate.patch.patch features/all/rt/0075-printk-kill.patch.patch features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch @@ -267,3 +268,15 @@ features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch +features/all/rt/0271-Latency-histogramms-Cope-with-backwards-running-loca.patch +features/all/rt/0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch +features/all/rt/0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch +features/all/rt/0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch +features/all/rt/0275-slab-Prevent-local-lock-deadlock.patch +features/all/rt/0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch +features/all/rt/0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch +features/all/rt/0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch +features/all/rt/0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch +features/all/rt/0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch +features/all/rt/0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch +features/all/rt/0282-Linux-3.2.23-rt37-REBASE.patch