[rt] Update to 4.4.3-rt9
This commit is contained in:
parent
d686ba0c14
commit
6fe4131989
|
@ -161,6 +161,7 @@ linux (4.4.3-1) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
[ Uwe Kleine-König ]
|
[ Uwe Kleine-König ]
|
||||||
* [armhf] enable AXP20X_POWER (Closes: #815971)
|
* [armhf] enable AXP20X_POWER (Closes: #815971)
|
||||||
|
* [rt] Update to 4.4.3-rt9
|
||||||
|
|
||||||
-- Salvatore Bonaccorso <carnil@debian.org> Sun, 28 Feb 2016 07:02:42 +0100
|
-- Salvatore Bonaccorso <carnil@debian.org> Sun, 28 Feb 2016 07:02:42 +0100
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 1 Mar 2013 11:17:42 +0100
|
Date: Fri, 1 Mar 2013 11:17:42 +0100
|
||||||
Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
|
Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
In exit_pi_state_list() we have the following locking construct:
|
In exit_pi_state_list() we have the following locking construct:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: "Yadi.hu" <yadi.hu@windriver.com>
|
From: "Yadi.hu" <yadi.hu@windriver.com>
|
||||||
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
||||||
Subject: ARM: enable irq in translation/section permission fault handlers
|
Subject: ARM: enable irq in translation/section permission fault handlers
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Probably happens on all ARM, with
|
Probably happens on all ARM, with
|
||||||
CONFIG_PREEMPT_RT_FULL
|
CONFIG_PREEMPT_RT_FULL
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
||||||
Subject: printk: Drop the logbuf_lock more often
|
Subject: printk: Drop the logbuf_lock more often
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
|
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
|
||||||
with a "full" buffer after executing "dmesg" on the shell.
|
with a "full" buffer after executing "dmesg" on the shell.
|
||||||
|
|
|
@ -3,7 +3,7 @@ From: Josh Cartwright <joshc@ni.com>
|
||||||
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
||||||
Subject: [PATCH 2/2] KVM: arm/arm64: downgrade preempt_disable()d region to
|
Subject: [PATCH 2/2] KVM: arm/arm64: downgrade preempt_disable()d region to
|
||||||
migrate_disable()
|
migrate_disable()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
|
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
|
||||||
the vgic and timer states to prevent the calling task from migrating to
|
the vgic and timer states to prevent the calling task from migrating to
|
||||||
|
@ -20,14 +20,12 @@ Reported-by: Manish Jaggi <Manish.Jaggi@caviumnetworks.com>
|
||||||
Signed-off-by: Josh Cartwright <joshc@ni.com>
|
Signed-off-by: Josh Cartwright <joshc@ni.com>
|
||||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
---
|
---
|
||||||
arch/arm/kvm/arm.c | 6 +++---
|
arch/arm/kvm/arm.c | 6 +++---
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
|
|
||||||
index 4f5c42a0924c..2ce9cc2717ac 100644
|
|
||||||
--- a/arch/arm/kvm/arm.c
|
--- a/arch/arm/kvm/arm.c
|
||||||
+++ b/arch/arm/kvm/arm.c
|
+++ b/arch/arm/kvm/arm.c
|
||||||
@@ -568,7 +568,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
@@ -568,7 +568,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||||
* involves poking the GIC, which must be done in a
|
* involves poking the GIC, which must be done in a
|
||||||
* non-preemptible context.
|
* non-preemptible context.
|
||||||
*/
|
*/
|
||||||
|
@ -36,7 +34,7 @@ index 4f5c42a0924c..2ce9cc2717ac 100644
|
||||||
kvm_timer_flush_hwstate(vcpu);
|
kvm_timer_flush_hwstate(vcpu);
|
||||||
kvm_vgic_flush_hwstate(vcpu);
|
kvm_vgic_flush_hwstate(vcpu);
|
||||||
|
|
||||||
@@ -587,7 +587,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
@@ -587,7 +587,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||||
local_irq_enable();
|
local_irq_enable();
|
||||||
kvm_timer_sync_hwstate(vcpu);
|
kvm_timer_sync_hwstate(vcpu);
|
||||||
kvm_vgic_sync_hwstate(vcpu);
|
kvm_vgic_sync_hwstate(vcpu);
|
||||||
|
@ -45,7 +43,7 @@ index 4f5c42a0924c..2ce9cc2717ac 100644
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -641,7 +641,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
@@ -641,7 +641,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||||
|
|
||||||
kvm_vgic_sync_hwstate(vcpu);
|
kvm_vgic_sync_hwstate(vcpu);
|
||||||
|
|
||||||
|
@ -54,6 +52,3 @@ index 4f5c42a0924c..2ce9cc2717ac 100644
|
||||||
|
|
||||||
ret = handle_exit(vcpu, run, ret);
|
ret = handle_exit(vcpu, run, ret);
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.7.0
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
From: Marcelo Tosatti <mtosatti@redhat.com>
|
||||||
Date: Wed, 8 Apr 2015 20:33:25 -0300
|
Date: Wed, 8 Apr 2015 20:33:25 -0300
|
||||||
Subject: KVM: lapic: mark LAPIC timer handler as irqsafe
|
Subject: KVM: lapic: mark LAPIC timer handler as irqsafe
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Since lapic timer handler only wakes up a simple waitqueue,
|
Since lapic timer handler only wakes up a simple waitqueue,
|
||||||
it can be executed from hardirq context.
|
it can be executed from hardirq context.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
From: Marcelo Tosatti <mtosatti@redhat.com>
|
||||||
Date: Wed, 8 Apr 2015 20:33:24 -0300
|
Date: Wed, 8 Apr 2015 20:33:24 -0300
|
||||||
Subject: KVM: use simple waitqueue for vcpu->wq
|
Subject: KVM: use simple waitqueue for vcpu->wq
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The problem:
|
The problem:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Wed, 13 Feb 2013 09:26:05 -0500
|
Date: Wed, 13 Feb 2013 09:26:05 -0500
|
||||||
Subject: acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
|
Subject: acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
We hit the following bug with 3.6-rt:
|
We hit the following bug with 3.6-rt:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Anders Roxell <anders.roxell@linaro.org>
|
From: Anders Roxell <anders.roxell@linaro.org>
|
||||||
Date: Thu, 14 May 2015 17:52:17 +0200
|
Date: Thu, 14 May 2015 17:52:17 +0200
|
||||||
Subject: arch/arm64: Add lazy preempt support
|
Subject: arch/arm64: Add lazy preempt support
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
arm64 is missing support for PREEMPT_RT. The main feature which is
|
arm64 is missing support for PREEMPT_RT. The main feature which is
|
||||||
lacking is support for lazy preemption. The arch-specific entry code,
|
lacking is support for lazy preemption. The arch-specific entry code,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 22 Jan 2016 21:33:39 +0100
|
Date: Fri, 22 Jan 2016 21:33:39 +0100
|
||||||
Subject: arm+arm64: lazy-preempt: add TIF_NEED_RESCHED_LAZY to _TIF_WORK_MASK
|
Subject: arm+arm64: lazy-preempt: add TIF_NEED_RESCHED_LAZY to _TIF_WORK_MASK
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
_TIF_WORK_MASK is used to check for TIF_NEED_RESCHED so we need to check
|
_TIF_WORK_MASK is used to check for TIF_NEED_RESCHED so we need to check
|
||||||
for TIF_NEED_RESCHED_LAZY here, too.
|
for TIF_NEED_RESCHED_LAZY here, too.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||||
Date: Sat, 6 Mar 2010 17:47:10 +0100
|
Date: Sat, 6 Mar 2010 17:47:10 +0100
|
||||||
Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused
|
Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Setup and remove the interrupt handler in clock event mode selection.
|
Setup and remove the interrupt handler in clock event mode selection.
|
||||||
This avoids calling the (shared) interrupt handler when the device is
|
This avoids calling the (shared) interrupt handler when the device is
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sat, 1 May 2010 18:29:35 +0200
|
Date: Sat, 1 May 2010 18:29:35 +0200
|
||||||
Subject: ARM: at91: tclib: Default to tclib timer for RT
|
Subject: ARM: at91: tclib: Default to tclib timer for RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
RT is not too happy about the shared timer interrupt in AT91
|
RT is not too happy about the shared timer interrupt in AT91
|
||||||
devices. Default to tclib timer for RT.
|
devices. Default to tclib timer for RT.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Frank Rowand <frank.rowand@am.sony.com>
|
From: Frank Rowand <frank.rowand@am.sony.com>
|
||||||
Date: Mon, 19 Sep 2011 14:51:14 -0700
|
Date: Mon, 19 Sep 2011 14:51:14 -0700
|
||||||
Subject: arm: Convert arm boot_lock to raw
|
Subject: arm: Convert arm boot_lock to raw
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The arm boot_lock is used by the secondary processor startup code. The locking
|
The arm boot_lock is used by the secondary processor startup code. The locking
|
||||||
task is the idle thread, which has idle->sched_class == &idle_sched_class.
|
task is the idle thread, which has idle->sched_class == &idle_sched_class.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: arm: Enable highmem for rt
|
Subject: arm: Enable highmem for rt
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 13 Feb 2013 11:03:11 +0100
|
Date: Wed, 13 Feb 2013 11:03:11 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
fixup highmem for ARM.
|
fixup highmem for ARM.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
||||||
Subject: arm/highmem: Flush tlb on unmap
|
Subject: arm/highmem: Flush tlb on unmap
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The tlb should be flushed on unmap and thus make the mapping entry
|
The tlb should be flushed on unmap and thus make the mapping entry
|
||||||
invalid. This is only done in the non-debug case which does not look
|
invalid. This is only done in the non-debug case which does not look
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: arm: Add support for lazy preemption
|
Subject: arm: Add support for lazy preemption
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Implement the arm pieces for lazy preempt.
|
Implement the arm pieces for lazy preempt.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 20 Sep 2013 14:31:54 +0200
|
Date: Fri, 20 Sep 2013 14:31:54 +0200
|
||||||
Subject: arm/unwind: use a raw_spin_lock
|
Subject: arm/unwind: use a raw_spin_lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Mostly unwind is done with irqs enabled however SLUB may call it with
|
Mostly unwind is done with irqs enabled however SLUB may call it with
|
||||||
irqs disabled while creating a new SLUB cache.
|
irqs disabled while creating a new SLUB cache.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Yang Shi <yang.shi@linaro.org>
|
From: Yang Shi <yang.shi@linaro.org>
|
||||||
Date: Mon, 8 Feb 2016 14:49:24 -0800
|
Date: Mon, 8 Feb 2016 14:49:24 -0800
|
||||||
Subject: arm64: replace read_lock to rcu lock in call_step_hook
|
Subject: arm64: replace read_lock to rcu lock in call_step_hook
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
|
BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
|
||||||
in_atomic(): 1, irqs_disabled(): 128, pid: 383, name: sh
|
in_atomic(): 1, irqs_disabled(): 128, pid: 383, name: sh
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: arm64/xen: Make XEN depend on !RT
|
Subject: arm64/xen: Make XEN depend on !RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Mon, 12 Oct 2015 11:18:40 +0200
|
Date: Mon, 12 Oct 2015 11:18:40 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
It's not ready and probably never will be, unless xen folks have a
|
It's not ready and probably never will be, unless xen folks have a
|
||||||
look at it.
|
look at it.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <srostedt@redhat.com>
|
From: Steven Rostedt <srostedt@redhat.com>
|
||||||
Date: Fri, 3 Jul 2009 08:44:29 -0500
|
Date: Fri, 3 Jul 2009 08:44:29 -0500
|
||||||
Subject: ata: Do not disable interrupts in ide code for preempt-rt
|
Subject: ata: Do not disable interrupts in ide code for preempt-rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Use the local_irq_*_nort variants.
|
Use the local_irq_*_nort variants.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Sat, 3 May 2014 11:00:29 +0200
|
Date: Sat, 3 May 2014 11:00:29 +0200
|
||||||
Subject: blk-mq: revert raw locks, post pone notifier to POST_DEAD
|
Subject: blk-mq: revert raw locks, post pone notifier to POST_DEAD
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The blk_mq_cpu_notify_lock should be raw because some CPU down levels
|
The blk_mq_cpu_notify_lock should be raw because some CPU down levels
|
||||||
are called with interrupts off. The notifier itself calls currently one
|
are called with interrupts off. The notifier itself calls currently one
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 13 Feb 2015 11:01:26 +0100
|
Date: Fri, 13 Feb 2015 11:01:26 +0100
|
||||||
Subject: block: blk-mq: Use swait
|
Subject: block: blk-mq: Use swait
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
||||||
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 29 Jan 2015 15:10:08 +0100
|
Date: Thu, 29 Jan 2015 15:10:08 +0100
|
||||||
Subject: block/mq: don't complete requests via IPI
|
Subject: block/mq: don't complete requests via IPI
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The IPI runs in hardirq context and there are sleeping locks. This patch
|
The IPI runs in hardirq context and there are sleeping locks. This patch
|
||||||
moves the completion into a workqueue.
|
moves the completion into a workqueue.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 18 Feb 2015 18:37:26 +0100
|
Date: Wed, 18 Feb 2015 18:37:26 +0100
|
||||||
Subject: block/mq: drop per ctx cpu_lock
|
Subject: block/mq: drop per ctx cpu_lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
While converting the get_cpu() to get_cpu_light() I added a cpu lock to
|
While converting the get_cpu() to get_cpu_light() I added a cpu lock to
|
||||||
ensure the same code is not invoked twice on the same CPU. And now I run
|
ensure the same code is not invoked twice on the same CPU. And now I run
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: block/mq: do not invoke preempt_disable()
|
Subject: block/mq: do not invoke preempt_disable()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
preempt_disable() and get_cpu() don't play well together with the sleeping
|
preempt_disable() and get_cpu() don't play well together with the sleeping
|
||||||
locks it tries to allocate later.
|
locks it tries to allocate later.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
||||||
Subject: block: mq: use cpu_light()
|
Subject: block: mq: use cpu_light()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
there is a might sleep splat because get_cpu() disables preemption and
|
there is a might sleep splat because get_cpu() disables preemption and
|
||||||
later we grab a lock. As a workaround for this we use get_cpu_light()
|
later we grab a lock. As a workaround for this we use get_cpu_light()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: block: Shorten interrupt disabled regions
|
Subject: block: Shorten interrupt disabled regions
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 22 Jun 2011 19:47:02 +0200
|
Date: Wed, 22 Jun 2011 19:47:02 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
|
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
|
||||||
disabled region in the scheduler allows us to replace
|
disabled region in the scheduler allows us to replace
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: block: Use cpu_chill() for retry loops
|
Subject: block: Use cpu_chill() for retry loops
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Thu, 20 Dec 2012 18:28:26 +0100
|
Date: Thu, 20 Dec 2012 18:28:26 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Retry loops on RT might loop forever when the modifying side was
|
Retry loops on RT might loop forever when the modifying side was
|
||||||
preempted. Steven also observed a live lock when there was a
|
preempted. Steven also observed a live lock when there was a
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 15 Jan 2016 14:28:39 +0100
|
Date: Fri, 15 Jan 2016 14:28:39 +0100
|
||||||
Subject: btrfs: initialize the seq counter in struct btrfs_device
|
Subject: btrfs: initialize the seq counter in struct btrfs_device
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
I managed to trigger this:
|
I managed to trigger this:
|
||||||
| INFO: trying to register non-static key.
|
| INFO: trying to register non-static key.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:58 -0500
|
Date: Fri, 3 Jul 2009 08:29:58 -0500
|
||||||
Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT
|
Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code.
|
Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Sat, 21 Jun 2014 10:09:48 +0200
|
Date: Sat, 21 Jun 2014 10:09:48 +0200
|
||||||
Subject: memcontrol: Prevent scheduling while atomic in cgroup code
|
Subject: memcontrol: Prevent scheduling while atomic in cgroup code
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
mm, memcg: make refill_stock() use get_cpu_light()
|
mm, memcg: make refill_stock() use get_cpu_light()
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 13 Feb 2015 15:52:24 +0100
|
Date: Fri, 13 Feb 2015 15:52:24 +0100
|
||||||
Subject: cgroups: use simple wait in css_release()
|
Subject: cgroups: use simple wait in css_release()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
To avoid:
|
To avoid:
|
||||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||||
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
||||||
Subject: clocksource: TCLIB: Allow higher clock rates for clock events
|
Subject: clocksource: TCLIB: Allow higher clock rates for clock events
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
As default the TCLIB uses the 32KiHz base clock rate for clock events.
|
As default the TCLIB uses the 32KiHz base clock rate for clock events.
|
||||||
Add a compile time selection to allow higher clock resulution.
|
Add a compile time selection to allow higher clock resulution.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: completion: Use simple wait queues
|
Subject: completion: Use simple wait queues
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 11 Jan 2013 11:23:51 +0100
|
Date: Fri, 11 Jan 2013 11:23:51 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Completions have no long lasting callbacks and therefor do not need
|
Completions have no long lasting callbacks and therefor do not need
|
||||||
the complex waitqueue variant. Use simple waitqueues which reduces the
|
the complex waitqueue variant. Use simple waitqueues which reduces the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: sched: Use the proper LOCK_OFFSET for cond_resched()
|
Subject: sched: Use the proper LOCK_OFFSET for cond_resched()
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 22:51:33 +0200
|
Date: Sun, 17 Jul 2011 22:51:33 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
RT does not increment preempt count when a 'sleeping' spinlock is
|
RT does not increment preempt count when a 'sleeping' spinlock is
|
||||||
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: sched: Take RT softirq semantics into account in cond_resched()
|
Subject: sched: Take RT softirq semantics into account in cond_resched()
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Thu, 14 Jul 2011 09:56:44 +0200
|
Date: Thu, 14 Jul 2011 09:56:44 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in
|
The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in
|
||||||
the preemption counter which leads to the BUG_ON() statement in
|
the preemption counter which leads to the BUG_ON() statement in
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Thu, 5 Dec 2013 09:16:52 -0500
|
Date: Thu, 5 Dec 2013 09:16:52 -0500
|
||||||
Subject: cpu hotplug: Document why PREEMPT_RT uses a spinlock
|
Subject: cpu hotplug: Document why PREEMPT_RT uses a spinlock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The patch:
|
The patch:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
|
Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Fri, 02 Mar 2012 10:36:57 -0500
|
Date: Fri, 02 Mar 2012 10:36:57 -0500
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
|
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
|
||||||
might be != RUNNING. So the mutex wakeup will set the state
|
might be != RUNNING. So the mutex wakeup will set the state
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <srostedt@redhat.com>
|
From: Steven Rostedt <srostedt@redhat.com>
|
||||||
Date: Mon, 16 Jul 2012 08:07:43 +0000
|
Date: Mon, 16 Jul 2012 08:07:43 +0000
|
||||||
Subject: cpu/rt: Rework cpu down for PREEMPT_RT
|
Subject: cpu/rt: Rework cpu down for PREEMPT_RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Bringing a CPU down is a pain with the PREEMPT_RT kernel because
|
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
|
tasks can be preempted in many more places than in non-RT. In
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Tue, 4 Mar 2014 12:28:32 -0500
|
Date: Tue, 4 Mar 2014 12:28:32 -0500
|
||||||
Subject: cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
|
Subject: cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
We hit another bug that was caused by switching cpu_chill() from
|
We hit another bug that was caused by switching cpu_chill() from
|
||||||
msleep() to hrtimer_nanosleep().
|
msleep() to hrtimer_nanosleep().
|
||||||
|
@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/kernel/time/hrtimer.c
|
--- a/kernel/time/hrtimer.c
|
||||||
+++ b/kernel/time/hrtimer.c
|
+++ b/kernel/time/hrtimer.c
|
||||||
@@ -1656,12 +1656,13 @@ void hrtimer_init_sleeper(struct hrtimer
|
@@ -1675,12 +1675,13 @@ void hrtimer_init_sleeper(struct hrtimer
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
|
EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
hrtimer_start_expires(&t->timer, mode);
|
hrtimer_start_expires(&t->timer, mode);
|
||||||
|
|
||||||
if (likely(t->task))
|
if (likely(t->task))
|
||||||
@@ -1703,7 +1704,8 @@ long __sched hrtimer_nanosleep_restart(s
|
@@ -1722,7 +1723,8 @@ long __sched hrtimer_nanosleep_restart(s
|
||||||
HRTIMER_MODE_ABS);
|
HRTIMER_MODE_ABS);
|
||||||
hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires);
|
hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires);
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
rmtp = restart->nanosleep.rmtp;
|
rmtp = restart->nanosleep.rmtp;
|
||||||
@@ -1720,8 +1722,10 @@ long __sched hrtimer_nanosleep_restart(s
|
@@ -1739,8 +1741,10 @@ long __sched hrtimer_nanosleep_restart(s
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
{
|
{
|
||||||
struct restart_block *restart;
|
struct restart_block *restart;
|
||||||
struct hrtimer_sleeper t;
|
struct hrtimer_sleeper t;
|
||||||
@@ -1734,7 +1738,7 @@ long hrtimer_nanosleep(struct timespec *
|
@@ -1753,7 +1757,7 @@ long hrtimer_nanosleep(struct timespec *
|
||||||
|
|
||||||
hrtimer_init_on_stack(&t.timer, clockid, mode);
|
hrtimer_init_on_stack(&t.timer, clockid, mode);
|
||||||
hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack);
|
hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack);
|
||||||
|
@ -82,7 +82,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* Absolute timers do not update the rmtp value and restart: */
|
/* Absolute timers do not update the rmtp value and restart: */
|
||||||
@@ -1761,6 +1765,12 @@ long hrtimer_nanosleep(struct timespec *
|
@@ -1780,6 +1784,12 @@ long hrtimer_nanosleep(struct timespec *
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
|
SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
|
||||||
struct timespec __user *, rmtp)
|
struct timespec __user *, rmtp)
|
||||||
{
|
{
|
||||||
@@ -1787,7 +1797,8 @@ void cpu_chill(void)
|
@@ -1806,7 +1816,8 @@ void cpu_chill(void)
|
||||||
unsigned int freeze_flag = current->flags & PF_NOFREEZE;
|
unsigned int freeze_flag = current->flags & PF_NOFREEZE;
|
||||||
|
|
||||||
current->flags |= PF_NOFREEZE;
|
current->flags |= PF_NOFREEZE;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Tiejun Chen <tiejun.chen@windriver.com>
|
From: Tiejun Chen <tiejun.chen@windriver.com>
|
||||||
Subject: cpu_down: move migrate_enable() back
|
Subject: cpu_down: move migrate_enable() back
|
||||||
Date: Thu, 7 Nov 2013 10:06:07 +0800
|
Date: Thu, 7 Nov 2013 10:06:07 +0800
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to
|
Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to
|
||||||
use migrate_enable()/migrate_disable() to replace that combination
|
use migrate_enable()/migrate_disable() to replace that combination
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
||||||
Subject: cpufreq: drop K8's driver from beeing selected
|
Subject: cpufreq: drop K8's driver from beeing selected
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Ralf posted a picture of a backtrace from
|
Ralf posted a picture of a backtrace from
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
We can't deal with the cpumask allocations which happen in atomic
|
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.
|
context (see arch/x86/kernel/apic/io_apic.c) on RT right now.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 21 Feb 2014 17:24:04 +0100
|
Date: Fri, 21 Feb 2014 17:24:04 +0100
|
||||||
Subject: crypto: Reduce preempt disabled regions, more algos
|
Subject: crypto: Reduce preempt disabled regions, more algos
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Don Estabrook reported
|
Don Estabrook reported
|
||||||
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
|
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: debugobjects: Make RT aware
|
Subject: debugobjects: Make RT aware
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 21:41:35 +0200
|
Date: Sun, 17 Jul 2011 21:41:35 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Avoid filling the pool / allocating memory with irqs off().
|
Avoid filling the pool / allocating memory with irqs off().
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: dm: Make rt aware
|
Subject: dm: Make rt aware
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Mon, 14 Nov 2011 23:06:09 +0100
|
Date: Mon, 14 Nov 2011 23:06:09 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
|
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
|
||||||
interrupts legitimately enabled here as we cant deadlock against the
|
interrupts legitimately enabled here as we cant deadlock against the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Anders Roxell <anders.roxell@linaro.org>
|
From: Anders Roxell <anders.roxell@linaro.org>
|
||||||
Date: Fri, 15 Jan 2016 20:21:12 +0100
|
Date: Fri, 15 Jan 2016 20:21:12 +0100
|
||||||
Subject: drivers/cpuidle: coupled: fix warning cpuidle_coupled_lock
|
Subject: drivers/cpuidle: coupled: fix warning cpuidle_coupled_lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Used multi_v7_defconfig+PREEMPT_RT_FULL=y and this caused a compilation
|
Used multi_v7_defconfig+PREEMPT_RT_FULL=y and this caused a compilation
|
||||||
warning without this fix:
|
warning without this fix:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Anders Roxell <anders.roxell@linaro.org>
|
From: Anders Roxell <anders.roxell@linaro.org>
|
||||||
Date: Fri, 15 Jan 2016 01:09:43 +0100
|
Date: Fri, 15 Jan 2016 01:09:43 +0100
|
||||||
Subject: drivers/media: vsp1_video: fix compile error
|
Subject: drivers/media: vsp1_video: fix compile error
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
This was found with the -RT patch enabled, but the fix should apply to
|
This was found with the -RT patch enabled, but the fix should apply to
|
||||||
non-RT also.
|
non-RT also.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:24 -0500
|
Date: Fri, 3 Jul 2009 08:29:24 -0500
|
||||||
Subject: drivers/net: Use disable_irq_nosync() in 8139too
|
Subject: drivers/net: Use disable_irq_nosync() in 8139too
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Use disable_irq_nosync() instead of disable_irq() as this might be
|
Use disable_irq_nosync() instead of disable_irq() as this might be
|
||||||
called in atomic context with netpoll.
|
called in atomic context with netpoll.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sat, 20 Jun 2009 11:36:54 +0200
|
Date: Sat, 20 Jun 2009 11:36:54 +0200
|
||||||
Subject: drivers/net: fix livelock issues
|
Subject: drivers/net: fix livelock issues
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
|
Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
|
||||||
optimization. The reason is that the softirq thread is rescheduling
|
optimization. The reason is that the softirq thread is rescheduling
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Fri, 3 Jul 2009 08:30:00 -0500
|
Date: Fri, 3 Jul 2009 08:30:00 -0500
|
||||||
Subject: drivers/net: vortex fix locking issues
|
Subject: drivers/net: vortex fix locking issues
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Argh, cut and paste wasn't enough...
|
Argh, cut and paste wasn't enough...
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
||||||
Subject: drivers: random: Reduce preempt disabled region
|
Subject: drivers: random: Reduce preempt disabled region
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
No need to keep preemption disabled across the whole function.
|
No need to keep preemption disabled across the whole function.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: tty/serial/omap: Make the locking RT aware
|
Subject: tty/serial/omap: Make the locking RT aware
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The lock is a sleeping lock and local_irq_save() is not the
|
The lock is a sleeping lock and local_irq_save() is not the
|
||||||
optimsation we are looking for. Redo it to make it work on -RT and
|
optimsation we are looking for. Redo it to make it work on -RT and
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: tty/serial/pl011: Make the locking work on RT
|
Subject: tty/serial/pl011: Make the locking work on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Tue, 08 Jan 2013 21:36:51 +0100
|
Date: Tue, 08 Jan 2013 21:36:51 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The lock is a sleeping lock and local_irq_save() is not the optimsation
|
The lock is a sleeping lock and local_irq_save() is not the optimsation
|
||||||
we are looking for. Redo it to make it work on -RT and non-RT.
|
we are looking for. Redo it to make it work on -RT and non-RT.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 25 Apr 2013 18:12:52 +0200
|
Date: Thu, 25 Apr 2013 18:12:52 +0200
|
||||||
Subject: drm/i915: drop trace_i915_gem_ring_dispatch on rt
|
Subject: drm/i915: drop trace_i915_gem_ring_dispatch on rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
This tracepoint is responsible for:
|
This tracepoint is responsible for:
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,113 @@
|
||||||
|
Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()
|
||||||
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
|
Date: Sat, 27 Feb 2016 09:01:42 +0100
|
||||||
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
|
|
||||||
|
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
|
||||||
|
[ 8.014041] in_atomic(): 0, irqs_disabled(): 1, pid: 78, name: kworker/u4:4
|
||||||
|
[ 8.014045] CPU: 1 PID: 78 Comm: kworker/u4:4 Not tainted 4.1.7-rt7 #5
|
||||||
|
[ 8.014055] Workqueue: events_unbound async_run_entry_fn
|
||||||
|
[ 8.014059] 0000000000000000 ffff880037153748 ffffffff815f32c9 0000000000000002
|
||||||
|
[ 8.014063] ffff88013a50e380 ffff880037153768 ffffffff815ef075 ffff8800372c06c8
|
||||||
|
[ 8.014066] ffff8800372c06c8 ffff880037153778 ffffffff8107c0b3 ffff880037153798
|
||||||
|
[ 8.014067] Call Trace:
|
||||||
|
[ 8.014074] [<ffffffff815f32c9>] dump_stack+0x4a/0x61
|
||||||
|
[ 8.014078] [<ffffffff815ef075>] ___might_sleep.part.93+0xe9/0xee
|
||||||
|
[ 8.014082] [<ffffffff8107c0b3>] ___might_sleep+0x53/0x80
|
||||||
|
[ 8.014086] [<ffffffff815f9064>] rt_spin_lock+0x24/0x50
|
||||||
|
[ 8.014090] [<ffffffff8109368b>] prepare_to_wait+0x2b/0xa0
|
||||||
|
[ 8.014152] [<ffffffffa016c04c>] intel_pipe_update_start+0x17c/0x300 [i915]
|
||||||
|
[ 8.014156] [<ffffffff81093b40>] ? prepare_to_wait_event+0x120/0x120
|
||||||
|
[ 8.014201] [<ffffffffa0158f36>] intel_begin_crtc_commit+0x166/0x1e0 [i915]
|
||||||
|
[ 8.014215] [<ffffffffa00c806d>] drm_atomic_helper_commit_planes+0x5d/0x1a0 [drm_kms_helper]
|
||||||
|
[ 8.014260] [<ffffffffa0171e9b>] intel_atomic_commit+0xab/0xf0 [i915]
|
||||||
|
[ 8.014288] [<ffffffffa00654c7>] drm_atomic_commit+0x37/0x60 [drm]
|
||||||
|
[ 8.014298] [<ffffffffa00c6fcd>] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper]
|
||||||
|
[ 8.014301] [<ffffffff815f77d9>] ? __ww_mutex_lock+0x39/0x40
|
||||||
|
[ 8.014319] [<ffffffffa0053b3d>] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm]
|
||||||
|
[ 8.014328] [<ffffffffa00c8edb>] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper]
|
||||||
|
[ 8.014337] [<ffffffffa00cae49>] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper]
|
||||||
|
[ 8.014346] [<ffffffffa00caec2>] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper]
|
||||||
|
[ 8.014390] [<ffffffffa016dfba>] intel_fbdev_set_par+0x1a/0x60 [i915]
|
||||||
|
[ 8.014394] [<ffffffff81327dc4>] fbcon_init+0x4f4/0x580
|
||||||
|
[ 8.014398] [<ffffffff8139ef4c>] visual_init+0xbc/0x120
|
||||||
|
[ 8.014401] [<ffffffff813a1623>] do_bind_con_driver+0x163/0x330
|
||||||
|
[ 8.014405] [<ffffffff813a1b2c>] do_take_over_console+0x11c/0x1c0
|
||||||
|
[ 8.014408] [<ffffffff813236e3>] do_fbcon_takeover+0x63/0xd0
|
||||||
|
[ 8.014410] [<ffffffff81328965>] fbcon_event_notify+0x785/0x8d0
|
||||||
|
[ 8.014413] [<ffffffff8107c12d>] ? __might_sleep+0x4d/0x90
|
||||||
|
[ 8.014416] [<ffffffff810775fe>] notifier_call_chain+0x4e/0x80
|
||||||
|
[ 8.014419] [<ffffffff810779cd>] __blocking_notifier_call_chain+0x4d/0x70
|
||||||
|
[ 8.014422] [<ffffffff81077a06>] blocking_notifier_call_chain+0x16/0x20
|
||||||
|
[ 8.014425] [<ffffffff8132b48b>] fb_notifier_call_chain+0x1b/0x20
|
||||||
|
[ 8.014428] [<ffffffff8132d8fa>] register_framebuffer+0x21a/0x350
|
||||||
|
[ 8.014439] [<ffffffffa00cb164>] drm_fb_helper_initial_config+0x274/0x3e0 [drm_kms_helper]
|
||||||
|
[ 8.014483] [<ffffffffa016f1cb>] intel_fbdev_initial_config+0x1b/0x20 [i915]
|
||||||
|
[ 8.014486] [<ffffffff8107912c>] async_run_entry_fn+0x4c/0x160
|
||||||
|
[ 8.014490] [<ffffffff81070ffa>] process_one_work+0x14a/0x470
|
||||||
|
[ 8.014493] [<ffffffff81071489>] worker_thread+0x169/0x4c0
|
||||||
|
[ 8.014496] [<ffffffff81071320>] ? process_one_work+0x470/0x470
|
||||||
|
[ 8.014499] [<ffffffff81076606>] kthread+0xc6/0xe0
|
||||||
|
[ 8.014502] [<ffffffff81070000>] ? queue_work_on+0x80/0x110
|
||||||
|
[ 8.014506] [<ffffffff81076540>] ? kthread_worker_fn+0x1c0/0x1c0
|
||||||
|
|
||||||
|
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
|
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
|
||||||
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/i915/intel_sprite.c | 11 +++++++----
|
||||||
|
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/gpu/drm/i915/intel_sprite.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/intel_sprite.c
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
#include "intel_drv.h"
|
||||||
|
#include <drm/i915_drm.h>
|
||||||
|
#include "i915_drv.h"
|
||||||
|
+#include <linux/locallock.h>
|
||||||
|
|
||||||
|
static bool
|
||||||
|
format_is_yuv(uint32_t format)
|
||||||
|
@@ -64,6 +65,8 @@ static int usecs_to_scanlines(const stru
|
||||||
|
1000 * adjusted_mode->crtc_htotal);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static DEFINE_LOCAL_IRQ_LOCK(pipe_update_lock);
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* intel_pipe_update_start() - start update of a set of display registers
|
||||||
|
* @crtc: the crtc of which the registers are going to be updated
|
||||||
|
@@ -96,7 +99,7 @@ void intel_pipe_update_start(struct inte
|
||||||
|
min = vblank_start - usecs_to_scanlines(adjusted_mode, 100);
|
||||||
|
max = vblank_start - 1;
|
||||||
|
|
||||||
|
- local_irq_disable();
|
||||||
|
+ local_lock_irq(pipe_update_lock);
|
||||||
|
|
||||||
|
if (min <= 0 || max <= 0)
|
||||||
|
return;
|
||||||
|
@@ -126,11 +129,11 @@ void intel_pipe_update_start(struct inte
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- local_irq_enable();
|
||||||
|
+ local_unlock_irq(pipe_update_lock);
|
||||||
|
|
||||||
|
timeout = schedule_timeout(timeout);
|
||||||
|
|
||||||
|
- local_irq_disable();
|
||||||
|
+ local_lock_irq(pipe_update_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
finish_wait(wq, &wait);
|
||||||
|
@@ -164,7 +167,7 @@ void intel_pipe_update_end(struct intel_
|
||||||
|
|
||||||
|
trace_i915_pipe_update_end(crtc, end_vbl_count, scanline_end);
|
||||||
|
|
||||||
|
- local_irq_enable();
|
||||||
|
+ local_unlock_irq(pipe_update_lock);
|
||||||
|
|
||||||
|
if (crtc->debug.start_vbl_count &&
|
||||||
|
crtc->debug.start_vbl_count != end_vbl_count) {
|
|
@ -0,0 +1,52 @@
|
||||||
|
Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended
|
||||||
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
|
Date: Sat, 27 Feb 2016 08:09:11 +0100
|
||||||
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
|
DRM folks identified the spots, so use them.
|
||||||
|
|
||||||
|
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
|
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
|
||||||
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/i915/i915_irq.c | 2 ++
|
||||||
|
drivers/gpu/drm/radeon/radeon_display.c | 2 ++
|
||||||
|
2 files changed, 4 insertions(+)
|
||||||
|
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
|
@@ -812,6 +812,7 @@ static int i915_get_crtc_scanoutpos(stru
|
||||||
|
spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
|
||||||
|
|
||||||
|
/* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
|
||||||
|
+ preempt_disable_rt();
|
||||||
|
|
||||||
|
/* Get optional system timestamp before query. */
|
||||||
|
if (stime)
|
||||||
|
@@ -863,6 +864,7 @@ static int i915_get_crtc_scanoutpos(stru
|
||||||
|
*etime = ktime_get();
|
||||||
|
|
||||||
|
/* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
|
||||||
|
+ preempt_enable_rt();
|
||||||
|
|
||||||
|
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
|
||||||
|
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
@@ -1849,6 +1849,7 @@ int radeon_get_crtc_scanoutpos(struct dr
|
||||||
|
struct radeon_device *rdev = dev->dev_private;
|
||||||
|
|
||||||
|
/* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
|
||||||
|
+ preempt_disable_rt();
|
||||||
|
|
||||||
|
/* Get optional system timestamp before query. */
|
||||||
|
if (stime)
|
||||||
|
@@ -1941,6 +1942,7 @@ int radeon_get_crtc_scanoutpos(struct dr
|
||||||
|
*etime = ktime_get();
|
||||||
|
|
||||||
|
/* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
|
||||||
|
+ preempt_enable_rt();
|
||||||
|
|
||||||
|
/* Decode into vertical and horizontal scanout position. */
|
||||||
|
*vpos = position & 0x1fff;
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Sun, 16 Aug 2015 14:27:50 +0200
|
Date: Sun, 16 Aug 2015 14:27:50 +0200
|
||||||
Subject: dump stack: don't disable preemption during trace
|
Subject: dump stack: don't disable preemption during trace
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
I see here large latencies during a stack dump on x86. The
|
I see here large latencies during a stack dump on x86. The
|
||||||
preempt_disable() and get_cpu() should forbid moving the task to another
|
preempt_disable() and get_cpu() should forbid moving the task to another
|
||||||
|
@ -16,8 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
---
|
---
|
||||||
arch/x86/kernel/dumpstack_32.c | 4 ++--
|
arch/x86/kernel/dumpstack_32.c | 4 ++--
|
||||||
arch/x86/kernel/dumpstack_64.c | 8 ++++----
|
arch/x86/kernel/dumpstack_64.c | 8 ++++----
|
||||||
lib/dump_stack.c | 4 ++--
|
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||||
3 files changed, 8 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
--- a/arch/x86/kernel/dumpstack_32.c
|
--- a/arch/x86/kernel/dumpstack_32.c
|
||||||
+++ b/arch/x86/kernel/dumpstack_32.c
|
+++ b/arch/x86/kernel/dumpstack_32.c
|
||||||
|
@ -77,13 +76,3 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
pr_cont("\n");
|
pr_cont("\n");
|
||||||
show_trace_log_lvl(task, regs, sp, bp, log_lvl);
|
show_trace_log_lvl(task, regs, sp, bp, log_lvl);
|
||||||
--- a/lib/dump_stack.c
|
|
||||||
+++ b/lib/dump_stack.c
|
|
||||||
@@ -34,6 +34,7 @@ asmlinkage __visible void dump_stack(voi
|
|
||||||
* Permit this cpu to perform nested stack dumps while serialising
|
|
||||||
* against other CPUs
|
|
||||||
*/
|
|
||||||
+
|
|
||||||
retry:
|
|
||||||
local_irq_save(flags);
|
|
||||||
cpu = smp_processor_id();
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: fs/epoll: Do not disable preemption on RT
|
Subject: fs/epoll: Do not disable preemption on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
ep_call_nested() takes a sleeping lock so we can't disable preemption.
|
ep_call_nested() takes a sleeping lock so we can't disable preemption.
|
||||||
The light version is enough since ep_call_nested() doesn't mind beeing
|
The light version is enough since ep_call_nested() doesn't mind beeing
|
||||||
|
|
67
debian/patches/features/all/rt/f2fs_Mutex_cant_be_used_by_down_write_nest_lock().patch
vendored
Normal file
67
debian/patches/features/all/rt/f2fs_Mutex_cant_be_used_by_down_write_nest_lock().patch
vendored
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
Subject: f2fs: Mutex can't be used by down_write_nest_lock()
|
||||||
|
From: Yang Shi <yang.shi@linaro.org>
|
||||||
|
Date: Fri, 26 Feb 2016 16:25:25 -0800
|
||||||
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
|
fsf2_lock_all() calls down_write_nest_lock() to acquire a rw_sem and check
|
||||||
|
a mutex, but down_write_nest_lock() is designed for two rw_sem accoring to the
|
||||||
|
comment in include/linux/rwsem.h. And, other than f2fs, it is just called in
|
||||||
|
mm/mmap.c with two rwsem.
|
||||||
|
|
||||||
|
So, it looks it is used wrongly by f2fs. And, it causes the below compile
|
||||||
|
warning on -rt kernel too.
|
||||||
|
|
||||||
|
In file included from fs/f2fs/xattr.c:25:0:
|
||||||
|
fs/f2fs/f2fs.h: In function 'f2fs_lock_all':
|
||||||
|
fs/f2fs/f2fs.h:962:34: warning: passing argument 2 of 'down_write_nest_lock' from
|
||||||
|
incompatible pointer type [-Wincompatible-pointer-types]
|
||||||
|
f2fs_down_write(&sbi->cp_rwsem, &sbi->cp_mutex);
|
||||||
|
^
|
||||||
|
|
||||||
|
The nest annotation was anyway bogus as nested annotations for lockdep are
|
||||||
|
only required if one nests two locks of the same lock class, which is not the
|
||||||
|
case here.
|
||||||
|
|
||||||
|
Signed-off-by: Yang Shi <yang.shi@linaro.org>
|
||||||
|
Cc: cm224.lee@samsung.com
|
||||||
|
Cc: chao2.yu@samsung.com
|
||||||
|
Cc: linaro-kernel@lists.linaro.org
|
||||||
|
Cc: linux-rt-users@vger.kernel.org
|
||||||
|
Cc: bigeasy@linutronix.de
|
||||||
|
Cc: rostedt@goodmis.org
|
||||||
|
Cc: linux-f2fs-devel@lists.sourceforge.net
|
||||||
|
Cc: linux-fsdevel@vger.kernel.org
|
||||||
|
Cc: jaegeuk@kernel.org
|
||||||
|
Link: http://lkml.kernel.org/r/1456532725-4126-1-git-send-email-yang.shi@linaro.org
|
||||||
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
---
|
||||||
|
fs/f2fs/f2fs.h | 4 +---
|
||||||
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/fs/f2fs/f2fs.h
|
||||||
|
+++ b/fs/f2fs/f2fs.h
|
||||||
|
@@ -24,7 +24,6 @@
|
||||||
|
|
||||||
|
#ifdef CONFIG_F2FS_CHECK_FS
|
||||||
|
#define f2fs_bug_on(sbi, condition) BUG_ON(condition)
|
||||||
|
-#define f2fs_down_write(x, y) down_write_nest_lock(x, y)
|
||||||
|
#else
|
||||||
|
#define f2fs_bug_on(sbi, condition) \
|
||||||
|
do { \
|
||||||
|
@@ -33,7 +32,6 @@
|
||||||
|
set_sbi_flag(sbi, SBI_NEED_FSCK); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
-#define f2fs_down_write(x, y) down_write(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -959,7 +957,7 @@ static inline void f2fs_unlock_op(struct
|
||||||
|
|
||||||
|
static inline void f2fs_lock_all(struct f2fs_sb_info *sbi)
|
||||||
|
{
|
||||||
|
- f2fs_down_write(&sbi->cp_rwsem, &sbi->cp_mutex);
|
||||||
|
+ down_write(&sbi->cp_rwsem);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void f2fs_unlock_all(struct f2fs_sb_info *sbi)
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
||||||
Subject: fs/aio: simple simple work
|
Subject: fs/aio: simple simple work
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|
||||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
|
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: block: Turn off warning which is bogus on RT
|
Subject: block: Turn off warning which is bogus on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Tue, 14 Jun 2011 17:05:09 +0200
|
Date: Tue, 14 Jun 2011 17:05:09 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
On -RT the context is always with IRQs enabled. Ignore this warning on -RT.
|
On -RT the context is always with IRQs enabled. Ignore this warning on -RT.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 07 Mar 2012 21:00:34 +0100
|
Date: Wed, 07 Mar 2012 21:00:34 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Retry loops on RT might loop forever when the modifying side was
|
Retry loops on RT might loop forever when the modifying side was
|
||||||
preempted. Use cpu_chill() instead of cpu_relax() to let the system
|
preempted. Use cpu_chill() instead of cpu_relax() to let the system
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
||||||
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
bit_spin_locks break under RT.
|
bit_spin_locks break under RT.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Mon, 17 Feb 2014 17:30:03 +0100
|
Date: Mon, 17 Feb 2014 17:30:03 +0100
|
||||||
Subject: fs: jbd2: pull your plug when waiting for space
|
Subject: fs: jbd2: pull your plug when waiting for space
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Two cps in parallel managed to stall the the ext4 fs. It seems that
|
Two cps in parallel managed to stall the the ext4 fs. It seems that
|
||||||
journal code is either waiting for locks or sleeping waiting for
|
journal code is either waiting for locks or sleeping waiting for
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 19 Jul 2009 08:44:27 -0500
|
Date: Sun, 19 Jul 2009 08:44:27 -0500
|
||||||
Subject: fs: namespace preemption fix
|
Subject: fs: namespace preemption fix
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
On RT we cannot loop with preemption disabled here as
|
On RT we cannot loop with preemption disabled here as
|
||||||
mnt_make_readonly() might have been preempted. We can safely enable
|
mnt_make_readonly() might have been preempted. We can safely enable
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <efault@gmx.de>
|
From: Mike Galbraith <efault@gmx.de>
|
||||||
Date: Fri, 3 Jul 2009 08:44:12 -0500
|
Date: Fri, 3 Jul 2009 08:44:12 -0500
|
||||||
Subject: fs: ntfs: disable interrupt only on !RT
|
Subject: fs: ntfs: disable interrupt only on !RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
|
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
|
||||||
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
|
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
||||||
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
||||||
replacements with a real spinlock.
|
replacements with a real spinlock.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
||||||
Subject: trace: Add migrate-disabled counter to tracing output
|
Subject: trace: Add migrate-disabled counter to tracing output
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: futex: Fix bug on when a requeued RT task times out
|
Subject: futex: Fix bug on when a requeued RT task times out
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
|
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 25 May 2012 16:59:47 +0200
|
Date: Fri, 25 May 2012 16:59:47 +0200
|
||||||
Subject: genirq: Add default affinity mask command line option
|
Subject: genirq: Add default affinity mask command line option
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
If we isolate CPUs, then we don't want random device interrupts on them. Even
|
If we isolate CPUs, then we don't want random device interrupts on them. Even
|
||||||
w/o the user space irq balancer enabled we can end up with irqs on non boot
|
w/o the user space irq balancer enabled we can end up with irqs on non boot
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
||||||
Subject: genirq: Disable irqpoll on -rt
|
Subject: genirq: Disable irqpoll on -rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Creates long latencies for no value
|
Creates long latencies for no value
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 21 Aug 2013 17:48:46 +0200
|
Date: Wed, 21 Aug 2013 17:48:46 +0200
|
||||||
Subject: genirq: Do not invoke the affinity callback via a workqueue on RT
|
Subject: genirq: Do not invoke the affinity callback via a workqueue on RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Joe Korty reported, that __irq_set_affinity_locked() schedules a
|
Joe Korty reported, that __irq_set_affinity_locked() schedules a
|
||||||
workqueue while holding a rawlock which results in a might_sleep()
|
workqueue while holding a rawlock which results in a might_sleep()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: genirq: Force interrupt thread on RT
|
Subject: genirq: Force interrupt thread on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 03 Apr 2011 11:57:29 +0200
|
Date: Sun, 03 Apr 2011 11:57:29 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Force threaded_irqs and optimize the code (force_irqthreads) in regard
|
Force threaded_irqs and optimize the code (force_irqthreads) in regard
|
||||||
to this.
|
to this.
|
||||||
|
|
|
@ -2,7 +2,7 @@ From 85b7f1606fb707c9da7984e052e47cfa12e85e67 Mon Sep 17 00:00:00 2001
|
||||||
From: Josh Cartwright <joshc@ni.com>
|
From: Josh Cartwright <joshc@ni.com>
|
||||||
Date: Thu, 11 Feb 2016 11:54:00 -0600
|
Date: Thu, 11 Feb 2016 11:54:00 -0600
|
||||||
Subject: [PATCH 1/2] genirq: update irq_set_irqchip_state documentation
|
Subject: [PATCH 1/2] genirq: update irq_set_irqchip_state documentation
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
On -rt kernels, the use of migrate_disable()/migrate_enable() is
|
On -rt kernels, the use of migrate_disable()/migrate_enable() is
|
||||||
sufficient to guarantee a task isn't moved to another CPU. Update the
|
sufficient to guarantee a task isn't moved to another CPU. Update the
|
||||||
|
@ -11,14 +11,12 @@ irq_set_irqchip_state() documentation to reflect this.
|
||||||
Signed-off-by: Josh Cartwright <joshc@ni.com>
|
Signed-off-by: Josh Cartwright <joshc@ni.com>
|
||||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
---
|
---
|
||||||
kernel/irq/manage.c | 2 +-
|
kernel/irq/manage.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
|
|
||||||
index ba2a42a37025..8e89554aa345 100644
|
|
||||||
--- a/kernel/irq/manage.c
|
--- a/kernel/irq/manage.c
|
||||||
+++ b/kernel/irq/manage.c
|
+++ b/kernel/irq/manage.c
|
||||||
@@ -2060,7 +2060,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state);
|
@@ -2054,7 +2054,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state)
|
||||||
* This call sets the internal irqchip state of an interrupt,
|
* This call sets the internal irqchip state of an interrupt,
|
||||||
* depending on the value of @which.
|
* depending on the value of @which.
|
||||||
*
|
*
|
||||||
|
@ -27,6 +25,3 @@ index ba2a42a37025..8e89554aa345 100644
|
||||||
* interrupt controller has per-cpu registers.
|
* interrupt controller has per-cpu registers.
|
||||||
*/
|
*/
|
||||||
int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which,
|
int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which,
|
||||||
--
|
|
||||||
2.7.0
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Tue, 24 Mar 2015 08:14:49 +0100
|
Date: Tue, 24 Mar 2015 08:14:49 +0100
|
||||||
Subject: hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
|
Subject: hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
do_set_cpus_allowed() is not safe vs ->sched_class change.
|
do_set_cpus_allowed() is not safe vs ->sched_class change.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: hotplug: Lightweight get online cpus
|
Subject: hotplug: Lightweight get online cpus
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 15 Jun 2011 12:36:06 +0200
|
Date: Wed, 15 Jun 2011 12:36:06 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
get_online_cpus() is a heavy weight function which involves a global
|
get_online_cpus() is a heavy weight function which involves a global
|
||||||
mutex. migrate_disable() wants a simpler construct which prevents only
|
mutex. migrate_disable() wants a simpler construct which prevents only
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: hotplug: sync_unplug: No "\n" in task name
|
Subject: hotplug: sync_unplug: No "\n" in task name
|
||||||
From: Yong Zhang <yong.zhang0@gmail.com>
|
From: Yong Zhang <yong.zhang0@gmail.com>
|
||||||
Date: Sun, 16 Oct 2011 18:56:43 +0800
|
Date: Sun, 16 Oct 2011 18:56:43 +0800
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Otherwise the output will look a little odd.
|
Otherwise the output will look a little odd.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: hotplug: Use migrate disable on unplug
|
Subject: hotplug: Use migrate disable on unplug
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 19:35:29 +0200
|
Date: Sun, 17 Jul 2011 19:35:29 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Migration needs to be disabled accross the unplug handling to make
|
Migration needs to be disabled accross the unplug handling to make
|
||||||
sure that the unplug thread is off the unplugged cpu.
|
sure that the unplug thread is off the unplugged cpu.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Yang Shi <yang.shi@windriver.com>
|
From: Yang Shi <yang.shi@windriver.com>
|
||||||
Date: Mon, 16 Sep 2013 14:09:19 -0700
|
Date: Mon, 16 Sep 2013 14:09:19 -0700
|
||||||
Subject: hrtimer: Move schedule_work call to helper thread
|
Subject: hrtimer: Move schedule_work call to helper thread
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
When run ltp leapsec_timer test, the following call trace is caught:
|
When run ltp leapsec_timer test, the following call trace is caught:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 23 Dec 2015 20:57:41 +0100
|
Date: Wed, 23 Dec 2015 20:57:41 +0100
|
||||||
Subject: hrtimer: enfore 64byte alignment
|
Subject: hrtimer: enfore 64byte alignment
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The patch "hrtimer: Fixup hrtimer callback changes for preempt-rt" adds
|
The patch "hrtimer: Fixup hrtimer callback changes for preempt-rt" adds
|
||||||
a list_head expired to struct hrtimer_clock_base and with it we run into
|
a list_head expired to struct hrtimer_clock_base and with it we run into
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/include/linux/hrtimer.h
|
--- a/include/linux/hrtimer.h
|
||||||
+++ b/include/linux/hrtimer.h
|
+++ b/include/linux/hrtimer.h
|
||||||
@@ -125,11 +125,7 @@ struct hrtimer_sleeper {
|
@@ -127,11 +127,7 @@ struct hrtimer_sleeper {
|
||||||
struct task_struct *task;
|
struct task_struct *task;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 3 Jul 2009 08:44:31 -0500
|
Date: Fri, 3 Jul 2009 08:44:31 -0500
|
||||||
Subject: hrtimer: Fixup hrtimer callback changes for preempt-rt
|
Subject: hrtimer: Fixup hrtimer callback changes for preempt-rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
In preempt-rt we can not call the callbacks which take sleeping locks
|
In preempt-rt we can not call the callbacks which take sleeping locks
|
||||||
from the timer interrupt context.
|
from the timer interrupt context.
|
||||||
|
@ -23,19 +23,19 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||||
|
|
||||||
--- a/include/linux/hrtimer.h
|
--- a/include/linux/hrtimer.h
|
||||||
+++ b/include/linux/hrtimer.h
|
+++ b/include/linux/hrtimer.h
|
||||||
@@ -88,6 +88,8 @@ enum hrtimer_restart {
|
@@ -87,6 +87,8 @@ enum hrtimer_restart {
|
||||||
|
* @function: timer expiry callback function
|
||||||
* @base: pointer to the timer base (per cpu and per clock)
|
* @base: pointer to the timer base (per cpu and per clock)
|
||||||
* @state: state information (See bit values above)
|
* @state: state information (See bit values above)
|
||||||
* @is_rel: Set if the timer was armed relative
|
|
||||||
+ * @cb_entry: list entry to defer timers from hardirq context
|
+ * @cb_entry: list entry to defer timers from hardirq context
|
||||||
+ * @irqsafe: timer can run in hardirq context
|
+ * @irqsafe: timer can run in hardirq context
|
||||||
* @praecox: timer expiry time if expired at the time of programming
|
* @praecox: timer expiry time if expired at the time of programming
|
||||||
|
* @is_rel: Set if the timer was armed relative
|
||||||
* @start_pid: timer statistics field to store the pid of the task which
|
* @start_pid: timer statistics field to store the pid of the task which
|
||||||
* started the timer
|
@@ -104,6 +106,8 @@ struct hrtimer {
|
||||||
@@ -105,6 +107,8 @@ struct hrtimer {
|
enum hrtimer_restart (*function)(struct hrtimer *);
|
||||||
struct hrtimer_clock_base *base;
|
struct hrtimer_clock_base *base;
|
||||||
u8 state;
|
u8 state;
|
||||||
u8 is_rel;
|
|
||||||
+ struct list_head cb_entry;
|
+ struct list_head cb_entry;
|
||||||
+ int irqsafe;
|
+ int irqsafe;
|
||||||
#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
|
#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:34 -0500
|
Date: Fri, 3 Jul 2009 08:29:34 -0500
|
||||||
Subject: hrtimers: Prepare full preemption
|
Subject: hrtimers: Prepare full preemption
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Make cancellation of a running callback in softirq context safe
|
Make cancellation of a running callback in softirq context safe
|
||||||
against preemption.
|
against preemption.
|
||||||
|
@ -116,7 +116,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
#ifdef CONFIG_HOTPLUG_CPU
|
#ifdef CONFIG_HOTPLUG_CPU
|
||||||
--- a/kernel/time/itimer.c
|
--- a/kernel/time/itimer.c
|
||||||
+++ b/kernel/time/itimer.c
|
+++ b/kernel/time/itimer.c
|
||||||
@@ -213,6 +213,7 @@ again:
|
@@ -213,6 +213,7 @@ int do_setitimer(int which, struct itime
|
||||||
/* We are sharing ->siglock with it_real_fn() */
|
/* We are sharing ->siglock with it_real_fn() */
|
||||||
if (hrtimer_try_to_cancel(timer) < 0) {
|
if (hrtimer_try_to_cancel(timer) < 0) {
|
||||||
spin_unlock_irq(&tsk->sighand->siglock);
|
spin_unlock_irq(&tsk->sighand->siglock);
|
||||||
|
@ -147,7 +147,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
/* Set a POSIX.1b interval timer. */
|
/* Set a POSIX.1b interval timer. */
|
||||||
/* timr->it_lock is taken. */
|
/* timr->it_lock is taken. */
|
||||||
static int
|
static int
|
||||||
@@ -905,6 +919,7 @@ retry:
|
@@ -905,6 +919,7 @@ SYSCALL_DEFINE4(timer_settime, timer_t,
|
||||||
if (!timr)
|
if (!timr)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
kc = clockid_to_kclock(timr->it_clock);
|
kc = clockid_to_kclock(timr->it_clock);
|
||||||
if (WARN_ON_ONCE(!kc || !kc->timer_set))
|
if (WARN_ON_ONCE(!kc || !kc->timer_set))
|
||||||
error = -EINVAL;
|
error = -EINVAL;
|
||||||
@@ -913,9 +928,12 @@ retry:
|
@@ -913,9 +928,12 @@ SYSCALL_DEFINE4(timer_settime, timer_t,
|
||||||
|
|
||||||
unlock_timer(timr, flag);
|
unlock_timer(timr, flag);
|
||||||
if (error == TIMER_RETRY) {
|
if (error == TIMER_RETRY) {
|
||||||
|
@ -168,7 +168,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
|
||||||
if (old_setting && !error &&
|
if (old_setting && !error &&
|
||||||
copy_to_user(old_setting, &old_spec, sizeof (old_spec)))
|
copy_to_user(old_setting, &old_spec, sizeof (old_spec)))
|
||||||
@@ -953,10 +971,15 @@ retry_delete:
|
@@ -953,10 +971,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, t
|
||||||
if (!timer)
|
if (!timer)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <bitbucket@online.de>
|
From: Mike Galbraith <bitbucket@online.de>
|
||||||
Date: Fri, 30 Aug 2013 07:57:25 +0200
|
Date: Fri, 30 Aug 2013 07:57:25 +0200
|
||||||
Subject: hwlat-detector: Don't ignore threshold module parameter
|
Subject: hwlat-detector: Don't ignore threshold module parameter
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
If the user specified a threshold at module load time, use it.
|
If the user specified a threshold at module load time, use it.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Mon, 19 Aug 2013 17:33:25 -0400
|
Date: Mon, 19 Aug 2013 17:33:25 -0400
|
||||||
Subject: hwlat-detector: Update hwlat_detector to add outer loop detection
|
Subject: hwlat-detector: Update hwlat_detector to add outer loop detection
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The hwlat_detector reads two timestamps in a row, then reports any
|
The hwlat_detector reads two timestamps in a row, then reports any
|
||||||
gap between those calls. The problem is, it misses everything between
|
gap between those calls. The problem is, it misses everything between
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Mon, 19 Aug 2013 17:33:27 -0400
|
Date: Mon, 19 Aug 2013 17:33:27 -0400
|
||||||
Subject: hwlat-detector: Use thread instead of stop machine
|
Subject: hwlat-detector: Use thread instead of stop machine
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
There's no reason to use stop machine to search for hardware latency.
|
There's no reason to use stop machine to search for hardware latency.
|
||||||
Simply disabling interrupts while running the loop will do enough to
|
Simply disabling interrupts while running the loop will do enough to
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Mon, 19 Aug 2013 17:33:26 -0400
|
Date: Mon, 19 Aug 2013 17:33:26 -0400
|
||||||
Subject: hwlat-detector: Use trace_clock_local if available
|
Subject: hwlat-detector: Use trace_clock_local if available
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
As ktime_get() calls into the timing code which does a read_seq(), it
|
As ktime_get() calls into the timing code which does a read_seq(), it
|
||||||
may be affected by other CPUS that touch that lock. To remove this
|
may be affected by other CPUS that touch that lock. To remove this
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: hwlatdetect.patch
|
Subject: hwlatdetect.patch
|
||||||
From: Carsten Emde <C.Emde@osadl.org>
|
From: Carsten Emde <C.Emde@osadl.org>
|
||||||
Date: Tue, 19 Jul 2011 13:53:12 +0100
|
Date: Tue, 19 Jul 2011 13:53:12 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Jon Masters developed this wonderful SMI detector. For details please
|
Jon Masters developed this wonderful SMI detector. For details please
|
||||||
consult Documentation/hwlat_detector.txt. It could be ported to Linux
|
consult Documentation/hwlat_detector.txt. It could be ported to Linux
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 21 Mar 2013 11:35:49 +0100
|
Date: Thu, 21 Mar 2013 11:35:49 +0100
|
||||||
Subject: i2c/omap: drop the lock hard irq context
|
Subject: i2c/omap: drop the lock hard irq context
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The lock is taken while reading two registers. On RT the first lock is
|
The lock is taken while reading two registers. On RT the first lock is
|
||||||
taken in hard irq where it might sleep and in the threaded irq.
|
taken in hard irq where it might sleep and in the threaded irq.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Clark Williams <williams@redhat.com>
|
From: Clark Williams <williams@redhat.com>
|
||||||
Date: Tue, 26 May 2015 10:43:43 -0500
|
Date: Tue, 26 May 2015 10:43:43 -0500
|
||||||
Subject: i915: bogus warning from i915 when running on PREEMPT_RT
|
Subject: i915: bogus warning from i915 when running on PREEMPT_RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The i915 driver has a 'WARN_ON(!in_interrupt())' in the display
|
The i915 driver has a 'WARN_ON(!in_interrupt())' in the display
|
||||||
handler, which whines constanly on the RT kernel (since the interrupt
|
handler, which whines constanly on the RT kernel (since the interrupt
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: gpu/i915: don't open code these things
|
Subject: gpu/i915: don't open code these things
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The opencode part is gone in 1f83fee0 ("drm/i915: clear up wedged transitions")
|
The opencode part is gone in 1f83fee0 ("drm/i915: clear up wedged transitions")
|
||||||
the owner check is still there.
|
the owner check is still there.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
||||||
Subject: ide: Do not disable interrupts for PREEMPT-RT
|
Subject: ide: Do not disable interrupts for PREEMPT-RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Use the local_irq_*_nort variants.
|
Use the local_irq_*_nort variants.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: idr: Use local lock instead of preempt enable/disable
|
Subject: idr: Use local lock instead of preempt enable/disable
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
We need to protect the per cpu variable and prevent migration.
|
We need to protect the per cpu variable and prevent migration.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sven-Thorsten Dietrich <sdietrich@novell.com>
|
From: Sven-Thorsten Dietrich <sdietrich@novell.com>
|
||||||
Date: Fri, 3 Jul 2009 08:30:35 -0500
|
Date: Fri, 3 Jul 2009 08:30:35 -0500
|
||||||
Subject: infiniband: Mellanox IB driver patch use _nort() primitives
|
Subject: infiniband: Mellanox IB driver patch use _nort() primitives
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
|
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
|
||||||
Kernel.
|
Kernel.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
||||||
Subject: input: gameport: Do not disable interrupts on PREEMPT_RT
|
Subject: input: gameport: Do not disable interrupts on PREEMPT_RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Use the _nort() primitives.
|
Use the _nort() primitives.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: Intrduce migrate_disable() + cpu_light()
|
Subject: Intrduce migrate_disable() + cpu_light()
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 17 Jun 2011 15:42:38 +0200
|
Date: Fri, 17 Jun 2011 15:42:38 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Introduce migrate_disable(). The task can't be pushed to another CPU but can
|
Introduce migrate_disable(). The task can't be pushed to another CPU but can
|
||||||
be preempted.
|
be preempted.
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
Subject: iommu/amd: Use WARN_ON_NORT in __attach_device()
|
||||||
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
Date: Sat, 27 Feb 2016 10:22:23 +0100
|
||||||
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
|
RT does not disable interrupts here, but the protection is still
|
||||||
|
correct. Fixup the WARN_ON so it won't yell on RT.
|
||||||
|
|
||||||
|
Note: This WARN_ON is bogus anyway. The real thing this needs to check is that
|
||||||
|
amd_iommu_devtable_lock is held.
|
||||||
|
|
||||||
|
Reported-by: DIXLOR <dixlor@gmail.com>
|
||||||
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
---
|
||||||
|
drivers/iommu/amd_iommu.c | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/iommu/amd_iommu.c
|
||||||
|
+++ b/drivers/iommu/amd_iommu.c
|
||||||
|
@@ -1952,10 +1952,10 @@ static int __attach_device(struct iommu_
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Must be called with IRQs disabled. Warn here to detect early
|
||||||
|
- * when its not.
|
||||||
|
+ * Must be called with IRQs disabled on a non RT kernel. Warn here to
|
||||||
|
+ * detect early when its not.
|
||||||
|
*/
|
||||||
|
- WARN_ON(!irqs_disabled());
|
||||||
|
+ WARN_ON_NONRT(!irqs_disabled());
|
||||||
|
|
||||||
|
/* lock domain */
|
||||||
|
spin_lock(&domain->lock);
|
||||||
|
@@ -2118,10 +2118,10 @@ static void __detach_device(struct iommu
|
||||||
|
struct protection_domain *domain;
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Must be called with IRQs disabled. Warn here to detect early
|
||||||
|
- * when its not.
|
||||||
|
+ * Must be called with IRQs disabled on a non RT kernel. Warn here to
|
||||||
|
+ * detect early when its not.
|
||||||
|
*/
|
||||||
|
- WARN_ON(!irqs_disabled());
|
||||||
|
+ WARN_ON_NONRT(!irqs_disabled());
|
||||||
|
|
||||||
|
if (WARN_ON(!dev_data->domain))
|
||||||
|
return;
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 30 Oct 2015 11:59:07 +0100
|
Date: Fri, 30 Oct 2015 11:59:07 +0100
|
||||||
Subject: ipc/msg: Implement lockless pipelined wakeups
|
Subject: ipc/msg: Implement lockless pipelined wakeups
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
This patch moves the wakeup_process() invocation so it is not done under
|
This patch moves the wakeup_process() invocation so it is not done under
|
||||||
the perm->lock by making use of a lockless wake_q. With this change, the
|
the perm->lock by making use of a lockless wake_q. With this change, the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: ipc/sem: Rework semaphore wakeups
|
Subject: ipc/sem: Rework semaphore wakeups
|
||||||
From: Peter Zijlstra <peterz@infradead.org>
|
From: Peter Zijlstra <peterz@infradead.org>
|
||||||
Date: Wed, 14 Sep 2011 11:57:04 +0200
|
Date: Wed, 14 Sep 2011 11:57:04 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
Current sysv sems have a weird ass wakeup scheme that involves keeping
|
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
|
preemption disabled over a potential O(n^2) loop and busy waiting on
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: genirq: Allow disabling of softirq processing in irq thread context
|
Subject: genirq: Allow disabling of softirq processing in irq thread context
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Tue, 31 Jan 2012 13:01:27 +0100
|
Date: Tue, 31 Jan 2012 13:01:27 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt6.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
||||||
|
|
||||||
The processing of softirqs in irq thread context is a performance gain
|
The processing of softirqs in irq thread context is a performance gain
|
||||||
for the non-rt workloads of a system, but it's counterproductive for
|
for the non-rt workloads of a system, but it's counterproductive for
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue