[rt] Update to 4.19.8-rt6

This commit is contained in:
Romain Perier 2018-12-14 10:55:05 +01:00
parent eea45f09a7
commit 79a9cada15
257 changed files with 561 additions and 384 deletions

2
debian/changelog vendored
View File

@ -30,7 +30,7 @@ linux (4.19.9-1) UNRELEASED; urgency=medium
[ Romain Perier ] [ Romain Perier ]
* [x86] Enable support for error detection and correction on the Intel * [x86] Enable support for error detection and correction on the Intel
Pondicherry2 Integrated Memory Controller (Closes: #914946) Pondicherry2 Integrated Memory Controller (Closes: #914946)
* Update to 4.19.5-rt4 * [rt] Update to 4.19.8-rt6
[ Uwe Kleine-König ] [ Uwe Kleine-König ]
* Enable usb support for ATH10K (Closes: #915083) * Enable usb support for ATH10K (Closes: #915083)

View File

@ -122,7 +122,7 @@ debug-info: true
signed-code: false signed-code: false
[featureset-rt_base] [featureset-rt_base]
enabled: false enabled: true
[description] [description]
part-long-up: This kernel is not suitable for SMP (multi-processor, part-long-up: This kernel is not suitable for SMP (multi-processor,

View File

@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:18 +0200 Date: Thu, 13 Sep 2018 13:30:18 +0200
Subject: [PATCH 1/7] ARM: at91: add TCB registers definitions Subject: [PATCH 1/7] ARM: at91: add TCB registers definitions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Add registers and bits definitions for the timer counter blocks found on Add registers and bits definitions for the timer counter blocks found on
Atmel ARM SoCs. Atmel ARM SoCs.

View File

@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:20 +0200 Date: Mon, 28 May 2018 15:24:20 +0200
Subject: [PATCH 1/4] Split IRQ-off and zone->lock while freeing pages from PCP Subject: [PATCH 1/4] Split IRQ-off and zone->lock while freeing pages from PCP
list #1 list #1
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Split the IRQ-off section while accessing the PCP list from zone->lock Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages. while freeing pages.

View File

@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:21 +0200 Date: Mon, 28 May 2018 15:24:21 +0200
Subject: [PATCH 2/4] Split IRQ-off and zone->lock while freeing pages from PCP Subject: [PATCH 2/4] Split IRQ-off and zone->lock while freeing pages from PCP
list #2 list #2
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Split the IRQ-off section while accessing the PCP list from zone->lock Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages. while freeing pages.

View File

@ -2,7 +2,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:19 +0200 Date: Thu, 13 Sep 2018 13:30:19 +0200
Subject: [PATCH 2/7] clocksource/drivers: Add a new driver for the Atmel ARM Subject: [PATCH 2/7] clocksource/drivers: Add a new driver for the Atmel ARM
TC blocks TC blocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Add a driver for the Atmel Timer Counter Blocks. This driver provides a Add a driver for the Atmel Timer Counter Blocks. This driver provides a
clocksource and two clockevent devices. clocksource and two clockevent devices.

View File

@ -2,7 +2,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:20 +0200 Date: Thu, 13 Sep 2018 13:30:20 +0200
Subject: [PATCH 3/7] clocksource/drivers: timer-atmel-tcb: add clockevent Subject: [PATCH 3/7] clocksource/drivers: timer-atmel-tcb: add clockevent
device on separate channel device on separate channel
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Add an other clockevent device that uses a separate TCB channel when Add an other clockevent device that uses a separate TCB channel when
available. available.

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 28 May 2018 15:24:22 +0200 Date: Mon, 28 May 2018 15:24:22 +0200
Subject: [PATCH 3/4] mm/SLxB: change list_lock to raw_spinlock_t Subject: [PATCH 3/4] mm/SLxB: change list_lock to raw_spinlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t
otherwise the interrupts won't be disabled on -RT. The locking rules remain otherwise the interrupts won't be disabled on -RT. The locking rules remain
@ -324,7 +324,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
ac->avail -= batchcount; ac->avail -= batchcount;
memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail); memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail);
@@ -3887,9 +3887,9 @@ static int __do_tune_cpucache(struct kme @@ -3891,9 +3891,9 @@ static int __do_tune_cpucache(struct kme
node = cpu_to_mem(cpu); node = cpu_to_mem(cpu);
n = get_node(cachep, node); n = get_node(cachep, node);
@ -336,7 +336,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
free_percpu(prev); free_percpu(prev);
@@ -4014,9 +4014,9 @@ static void drain_array(struct kmem_cach @@ -4018,9 +4018,9 @@ static void drain_array(struct kmem_cach
return; return;
} }
@ -348,7 +348,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slabs_destroy(cachep, &list); slabs_destroy(cachep, &list);
} }
@@ -4100,7 +4100,7 @@ void get_slabinfo(struct kmem_cache *cac @@ -4104,7 +4104,7 @@ void get_slabinfo(struct kmem_cache *cac
for_each_kmem_cache_node(cachep, node, n) { for_each_kmem_cache_node(cachep, node, n) {
check_irq_on(); check_irq_on();
@ -357,7 +357,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
total_slabs += n->total_slabs; total_slabs += n->total_slabs;
free_slabs += n->free_slabs; free_slabs += n->free_slabs;
@@ -4109,7 +4109,7 @@ void get_slabinfo(struct kmem_cache *cac @@ -4113,7 +4113,7 @@ void get_slabinfo(struct kmem_cache *cac
if (n->shared) if (n->shared)
shared_avail += n->shared->avail; shared_avail += n->shared->avail;
@ -366,7 +366,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
num_objs = total_slabs * cachep->num; num_objs = total_slabs * cachep->num;
active_slabs = total_slabs - free_slabs; active_slabs = total_slabs - free_slabs;
@@ -4324,13 +4324,13 @@ static int leaks_show(struct seq_file *m @@ -4328,13 +4328,13 @@ static int leaks_show(struct seq_file *m
for_each_kmem_cache_node(cachep, node, n) { for_each_kmem_cache_node(cachep, node, n) {
check_irq_on(); check_irq_on();

View File

@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:21 +0200 Date: Thu, 13 Sep 2018 13:30:21 +0200
Subject: [PATCH 4/7] clocksource/drivers: atmel-pit: make option silent Subject: [PATCH 4/7] clocksource/drivers: atmel-pit: make option silent
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
To conform with the other option, make the ATMEL_PIT option silent so it To conform with the other option, make the ATMEL_PIT option silent so it
can be selected from the platform can be selected from the platform

View File

@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jun 2018 17:29:19 +0200 Date: Thu, 21 Jun 2018 17:29:19 +0200
Subject: [PATCH 4/4] mm/SLUB: delay giving back empty slubs to IRQ enabled Subject: [PATCH 4/4] mm/SLUB: delay giving back empty slubs to IRQ enabled
regions regions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
__free_slab() is invoked with disabled interrupts which increases the __free_slab() is invoked with disabled interrupts which increases the
irq-off time while __free_pages() is doing the work. irq-off time while __free_pages() is doing the work.

View File

@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:22 +0200 Date: Thu, 13 Sep 2018 13:30:22 +0200
Subject: [PATCH 5/7] ARM: at91: Implement clocksource selection Subject: [PATCH 5/7] ARM: at91: Implement clocksource selection
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Allow selecting and unselecting the PIT clocksource driver so it doesn't Allow selecting and unselecting the PIT clocksource driver so it doesn't
have to be compile when unused. have to be compile when unused.

View File

@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:23 +0200 Date: Thu, 13 Sep 2018 13:30:23 +0200
Subject: [PATCH 6/7] ARM: configs: at91: use new TCB timer driver Subject: [PATCH 6/7] ARM: configs: at91: use new TCB timer driver
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
timer-atmel-tcb. timer-atmel-tcb.

View File

@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:24 +0200 Date: Thu, 13 Sep 2018 13:30:24 +0200
Subject: [PATCH 7/7] ARM: configs: at91: unselect PIT Subject: [PATCH 7/7] ARM: configs: at91: unselect PIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The PIT is not required anymore to successfully boot and may actually harm The PIT is not required anymore to successfully boot and may actually harm
in case preempt-rt is used because the PIT interrupt is shared. in case preempt-rt is used because the PIT interrupt is shared.

View File

@ -1,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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Probably happens on all ARM, with Probably happens on all ARM, with
CONFIG_PREEMPT_RT_FULL CONFIG_PREEMPT_RT_FULL

View File

@ -4,7 +4,7 @@ Subject: [PATCH] Drivers: hv: vmbus: include header for get_irq_regs()
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
On !RT the header file get_irq_regs() gets pulled in via other header files. On On !RT the header file get_irq_regs() gets pulled in via other header files. On
RT it does not and the build fails: RT it does not and the build fails:

View File

@ -1,7 +1,7 @@
From: Paul E. McKenney <paulmck@linux.ibm.com> From: Paul E. McKenney <paulmck@linux.ibm.com>
Date: Mon, 29 Oct 2018 11:53:01 +0100 Date: Mon, 29 Oct 2018 11:53:01 +0100
Subject: [PATCH] EXP rcu: Revert expedited GP parallelization cleverness Subject: [PATCH] EXP rcu: Revert expedited GP parallelization cleverness
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu) (Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.
@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/kernel/printk/printk.c --- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c +++ b/kernel/printk/printk.c
@@ -1415,12 +1415,23 @@ static int syslog_print_all(char __user @@ -1420,12 +1420,23 @@ static int syslog_print_all(char __user
u64 next_seq; u64 next_seq;
u64 seq; u64 seq;
u32 idx; u32 idx;
@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* /*
* Find first record that fits, including all following records, * Find first record that fits, including all following records,
* into the user-provided buffer for this dump. * into the user-provided buffer for this dump.
@@ -1433,6 +1444,14 @@ static int syslog_print_all(char __user @@ -1438,6 +1449,14 @@ static int syslog_print_all(char __user
len += msg_print_text(msg, true, NULL, 0); len += msg_print_text(msg, true, NULL, 0);
idx = log_next(idx); idx = log_next(idx);
seq++; seq++;
@ -52,7 +52,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
/* move first record forward until length fits into the buffer */ /* move first record forward until length fits into the buffer */
@@ -1444,6 +1463,14 @@ static int syslog_print_all(char __user @@ -1449,6 +1468,14 @@ static int syslog_print_all(char __user
len -= msg_print_text(msg, true, NULL, 0); len -= msg_print_text(msg, true, NULL, 0);
idx = log_next(idx); idx = log_next(idx);
seq++; seq++;
@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
/* last message fitting into this dump */ /* last message fitting into this dump */
@@ -1481,6 +1508,7 @@ static int syslog_print_all(char __user @@ -1486,6 +1513,7 @@ static int syslog_print_all(char __user
clear_seq = log_next_seq; clear_seq = log_next_seq;
clear_idx = log_next_idx; clear_idx = log_next_idx;
} }

View File

@ -1,7 +1,7 @@
From: Josh Cartwright <joshc@ni.com> 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: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -5,7 +5,7 @@ Cc: Anna Schumaker <anna.schumaker@netapp.com>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
tglx@linutronix.de tglx@linutronix.de
Subject: NFSv4: replace seqcount_t with a seqlock_t Subject: NFSv4: replace seqcount_t with a seqlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
because it maps to preempt_disable() in -RT which I can't have at this because it maps to preempt_disable() in -RT which I can't have at this

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200 Date: Sat, 27 May 2017 19:02:06 +0200
Subject: kernel/sched/core: add migrate_disable() Subject: kernel/sched/core: add migrate_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
--- ---
include/linux/preempt.h | 23 ++++++++ include/linux/preempt.h | 23 ++++++++
@ -136,7 +136,7 @@ Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4
dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask); dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
if (task_running(rq, p) || p->state == TASK_WAKING) { if (task_running(rq, p) || p->state == TASK_WAKING) {
struct migration_arg arg = { p, dest_cpu }; struct migration_arg arg = { p, dest_cpu };
@@ -7053,3 +7082,100 @@ const u32 sched_prio_to_wmult[40] = { @@ -7059,3 +7088,100 @@ const u32 sched_prio_to_wmult[40] = {
}; };
#undef CREATE_TRACE_POINTS #undef CREATE_TRACE_POINTS

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 11 Oct 2017 17:43:49 +0200 Date: Wed, 11 Oct 2017 17:43:49 +0200
Subject: apparmor: use a locallock instead preempt_disable() Subject: apparmor: use a locallock instead preempt_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
get_buffers() disables preemption which acts as a lock for the per-CPU get_buffers() disables preemption which acts as a lock for the per-CPU
variable. Since we can't disable preemption here on RT, a local_lock is variable. Since we can't disable preemption here on RT, a local_lock is

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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,

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The arm boot_lock is used by the secondary processor startup code. The locking The arm boot_lock is used by the secondary processor startup code. The locking
task is the idle thread, which has idle->sched_class == &idle_sched_class. task is the idle thread, which has idle->sched_class == &idle_sched_class.

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 1 Dec 2017 10:42:03 +0100 Date: Fri, 1 Dec 2017 10:42:03 +0100
Subject: [PATCH] arm*: disable NEON in kernel mode Subject: [PATCH] arm*: disable NEON in kernel mode
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
NEON in kernel mode is used by the crypto algorithms and raid6 code. NEON in kernel mode is used by the crypto algorithms and raid6 code.
While the raid6 code looks okay, the crypto algorithms do not: NEON While the raid6 code looks okay, the crypto algorithms do not: NEON

View File

@ -1,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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
fixup highmem for ARM. fixup highmem for ARM.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 22 Dec 2016 17:28:33 +0100 Date: Thu, 22 Dec 2016 17:28:33 +0100
Subject: [PATCH] arm: include definition for cpumask_t Subject: [PATCH] arm: include definition for cpumask_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
This definition gets pulled in by other files. With the (later) split of This definition gets pulled in by other files. With the (later) split of
RCU and spinlock.h it won't compile anymore. RCU and spinlock.h it won't compile anymore.

View File

@ -1,7 +1,7 @@
From: Yang Shi <yang.shi@linaro.org> From: Yang Shi <yang.shi@linaro.org>
Date: Thu, 10 Nov 2016 16:17:55 -0800 Date: Thu, 10 Nov 2016 16:17:55 -0800
Subject: [PATCH] arm: kprobe: replace patch_lock to raw lock Subject: [PATCH] arm: kprobe: replace patch_lock to raw lock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
When running kprobe on -rt kernel, the below bug is caught: When running kprobe on -rt kernel, the below bug is caught:

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Implement the arm pieces for lazy preempt. Implement the arm pieces for lazy preempt.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 09:13:42 +0200 Date: Thu, 26 Jul 2018 09:13:42 +0200
Subject: [PATCH] arm64: KVM: compute_layout before altenates are applied Subject: [PATCH] arm64: KVM: compute_layout before altenates are applied
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
compute_layout() is invoked as part of an alternative fixup under compute_layout() is invoked as part of an alternative fixup under
stop_machine() and needs a sleeping lock as part of get_random_long(). stop_machine() and needs a sleeping lock as part of get_random_long().

View File

@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 25 Jul 2018 14:02:38 +0200 Date: Wed, 25 Jul 2018 14:02:38 +0200
Subject: [PATCH] arm64: fpsimd: use preemp_disable in addition to Subject: [PATCH] arm64: fpsimd: use preemp_disable in addition to
local_bh_disable() local_bh_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The
code disables BH and expects that it is not preemptible. On -RT the code disables BH and expects that it is not preemptible. On -RT the

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 09 Mar 2016 10:51:06 +0100 Date: Wed, 09 Mar 2016 10:51:06 +0100
Subject: arm: at91: do not disable/enable clocks in a row Subject: arm: at91: do not disable/enable clocks in a row
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Currently the driver will disable the clock and enable it one line later Currently the driver will disable the clock and enable it one line later
if it is switching from periodic mode into one shot. if it is switching from periodic mode into one shot.

View File

@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 13 Mar 2018 13:49:16 +0100 Date: Tue, 13 Mar 2018 13:49:16 +0100
Subject: [PATCH] block: blk-mq: move blk_queue_usage_counter_release() Subject: [PATCH] block: blk-mq: move blk_queue_usage_counter_release()
into process context into process context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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
@ -52,7 +52,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/block/blk-core.c --- a/block/blk-core.c
+++ b/block/blk-core.c +++ b/block/blk-core.c
@@ -969,12 +969,21 @@ void blk_queue_exit(struct request_queue @@ -968,12 +968,21 @@ void blk_queue_exit(struct request_queue
percpu_ref_put(&q->q_usage_counter); percpu_ref_put(&q->q_usage_counter);
} }
@ -75,7 +75,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
static void blk_rq_timed_out_timer(struct timer_list *t) static void blk_rq_timed_out_timer(struct timer_list *t)
@@ -1067,6 +1076,7 @@ struct request_queue *blk_alloc_queue_no @@ -1066,6 +1075,7 @@ struct request_queue *blk_alloc_queue_no
queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q); queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
init_waitqueue_head(&q->mq_freeze_wq); init_waitqueue_head(&q->mq_freeze_wq);
@ -83,7 +83,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* /*
* Init percpu_ref in atomic mode so that it's faster to shutdown. * Init percpu_ref in atomic mode so that it's faster to shutdown.
@@ -3957,6 +3967,8 @@ int __init blk_dev_init(void) @@ -3956,6 +3966,8 @@ int __init blk_dev_init(void)
if (!kblockd_workqueue) if (!kblockd_workqueue)
panic("Failed to create kblockd\n"); panic("Failed to create kblockd\n");

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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().

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 18:19:48 +0200 Date: Tue, 3 Jul 2018 18:19:48 +0200
Subject: [PATCH] cgroup: use irqsave in cgroup_rstat_flush_locked() Subject: [PATCH] cgroup: use irqsave in cgroup_rstat_flush_locked()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
either with spin_lock_irq() or spin_lock_irqsave(). either with spin_lock_irq() or spin_lock_irqsave().

View File

@ -1,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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
As default the TCLIB uses the 32KiHz base clock rate for clock events. As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution. Add a compile time selection to allow higher clock resulution.

View File

@ -1,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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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
@ -300,7 +300,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
EXPORT_SYMBOL(completion_done); EXPORT_SYMBOL(completion_done);
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -7102,7 +7102,10 @@ void migrate_disable(void) @@ -7108,7 +7108,10 @@ void migrate_disable(void)
return; return;
} }
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG
@ -312,7 +312,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#endif #endif
if (p->migrate_disable) { if (p->migrate_disable) {
@@ -7132,7 +7135,10 @@ void migrate_enable(void) @@ -7138,7 +7141,10 @@ void migrate_enable(void)
} }
#ifdef CONFIG_SCHED_DEBUG #ifdef CONFIG_SCHED_DEBUG

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sun, 16 Oct 2016 05:11:54 +0200 Date: Sun, 16 Oct 2016 05:11:54 +0200
Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock
on RT on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep |in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep

View File

@ -1,7 +1,7 @@
Subject: cpu/hotplug: Implement CPU pinning Subject: cpu/hotplug: Implement CPU pinning
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 19 Jul 2017 17:31:20 +0200 Date: Wed, 19 Jul 2017 17:31:20 +0200
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---
@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
# endif # endif
--- a/kernel/cpu.c --- a/kernel/cpu.c
+++ b/kernel/cpu.c +++ b/kernel/cpu.c
@@ -74,6 +74,11 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_s @@ -75,6 +75,11 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_s
.fail = CPUHP_INVALID, .fail = CPUHP_INVALID,
}; };
@ -33,7 +33,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#if defined(CONFIG_LOCKDEP) && defined(CONFIG_SMP) #if defined(CONFIG_LOCKDEP) && defined(CONFIG_SMP)
static struct lockdep_map cpuhp_state_up_map = static struct lockdep_map cpuhp_state_up_map =
STATIC_LOCKDEP_MAP_INIT("cpuhp_state-up", &cpuhp_state_up_map); STATIC_LOCKDEP_MAP_INIT("cpuhp_state-up", &cpuhp_state_up_map);
@@ -285,7 +290,28 @@ static int cpu_hotplug_disabled; @@ -286,7 +291,28 @@ static int cpu_hotplug_disabled;
*/ */
void pin_current_cpu(void) void pin_current_cpu(void)
{ {
@ -62,7 +62,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
} }
/** /**
@@ -293,6 +319,13 @@ void pin_current_cpu(void) @@ -294,6 +320,13 @@ void pin_current_cpu(void)
*/ */
void unpin_current_cpu(void) void unpin_current_cpu(void)
{ {
@ -76,7 +76,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
} }
DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock); DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
@@ -846,6 +879,7 @@ static int take_cpu_down(void *_param) @@ -853,6 +886,7 @@ static int take_cpu_down(void *_param)
static int takedown_cpu(unsigned int cpu) static int takedown_cpu(unsigned int cpu)
{ {
@ -84,7 +84,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
int err; int err;
@@ -858,11 +892,14 @@ static int takedown_cpu(unsigned int cpu @@ -865,11 +899,14 @@ static int takedown_cpu(unsigned int cpu
*/ */
irq_lock_sparse(); irq_lock_sparse();
@ -99,7 +99,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* CPU refused to die */ /* CPU refused to die */
irq_unlock_sparse(); irq_unlock_sparse();
/* Unpark the hotplug thread so we can rollback there */ /* Unpark the hotplug thread so we can rollback there */
@@ -881,6 +918,7 @@ static int takedown_cpu(unsigned int cpu @@ -888,6 +925,7 @@ static int takedown_cpu(unsigned int cpu
wait_for_ap_thread(st, false); wait_for_ap_thread(st, false);
BUG_ON(st->state != CPUHP_AP_IDLE_DEAD); BUG_ON(st->state != CPUHP_AP_IDLE_DEAD);

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Ralf posted a picture of a backtrace from Ralf posted a picture of a backtrace from

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
There are "valid" GFP_ATOMIC allocations such as There are "valid" GFP_ATOMIC allocations such as
@ -47,7 +47,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/arch/x86/Kconfig --- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig +++ b/arch/x86/Kconfig
@@ -938,7 +938,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT @@ -934,7 +934,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
config MAXSMP config MAXSMP
bool "Enable Maximum number of SMP Processors and NUMA Nodes" bool "Enable Maximum number of SMP Processors and NUMA Nodes"
depends on X86_64 && SMP && DEBUG_KERNEL depends on X86_64 && SMP && DEBUG_KERNEL

View File

@ -1,7 +1,7 @@
From: Mike Galbraith <efault@gmx.de> From: Mike Galbraith <efault@gmx.de>
Date: Sun, 8 Jan 2017 09:32:25 +0100 Date: Sun, 8 Jan 2017 09:32:25 +0100
Subject: [PATCH] cpuset: Convert callback_lock to raw_spinlock_t Subject: [PATCH] cpuset: Convert callback_lock to raw_spinlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The two commits below add up to a cpuset might_sleep() splat for RT: The two commits below add up to a cpuset might_sleep() splat for RT:

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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()

View File

@ -4,7 +4,7 @@ Subject: [PATCH] crypto: caam/qi - simplify CGR allocation, freeing
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6] [Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]

View File

@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 18:52:00 +0200 Date: Thu, 26 Jul 2018 18:52:00 +0200
Subject: [PATCH] crypto: cryptd - add a lock instead Subject: [PATCH] crypto: cryptd - add a lock instead
preempt_disable/local_bh_disable preempt_disable/local_bh_disable
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
cryptd has a per-CPU lock which protected with local_bh_disable() and cryptd has a per-CPU lock which protected with local_bh_disable() and
preempt_disable(). preempt_disable().

View File

@ -4,7 +4,7 @@ Subject: [PATCH] crypto: limit more FPU-enabled sections
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Those crypto drivers use SSE/AVX/… for their crypto work and in order to Those crypto drivers use SSE/AVX/… for their crypto work and in order to
do so in kernel they need to enable the "FPU" in kernel mode which do so in kernel they need to enable the "FPU" in kernel mode which

View File

@ -2,7 +2,7 @@ From: Mike Galbraith <efault@gmx.de>
Date: Wed, 11 Jul 2018 17:14:47 +0200 Date: Wed, 11 Jul 2018 17:14:47 +0200
Subject: [PATCH] crypto: scompress - serialize RT percpu scratch buffer Subject: [PATCH] crypto: scompress - serialize RT percpu scratch buffer
access with a local lock access with a local lock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974 | BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
| in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test | in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Avoid filling the pool / allocating memory with irqs off(). Avoid filling the pool / allocating memory with irqs off().

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 27 Mar 2018 16:24:15 +0200 Date: Tue, 27 Mar 2018 16:24:15 +0200
Subject: [PATCH] dm rq: remove BUG_ON(!irqs_disabled) check Subject: [PATCH] dm rq: remove BUG_ON(!irqs_disabled) check
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
In commit 052189a2ec95 ("dm: remove superfluous irq disablement in In commit 052189a2ec95 ("dm: remove superfluous irq disablement in
dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a

View File

@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Thu, 31 Mar 2016 04:08:28 +0200 Date: Thu, 31 Mar 2016 04:08:28 +0200
Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex
for -rt for -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
They're nondeterministic, and lead to ___might_sleep() splats in -rt. They're nondeterministic, and lead to ___might_sleep() splats in -rt.
OTOH, they're a lot less wasteful than an rtmutex per page. OTOH, they're a lot less wasteful than an rtmutex per page.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Thu, 20 Oct 2016 11:15:22 +0200 Date: Thu, 20 Oct 2016 11:15:22 +0200
Subject: [PATCH] drivers/zram: Don't disable preemption in Subject: [PATCH] drivers/zram: Don't disable preemption in
zcomp_stream_get/put() zcomp_stream_get/put()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
In v4.7, the driver switched to percpu compression streams, disabling In v4.7, the driver switched to percpu compression streams, disabling
preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We

View File

@ -2,7 +2,7 @@ From: Mike Galbraith <efault@gmx.de>
Date: Wed, 23 Aug 2017 11:57:29 +0200 Date: Wed, 23 Aug 2017 11:57:29 +0200
Subject: [PATCH] drivers/zram: fix zcomp_stream_get() smp_processor_id() use Subject: [PATCH] drivers/zram: fix zcomp_stream_get() smp_processor_id() use
in preemptible code in preemptible code
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding
smp_processor_id() in preemptible code. smp_processor_id() in preemptible code.

View File

@ -0,0 +1,41 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 6 Dec 2018 09:52:20 +0100
Subject: [PATCH] drm/i915: disable tracing on -RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Luca Abeni reported this:
| BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003
| CPU: 1 PID: 15203 Comm: kworker/u8:2 Not tainted 4.19.1-rt3 #10
| Call Trace:
| rt_spin_lock+0x3f/0x50
| gen6_read32+0x45/0x1d0 [i915]
| g4x_get_vblank_counter+0x36/0x40 [i915]
| trace_event_raw_event_i915_pipe_update_start+0x7d/0xf0 [i915]
The tracing events use trace_i915_pipe_update_start() among other events
use functions acquire spin locks. A few trace points use
intel_get_crtc_scanline(), others use ->get_vblank_counter() wich also
might acquire a sleeping lock.
Based on this I don't see any other way than disable trace points on RT.
Cc: stable-rt@vger.kernel.org
Reported-by: Luca Abeni <lucabe72@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
drivers/gpu/drm/i915/i915_trace.h | 4 ++++
1 file changed, 4 insertions(+)
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -2,6 +2,10 @@
#if !defined(_I915_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
#define _I915_TRACE_H_
+#ifdef CONFIG_PREEMPT_RT_BASE
+#define NOTRACE
+#endif
+
#include <linux/stringify.h>
#include <linux/types.h>
#include <linux/tracepoint.h>

View File

@ -1,7 +1,7 @@
Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()
From: Mike Galbraith <umgwanakikbuti@gmail.com> From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sat, 27 Feb 2016 09:01:42 +0100 Date: Sat, 27 Feb 2016 09:01:42 +0100
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918 [ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918

View File

@ -1,7 +1,7 @@
Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended
From: Mike Galbraith <umgwanakikbuti@gmail.com> From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sat, 27 Feb 2016 08:09:11 +0100 Date: Sat, 27 Feb 2016 08:09:11 +0100
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
DRM folks identified the spots, so use them. DRM folks identified the spots, so use them.

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:06:10 +0200 Date: Thu, 26 Jul 2018 15:06:10 +0200
Subject: [PATCH] efi: Allow efi=runtime Subject: [PATCH] efi: Allow efi=runtime
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
In case the option "efi=noruntime" is default at built-time, the user In case the option "efi=noruntime" is default at built-time, the user
could overwrite its sate by `efi=runtime' and allow it again. could overwrite its sate by `efi=runtime' and allow it again.

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:03:16 +0200 Date: Thu, 26 Jul 2018 15:03:16 +0200
Subject: [PATCH] efi: Disable runtime services on RT Subject: [PATCH] efi: Disable runtime services on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Based on meassurements the EFI functions get_variable / Based on meassurements the EFI functions get_variable /
get_next_variable take up to 2us which looks okay. get_next_variable take up to 2us which looks okay.

View File

@ -1,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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768 |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2 |in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 13 Sep 2017 12:32:34 +0200 Date: Wed, 13 Sep 2017 12:32:34 +0200
Subject: [PATCH] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init Subject: [PATCH] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed
INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 20 Oct 2017 11:29:53 +0200 Date: Fri, 20 Oct 2017 11:29:53 +0200
Subject: [PATCH] fs/dcache: disable preemption on i_dir_seq's write side Subject: [PATCH] fs/dcache: disable preemption on i_dir_seq's write side
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
i_dir_seq is an opencoded seqcounter. Based on the code it looks like we i_dir_seq is an opencoded seqcounter. Based on the code it looks like we
could have two writers in parallel despite the fact that the d_lock is could have two writers in parallel despite the fact that the d_lock is

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 14 Sep 2016 14:35:49 +0200 Date: Wed, 14 Sep 2016 14:35:49 +0200
Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
which disables preemption. As a workaround convert it to swait. which disables preemption. As a workaround convert it to swait.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
bit_spin_locks break under RT. bit_spin_locks break under RT.

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 15 Sep 2016 10:51:27 +0200 Date: Thu, 15 Sep 2016 10:51:27 +0200
Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The RW semaphore had a reader side which used the _non_owner version The RW semaphore had a reader side which used the _non_owner version
because it most likely took the reader lock in one thread and released it because it most likely took the reader lock in one thread and released it

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Wrap the bit_spin_lock calls into a separate inline and add the RT Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock. replacements with a real spinlock.

View File

@ -1,7 +1,7 @@
From: Clark Williams <williams@redhat.com> From: Clark Williams <williams@redhat.com>
Date: Tue, 3 Jul 2018 13:34:30 -0500 Date: Tue, 3 Jul 2018 13:34:30 -0500
Subject: [PATCH] fscache: initialize cookie hash table raw spinlocks Subject: [PATCH] fscache: initialize cookie hash table raw spinlocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The
PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT

View File

@ -1,7 +1,7 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com> From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sun, 16 Oct 2016 05:08:30 +0200 Date: Sun, 16 Oct 2016 05:08:30 +0200
Subject: [PATCH] ftrace: Fix trace header alignment Subject: [PATCH] ftrace: Fix trace header alignment
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Line up helper arrows to the right column. Line up helper arrows to the right column.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- ---

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
In exit_pi_state_list() we have the following locking construct: In exit_pi_state_list() we have the following locking construct:

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Requeue with timeout causes a bug with PREEMPT_RT_FULL. Requeue with timeout causes a bug with PREEMPT_RT_FULL.

View File

@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Mar 2017 14:23:35 +0100 Date: Wed, 8 Mar 2017 14:23:35 +0100
Subject: [PATCH] futex: workaround migrate_disable/enable in different context Subject: [PATCH] futex: workaround migrate_disable/enable in different context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
migrate_disable()/migrate_enable() takes a different path in atomic() vs migrate_disable()/migrate_enable() takes a different path in atomic() vs
!atomic() context. These little hacks ensure that we don't underflow / overflow !atomic() context. These little hacks ensure that we don't underflow / overflow

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Creates long latencies for no value Creates long latencies for no value

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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()

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -1,7 +1,7 @@
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: genirq: update irq_set_irqchip_state documentation Subject: genirq: update irq_set_irqchip_state documentation
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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
@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/kernel/irq/manage.c --- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c +++ b/kernel/irq/manage.c
@@ -2270,7 +2270,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state) @@ -2274,7 +2274,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.
* *

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2017 18:31:00 +0200 Date: Fri, 4 Aug 2017 18:31:00 +0200
Subject: [PATCH] hotplug: duct-tape RT-rwlock usage for non-RT Subject: [PATCH] hotplug: duct-tape RT-rwlock usage for non-RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
This type is only available on -RT. We need to craft something for This type is only available on -RT. We need to craft something for
non-RT. Since the only migrate_disable() user is -RT only, there is no non-RT. Since the only migrate_disable() user is -RT only, there is no
@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/kernel/cpu.c --- a/kernel/cpu.c
+++ b/kernel/cpu.c +++ b/kernel/cpu.c
@@ -74,7 +74,7 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_s @@ -75,7 +75,7 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_s
.fail = CPUHP_INVALID, .fail = CPUHP_INVALID,
}; };
@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
static DEFINE_PER_CPU(struct rt_rw_lock, cpuhp_pin_lock) = \ static DEFINE_PER_CPU(struct rt_rw_lock, cpuhp_pin_lock) = \
__RWLOCK_RT_INITIALIZER(cpuhp_pin_lock); __RWLOCK_RT_INITIALIZER(cpuhp_pin_lock);
#endif #endif
@@ -290,6 +290,7 @@ static int cpu_hotplug_disabled; @@ -291,6 +291,7 @@ static int cpu_hotplug_disabled;
*/ */
void pin_current_cpu(void) void pin_current_cpu(void)
{ {
@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct rt_rw_lock *cpuhp_pin; struct rt_rw_lock *cpuhp_pin;
unsigned int cpu; unsigned int cpu;
int ret; int ret;
@@ -312,6 +313,7 @@ void pin_current_cpu(void) @@ -313,6 +314,7 @@ void pin_current_cpu(void)
goto again; goto again;
} }
current->pinned_on_cpu = cpu; current->pinned_on_cpu = cpu;
@ -39,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
/** /**
@@ -319,6 +321,7 @@ void pin_current_cpu(void) @@ -320,6 +322,7 @@ void pin_current_cpu(void)
*/ */
void unpin_current_cpu(void) void unpin_current_cpu(void)
{ {
@ -47,7 +47,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct rt_rw_lock *cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock); struct rt_rw_lock *cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
if (WARN_ON(current->pinned_on_cpu != smp_processor_id())) if (WARN_ON(current->pinned_on_cpu != smp_processor_id()))
@@ -326,6 +329,7 @@ void unpin_current_cpu(void) @@ -327,6 +330,7 @@ void unpin_current_cpu(void)
current->pinned_on_cpu = -1; current->pinned_on_cpu = -1;
__read_rt_unlock(cpuhp_pin); __read_rt_unlock(cpuhp_pin);
@ -55,7 +55,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock); DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
@@ -879,7 +883,9 @@ static int take_cpu_down(void *_param) @@ -886,7 +890,9 @@ static int take_cpu_down(void *_param)
static int takedown_cpu(unsigned int cpu) static int takedown_cpu(unsigned int cpu)
{ {
@ -65,7 +65,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
int err; int err;
@@ -892,14 +898,18 @@ static int takedown_cpu(unsigned int cpu @@ -899,14 +905,18 @@ static int takedown_cpu(unsigned int cpu
*/ */
irq_lock_sparse(); irq_lock_sparse();
@ -84,7 +84,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* CPU refused to die */ /* CPU refused to die */
irq_unlock_sparse(); irq_unlock_sparse();
/* Unpark the hotplug thread so we can rollback there */ /* Unpark the hotplug thread so we can rollback there */
@@ -918,7 +928,9 @@ static int takedown_cpu(unsigned int cpu @@ -925,7 +935,9 @@ static int takedown_cpu(unsigned int cpu
wait_for_ap_thread(st, false); wait_for_ap_thread(st, false);
BUG_ON(st->state != CPUHP_AP_IDLE_DEAD); BUG_ON(st->state != CPUHP_AP_IDLE_DEAD);

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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
@ -41,7 +41,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* Wrappers which go away once all code is converted */ /* Wrappers which go away once all code is converted */
--- a/kernel/cpu.c --- a/kernel/cpu.c
+++ b/kernel/cpu.c +++ b/kernel/cpu.c
@@ -280,6 +280,21 @@ static int cpu_hotplug_disabled; @@ -281,6 +281,21 @@ static int cpu_hotplug_disabled;
#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_HOTPLUG_CPU
@ -65,7 +65,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
void cpus_read_lock(void) void cpus_read_lock(void)
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/kernel/sched/core.c +++ b/kernel/sched/core.c
@@ -7197,6 +7197,7 @@ void migrate_disable(void) @@ -7203,6 +7203,7 @@ void migrate_disable(void)
} }
preempt_disable(); preempt_disable();
@ -73,7 +73,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
migrate_disable_update_cpus_allowed(p); migrate_disable_update_cpus_allowed(p);
p->migrate_disable = 1; p->migrate_disable = 1;
@@ -7262,12 +7263,15 @@ void migrate_enable(void) @@ -7268,12 +7269,15 @@ void migrate_enable(void)
arg.task = p; arg.task = p;
arg.dest_cpu = dest_cpu; arg.dest_cpu = dest_cpu;

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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:

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:31 -0500 Date: Fri, 3 Jul 2009 08:44:31 -0500
Subject: hrtimer: by timers by default into the softirq context Subject: hrtimer: by timers by default into the softirq context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
We can't have hrtimers callbacks running in hardirq context on RT. Therefore We can't have hrtimers callbacks running in hardirq context on RT. Therefore
the timers are deferred to the softirq context by default. the timers are deferred to the softirq context by default.
@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/arch/x86/kvm/lapic.c --- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c
@@ -2245,7 +2245,7 @@ int kvm_create_lapic(struct kvm_vcpu *vc @@ -2250,7 +2250,7 @@ int kvm_create_lapic(struct kvm_vcpu *vc
apic->vcpu = vcpu; apic->vcpu = vcpu;
hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC, hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 11:25:41 +0200 Date: Tue, 3 Jul 2018 11:25:41 +0200
Subject: [PATCH v2] hrtimer: consolidate hrtimer_init() + hrtimer_init_sleeper() calls Subject: [PATCH v2] hrtimer: consolidate hrtimer_init() + hrtimer_init_sleeper() calls
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
hrtimer_init_sleeper() calls require a prior initialisation of the hrtimer_init_sleeper() calls require a prior initialisation of the
hrtimer object with hrtimer_init(). Lets make the initialisation of hrtimer object with hrtimer_init(). Lets make the initialisation of
@ -27,7 +27,7 @@ Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
--- a/block/blk-mq.c --- a/block/blk-mq.c
+++ b/block/blk-mq.c +++ b/block/blk-mq.c
@@ -3115,10 +3115,9 @@ static bool blk_mq_poll_hybrid_sleep(str @@ -3116,10 +3116,9 @@ static bool blk_mq_poll_hybrid_sleep(str
kt = nsecs; kt = nsecs;
mode = HRTIMER_MODE_REL; mode = HRTIMER_MODE_REL;

View File

@ -0,0 +1,45 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 6 Dec 2018 10:15:13 +0100
Subject: [PATCH] hrtimer: move state change before hrtimer_cancel in
do_nanosleep()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
There is a small window between setting t->task to NULL and waking the
task up (which would set TASK_RUNNING). So the timer would fire, run and
set ->task to NULL while the other side/do_nanosleep() wouldn't enter
freezable_schedule(). After all we are peemptible here (in
do_nanosleep() and on the timer wake up path) and on KVM/virt the
virt-CPU might get preempted.
So do_nanosleep() wouldn't enter freezable_schedule() but cancel the
timer which is still running and wait for it via
hrtimer_wait_for_timer(). Then wait_event()/might_sleep() would complain
that it is invoked with state != TASK_RUNNING.
This isn't a problem since it would be reset to TASK_RUNNING later
anyway and we don't rely on the previous state.
Move the state update to TASK_RUNNING before hrtimer_cancel() so there
are no complains from might_sleep() about wrong state.
Cc: stable-rt@vger.kernel.org
Reviewed-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
kernel/time/hrtimer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1785,12 +1785,12 @@ static int __sched do_nanosleep(struct h
if (likely(t->task))
freezable_schedule();
+ __set_current_state(TASK_RUNNING);
hrtimer_cancel(&t->timer);
mode = HRTIMER_MODE_ABS;
} while (t->task && !signal_pending(current));
- __set_current_state(TASK_RUNNING);
if (!t->task)
return 0;

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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.

View File

@ -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.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.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

View File

@ -2,7 +2,7 @@ From: Marc Zyngier <marc.zyngier@arm.com>
Date: Fri, 27 Jul 2018 13:38:54 +0100 Date: Fri, 27 Jul 2018 13:38:54 +0100
Subject: [PATCH] irqchip/gic-v3-its: Move pending table allocation to init Subject: [PATCH] irqchip/gic-v3-its: Move pending table allocation to init
time time
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

View File

@ -1,7 +1,7 @@
Subject: irqwork: push most work into softirq context Subject: irqwork: push most work into softirq context
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 23 Jun 2015 15:32:51 +0200 Date: Tue, 23 Jun 2015 15:32:51 +0200
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Initially we defered all irqwork into softirq because we didn't want the Initially we defered all irqwork into softirq because we didn't want the
latency spikes if perf or another user was busy and delayed the RT task. latency spikes if perf or another user was busy and delayed the RT task.

View File

@ -1,7 +1,7 @@
Subject: jump-label: disable if stop_machine() is used Subject: jump-label: disable if stop_machine() is used
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 08 Jul 2015 17:14:48 +0200 Date: Wed, 08 Jul 2015 17:14:48 +0200
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Some architectures are using stop_machine() while switching the opcode which Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes. leads to latency spikes.

View File

@ -1,7 +1,7 @@
Subject: kconfig: Disable config options which are not RT compatible Subject: kconfig: Disable config options which are not RT compatible
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200 Date: Sun, 24 Jul 2011 12:11:43 +0200
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Disable stuff which is known to have issues on RT Disable stuff which is known to have issues on RT

View File

@ -1,7 +1,7 @@
Subject: kconfig: Add PREEMPT_RT_FULL Subject: kconfig: Add PREEMPT_RT_FULL
From: Thomas Gleixner <tglx@linutronix.de> From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 14:58:57 +0200 Date: Wed, 29 Jun 2011 14:58:57 +0200
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
Introduce the final symbol for PREEMPT_RT_FULL. Introduce the final symbol for PREEMPT_RT_FULL.

View File

@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 19 May 2016 17:45:27 +0200 Date: Thu, 19 May 2016 17:45:27 +0200
Subject: [PATCH] kernel/printk: Don't try to print from IRQ/NMI region Subject: [PATCH] kernel/printk: Don't try to print from IRQ/NMI region
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
On -RT we try to acquire sleeping locks which might lead to warnings On -RT we try to acquire sleeping locks which might lead to warnings
from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on
@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/kernel/printk/printk.c --- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c +++ b/kernel/printk/printk.c
@@ -1777,6 +1777,11 @@ static void call_console_drivers(const c @@ -1782,6 +1782,11 @@ static void call_console_drivers(const c
if (!console_drivers) if (!console_drivers)
return; return;
@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
migrate_disable(); migrate_disable();
for_each_console(con) { for_each_console(con) {
if (exclusive_console && con != exclusive_console) if (exclusive_console && con != exclusive_console)
@@ -2535,6 +2540,11 @@ void console_unblank(void) @@ -2540,6 +2545,11 @@ void console_unblank(void)
{ {
struct console *c; struct console *c;

View File

@ -4,7 +4,7 @@ Subject: [PATCH] kernel: sched: Provide a pointer to the valid CPU mask
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed() In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
@ -260,7 +260,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#ifdef CONFIG_PREEMPT_RCU #ifdef CONFIG_PREEMPT_RCU
int rcu_read_lock_nesting; int rcu_read_lock_nesting;
@@ -1389,7 +1390,7 @@ extern struct pid *cad_pid; @@ -1390,7 +1391,7 @@ extern struct pid *cad_pid;
#define PF_KTHREAD 0x00200000 /* I am a kernel thread */ #define PF_KTHREAD 0x00200000 /* I am a kernel thread */
#define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */ #define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */
#define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */ #define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */
@ -617,7 +617,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* /*
* Replace recent_used_cpu with prev as it is a potential * Replace recent_used_cpu with prev as it is a potential
* candidate for the next wake: * candidate for the next wake:
@@ -6317,7 +6317,7 @@ select_task_rq_fair(struct task_struct * @@ -6351,7 +6351,7 @@ select_task_rq_fair(struct task_struct *
if (sd_flag & SD_BALANCE_WAKE) { if (sd_flag & SD_BALANCE_WAKE) {
record_wakee(p); record_wakee(p);
want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu) want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu)
@ -626,7 +626,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} }
rcu_read_lock(); rcu_read_lock();
@@ -7056,14 +7056,14 @@ int can_migrate_task(struct task_struct @@ -7090,14 +7090,14 @@ int can_migrate_task(struct task_struct
/* /*
* We do not migrate tasks that are: * We do not migrate tasks that are:
* 1) throttled_lb_pair, or * 1) throttled_lb_pair, or
@ -643,7 +643,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
int cpu; int cpu;
schedstat_inc(p->se.statistics.nr_failed_migrations_affine); schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
@@ -7083,7 +7083,7 @@ int can_migrate_task(struct task_struct @@ -7117,7 +7117,7 @@ int can_migrate_task(struct task_struct
/* Prevent to re-select dst_cpu via env's CPUs: */ /* Prevent to re-select dst_cpu via env's CPUs: */
for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) { for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) {
@ -652,7 +652,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
env->flags |= LBF_DST_PINNED; env->flags |= LBF_DST_PINNED;
env->new_dst_cpu = cpu; env->new_dst_cpu = cpu;
break; break;
@@ -7704,7 +7704,7 @@ check_cpu_capacity(struct rq *rq, struct @@ -7738,7 +7738,7 @@ check_cpu_capacity(struct rq *rq, struct
/* /*
* Group imbalance indicates (and tries to solve) the problem where balancing * Group imbalance indicates (and tries to solve) the problem where balancing
@ -661,7 +661,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* *
* Imagine a situation of two groups of 4 CPUs each and 4 tasks each with a * Imagine a situation of two groups of 4 CPUs each and 4 tasks each with a
* cpumask covering 1 CPU of the first group and 3 CPUs of the second group. * cpumask covering 1 CPU of the first group and 3 CPUs of the second group.
@@ -8319,7 +8319,7 @@ static struct sched_group *find_busiest_ @@ -8353,7 +8353,7 @@ static struct sched_group *find_busiest_
/* /*
* If the busiest group is imbalanced the below checks don't * If the busiest group is imbalanced the below checks don't
* work because they assume all things are equal, which typically * work because they assume all things are equal, which typically
@ -670,7 +670,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
*/ */
if (busiest->group_type == group_imbalanced) if (busiest->group_type == group_imbalanced)
goto force_balance; goto force_balance;
@@ -8715,7 +8715,7 @@ static int load_balance(int this_cpu, st @@ -8749,7 +8749,7 @@ static int load_balance(int this_cpu, st
* if the curr task on busiest CPU can't be * if the curr task on busiest CPU can't be
* moved to this_cpu: * moved to this_cpu:
*/ */

View File

@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 21 Nov 2016 19:31:08 +0100 Date: Mon, 21 Nov 2016 19:31:08 +0100
Subject: [PATCH] kernel/sched: move stack + kprobe clean up to Subject: [PATCH] kernel/sched: move stack + kprobe clean up to
__put_task_struct() __put_task_struct()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.5-rt4.tar.xz Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.8-rt6.tar.xz
There is no need to free the stack before the task struct (except for reasons There is no need to free the stack before the task struct (except for reasons
mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if

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