mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
[rt] Update to 5.2.17-rt9
This commit is contained in:
committed by
Romain Perier
parent
007e86e832
commit
b6800da4de
6
debian/changelog
vendored
6
debian/changelog
vendored
@@ -1,3 +1,9 @@
|
||||
linux (5.2.17-2) UNRELEASED; urgency=medium
|
||||
|
||||
* [rt] Update to 5.2.17-rt9
|
||||
|
||||
-- Romain Perier <romain.perier@gmail.com> Mon, 30 Sep 2019 16:09:14 +0200
|
||||
|
||||
linux (5.2.17-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org>
|
||||
Date: Mon, 28 May 2018 15:24:20 +0200
|
||||
Subject: [PATCH 1/4] Split IRQ-off and zone->lock while freeing pages from PCP
|
||||
list #1
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Split the IRQ-off section while accessing the PCP list from zone->lock
|
||||
while freeing pages.
|
||||
@@ -109,7 +109,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
|
||||
static void free_one_page(struct zone *zone,
|
||||
@@ -2724,13 +2731,18 @@ void drain_zone_pages(struct zone *zone,
|
||||
@@ -2713,13 +2720,18 @@ void drain_zone_pages(struct zone *zone,
|
||||
{
|
||||
unsigned long flags;
|
||||
int to_drain, batch;
|
||||
@@ -129,7 +129,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2746,14 +2758,21 @@ static void drain_pages_zone(unsigned in
|
||||
@@ -2735,14 +2747,21 @@ static void drain_pages_zone(unsigned in
|
||||
unsigned long flags;
|
||||
struct per_cpu_pageset *pset;
|
||||
struct per_cpu_pages *pcp;
|
||||
@@ -153,7 +153,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2981,7 +3000,10 @@ static void free_unref_page_commit(struc
|
||||
@@ -2970,7 +2989,10 @@ static void free_unref_page_commit(struc
|
||||
pcp->count++;
|
||||
if (pcp->count >= pcp->high) {
|
||||
unsigned long batch = READ_ONCE(pcp->batch);
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Julien Grall <julien.grall@arm.com>
|
||||
Date: Wed, 21 Aug 2019 10:24:07 +0100
|
||||
Subject: [PATCH 1/3] hrtimer: Use READ_ONCE to access timer->base in
|
||||
hrimer_grab_expiry_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The update to timer->base is protected by the base->cpu_base->lock().
|
||||
However, hrtimer_grab_expirty_lock() does not access it with the lock.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:39 +0100
|
||||
Subject: [PATCH 01/25] printk-rb: add printk ring buffer documentation
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The full documentation file for the printk ring buffer.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org>
|
||||
Date: Mon, 28 May 2018 15:24:21 +0200
|
||||
Subject: [PATCH 2/4] Split IRQ-off and zone->lock while freeing pages from PCP
|
||||
list #2
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Split the IRQ-off section while accessing the PCP list from zone->lock
|
||||
while freeing pages.
|
||||
@@ -57,7 +57,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
__free_one_page(page, page_to_pfn(page), zone, 0, mt);
|
||||
trace_mm_page_pcpu_drain(page, 0, mt);
|
||||
}
|
||||
@@ -2742,7 +2757,7 @@ void drain_zone_pages(struct zone *zone,
|
||||
@@ -2731,7 +2746,7 @@ void drain_zone_pages(struct zone *zone,
|
||||
local_irq_restore(flags);
|
||||
|
||||
if (to_drain > 0)
|
||||
@@ -66,7 +66,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2772,7 +2787,7 @@ static void drain_pages_zone(unsigned in
|
||||
@@ -2761,7 +2776,7 @@ static void drain_pages_zone(unsigned in
|
||||
local_irq_restore(flags);
|
||||
|
||||
if (count)
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2971,7 +2986,8 @@ static bool free_unref_page_prepare(stru
|
||||
@@ -2960,7 +2975,8 @@ static bool free_unref_page_prepare(stru
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
{
|
||||
struct zone *zone = page_zone(page);
|
||||
struct per_cpu_pages *pcp;
|
||||
@@ -3000,10 +3016,8 @@ static void free_unref_page_commit(struc
|
||||
@@ -2989,10 +3005,8 @@ static void free_unref_page_commit(struc
|
||||
pcp->count++;
|
||||
if (pcp->count >= pcp->high) {
|
||||
unsigned long batch = READ_ONCE(pcp->batch);
|
||||
@@ -97,7 +97,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3014,13 +3028,17 @@ void free_unref_page(struct page *page)
|
||||
@@ -3003,13 +3017,17 @@ void free_unref_page(struct page *page)
|
||||
{
|
||||
unsigned long flags;
|
||||
unsigned long pfn = page_to_pfn(page);
|
||||
@@ -116,7 +116,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3031,6 +3049,11 @@ void free_unref_page_list(struct list_he
|
||||
@@ -3020,6 +3038,11 @@ void free_unref_page_list(struct list_he
|
||||
struct page *page, *next;
|
||||
unsigned long flags, pfn;
|
||||
int batch_count = 0;
|
||||
@@ -128,7 +128,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
/* Prepare pages for freeing */
|
||||
list_for_each_entry_safe(page, next, list, lru) {
|
||||
@@ -3043,10 +3066,12 @@ void free_unref_page_list(struct list_he
|
||||
@@ -3032,10 +3055,12 @@ void free_unref_page_list(struct list_he
|
||||
local_irq_save(flags);
|
||||
list_for_each_entry_safe(page, next, list, lru) {
|
||||
unsigned long pfn = page_private(page);
|
||||
@@ -142,7 +142,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
/*
|
||||
* Guard against excessive IRQ disabled times when we get
|
||||
@@ -3059,6 +3084,21 @@ void free_unref_page_list(struct list_he
|
||||
@@ -3048,6 +3073,21 @@ void free_unref_page_list(struct list_he
|
||||
}
|
||||
}
|
||||
local_irq_restore(flags);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Julien Grall <julien.grall@arm.com>
|
||||
Date: Wed, 21 Aug 2019 10:24:08 +0100
|
||||
Subject: [PATCH 2/3] hrtimer: Don't grab the expiry lock for non-soft hrtimer
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Acquiring the lock in hrtimer_grab_expiry_lock() is designed for
|
||||
sleeping-locks and should not be used with disabled interrupts.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:40 +0100
|
||||
Subject: [PATCH 02/25] printk-rb: add prb locking functions
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Add processor-reentrant spin locking functions. These allow
|
||||
restricting the number of possible contexts to 2, which can simplify
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Julien Grall <julien.grall@arm.com>
|
||||
Date: Wed, 21 Aug 2019 10:24:09 +0100
|
||||
Subject: [PATCH 3/3] hrtimer: Prevent using hrtimer_grab_expiry_lock() on
|
||||
migration_base
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
As tglx puts it:
|
||||
|If base == migration_base then there is no point to lock soft_expiry_lock
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Mon, 28 May 2018 15:24:22 +0200
|
||||
Subject: [PATCH 3/4] mm/SLxB: change list_lock to raw_spinlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t
|
||||
otherwise the interrupts won't be disabled on -RT. The locking rules remain
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:41 +0100
|
||||
Subject: [PATCH 03/25] printk-rb: define ring buffer struct and initializer
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
See Documentation/printk-ringbuffer.txt for details about the
|
||||
initializer arguments.
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 21 Jun 2018 17:29:19 +0200
|
||||
Subject: [PATCH 4/4] mm/SLUB: delay giving back empty slubs to IRQ enabled
|
||||
regions
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
__free_slab() is invoked with disabled interrupts which increases the
|
||||
irq-off time while __free_pages() is doing the work.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:42 +0100
|
||||
Subject: [PATCH 04/25] printk-rb: add writer interface
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Add the writer functions prb_reserve() and prb_commit(). These make
|
||||
use of processor-reentrant spin locks to limit the number of possible
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:43 +0100
|
||||
Subject: [PATCH 05/25] printk-rb: add basic non-blocking reading interface
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Add reader iterator static declaration/initializer, dynamic
|
||||
initializer, and functions to iterate and retrieve ring buffer data.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:44 +0100
|
||||
Subject: [PATCH 06/25] printk-rb: add blocking reader support
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Add a blocking read function for readers. An irq_work function is
|
||||
used to signal the wait queue so that write notification can
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:45 +0100
|
||||
Subject: [PATCH 07/25] printk-rb: add functionality required by printk
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The printk subsystem needs to be able to query the size of the ring
|
||||
buffer, seek to specific entries within the ring buffer, and track
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:46 +0100
|
||||
Subject: [PATCH 08/25] printk: add ring buffer and kthread
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The printk ring buffer provides an NMI-safe interface for writing
|
||||
messages to a ring buffer. Using such a buffer for alleviates printk
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:47 +0100
|
||||
Subject: [PATCH 09/25] printk: remove exclusive console hack
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
In order to support printing the printk log history when new
|
||||
consoles are registered, a global exclusive_console variable is
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:48 +0100
|
||||
Subject: [PATCH 10/25] printk: redirect emit/store to new ringbuffer
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
vprintk_emit and vprintk_store are the main functions that all printk
|
||||
variants eventually go through. Change these to store the message in
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:49 +0100
|
||||
Subject: [PATCH 11/25] printk_safe: remove printk safe code
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
vprintk variants are now NMI-safe so there is no longer a need for
|
||||
the "safe" calls.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:50 +0100
|
||||
Subject: [PATCH 12/25] printk: minimize console locking implementation
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Since printing of the printk buffer is now handled by the printk
|
||||
kthread, minimize the console locking functions to just handle
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:51 +0100
|
||||
Subject: [PATCH 13/25] printk: track seq per console
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Allow each console to track which seq record was last printed. This
|
||||
simplifies identifying dropped records.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:52 +0100
|
||||
Subject: [PATCH 14/25] printk: do boot_delay_msec inside printk_delay
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Both functions needed to be called one after the other, so just
|
||||
integrate boot_delay_msec into printk_delay for simplification.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:53 +0100
|
||||
Subject: [PATCH 15/25] printk: print history for new consoles
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
When new consoles register, they currently print how many messages
|
||||
they have missed. However, many (or all) of those messages may still
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:54 +0100
|
||||
Subject: [PATCH 16/25] printk: implement CON_PRINTBUFFER
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
If the CON_PRINTBUFFER flag is not set, do not replay the history
|
||||
for that console.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:55 +0100
|
||||
Subject: [PATCH 17/25] printk: add processor number to output
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
It can be difficult to sort printk out if multiple processors are
|
||||
printing simultaneously. Add the processor number to the printk
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:56 +0100
|
||||
Subject: [PATCH 18/25] console: add write_atomic interface
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Add a write_atomic callback to the console. This is an optional
|
||||
function for console drivers. The function must be atomic (including
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:57 +0100
|
||||
Subject: [PATCH 19/25] printk: introduce emergency messages
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Console messages are generally either critical or non-critical.
|
||||
Critical messages are messages such as crashes or sysrq output.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:58 +0100
|
||||
Subject: [PATCH 20/25] serial: 8250: implement write_atomic
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Implement a non-sleeping NMI-safe write_atomic console function in
|
||||
order to support emergency printk messages.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:29:59 +0100
|
||||
Subject: [PATCH 21/25] printk: implement KERN_CONT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Implement KERN_CONT based on the printing CPU rather than on the
|
||||
printing task. As long as the KERN_CONT messages are coming from the
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:30:00 +0100
|
||||
Subject: [PATCH 22/25] printk: implement /dev/kmsg
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Since printk messages are now logged to a new ring buffer, update
|
||||
the /dev/kmsg functions to pull the messages from there.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:30:01 +0100
|
||||
Subject: [PATCH 23/25] printk: implement syslog
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Since printk messages are now logged to a new ring buffer, update
|
||||
the syslog functions to pull the messages from there.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:30:02 +0100
|
||||
Subject: [PATCH 24/25] printk: implement kmsg_dump
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Since printk messages are now logged to a new ring buffer, update
|
||||
the kmsg_dump functions to pull the messages from there.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Tue, 12 Feb 2019 15:30:03 +0100
|
||||
Subject: [PATCH 25/25] printk: remove unused code
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Code relating to the safe context and anything dealing with the
|
||||
previous log buffer implementation is no longer in use. Remove it.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: "Yadi.hu" <yadi.hu@windriver.com>
|
||||
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
||||
Subject: ARM: enable irq in translation/section permission fault handlers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Probably happens on all ARM, with
|
||||
CONFIG_PREEMPT_RT_FULL
|
||||
|
||||
@@ -4,7 +4,7 @@ Subject: [PATCH] Drivers: hv: vmbus: include header for get_irq_regs()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
On !RT the header file get_irq_regs() gets pulled in via other header files. On
|
||||
RT it does not and the build fails:
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 13 Aug 2019 14:29:41 +0200
|
||||
Subject: [PATCH] KVM: arm/arm64: Let the timer expire in hardirq context
|
||||
on RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The timers are canceled from an preempt-notifier which is invoked with
|
||||
disabled preemption which is not allowed on PREEMPT_RT.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Josh Cartwright <joshc@ni.com>
|
||||
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
||||
Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
|
||||
the vgic and timer states to prevent the calling task from migrating to
|
||||
|
||||
@@ -5,7 +5,7 @@ Cc: Anna Schumaker <anna.schumaker@netapp.com>,
|
||||
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
|
||||
tglx@linutronix.de
|
||||
Subject: NFSv4: replace seqcount_t with a seqlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
|
||||
because it maps to preempt_disable() in -RT which I can't have at this
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
--- a/fs/nfs/nfs4proc.c
|
||||
+++ b/fs/nfs/nfs4proc.c
|
||||
@@ -2914,7 +2914,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
@@ -2926,7 +2926,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
unsigned int seq;
|
||||
int ret;
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
ret = _nfs4_proc_open(opendata, ctx);
|
||||
if (ret != 0)
|
||||
@@ -2955,7 +2955,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
@@ -2967,7 +2967,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
|
||||
if (d_inode(dentry) == state->inode) {
|
||||
nfs_inode_attach_open_context(ctx);
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
mutex_init(&sp->so_delegreturn_mutex);
|
||||
return sp;
|
||||
}
|
||||
@@ -1616,8 +1616,12 @@ static int nfs4_reclaim_open_state(struc
|
||||
@@ -1633,8 +1633,12 @@ static int nfs4_reclaim_open_state(struc
|
||||
* recovering after a network partition or a reboot from a
|
||||
* server that doesn't support a grace period.
|
||||
*/
|
||||
@@ -101,7 +101,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
restart:
|
||||
list_for_each_entry(state, &sp->so_states, open_states) {
|
||||
if (!test_and_clear_bit(ops->state_flag_bit, &state->flags))
|
||||
@@ -1670,14 +1674,20 @@ static int nfs4_reclaim_open_state(struc
|
||||
@@ -1695,14 +1699,20 @@ static int nfs4_reclaim_open_state(struc
|
||||
spin_lock(&sp->so_lock);
|
||||
goto restart;
|
||||
}
|
||||
|
||||
2
debian/patches-rt/add_migrate_disable.patch
vendored
2
debian/patches-rt/add_migrate_disable.patch
vendored
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Sat, 27 May 2017 19:02:06 +0200
|
||||
Subject: kernel/sched/core: add migrate_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
---
|
||||
include/linux/preempt.h | 23 ++++++++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 11 Oct 2017 17:43:49 +0200
|
||||
Subject: apparmor: use a locallock instead preempt_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
get_buffers() disables preemption which acts as a lock for the per-CPU
|
||||
variable. Since we can't disable preemption here on RT, a local_lock is
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Anders Roxell <anders.roxell@linaro.org>
|
||||
Date: Thu, 14 May 2015 17:52:17 +0200
|
||||
Subject: arch/arm64: Add lazy preempt support
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
arm64 is missing support for PREEMPT_RT. The main feature which is
|
||||
lacking is support for lazy preemption. The arch-specific entry code,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 1 Dec 2017 10:42:03 +0100
|
||||
Subject: [PATCH] arm*: disable NEON in kernel mode
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
NEON in kernel mode is used by the crypto algorithms and raid6 code.
|
||||
While the raid6 code looks okay, the crypto algorithms do not: NEON
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: arm: Enable highmem for rt
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 13 Feb 2013 11:03:11 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
fixup highmem for ARM.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
||||
Subject: arm/highmem: Flush tlb on unmap
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The tlb should be flushed on unmap and thus make the mapping entry
|
||||
invalid. This is only done in the non-debug case which does not look
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 14 May 2019 17:07:44 +0200
|
||||
Subject: [PATCH] arm: imx6: cpuidle: Use raw_spinlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The idle call back is invoked with disabled interrupts and requires
|
||||
raw_spinlock_t locks to work.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 22 Dec 2016 17:28:33 +0100
|
||||
Subject: [PATCH] arm: include definition for cpumask_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
This definition gets pulled in by other files. With the (later) split of
|
||||
RCU and spinlock.h it won't compile anymore.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: arm: Add support for lazy preemption
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Implement the arm pieces for lazy preempt.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 15 Feb 2019 14:34:20 +0100
|
||||
Subject: [PATCH] arm: remove printk_nmi_.*()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
It is no longer provided by the printk core code.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 26 Jul 2018 09:13:42 +0200
|
||||
Subject: [PATCH] arm64: KVM: compute_layout before altenates are applied
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
compute_layout() is invoked as part of an alternative fixup under
|
||||
stop_machine() and needs a sleeping lock as part of get_random_long().
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 25 Jul 2018 14:02:38 +0200
|
||||
Subject: [PATCH] arm64: fpsimd: use preemp_disable in addition to
|
||||
local_bh_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The
|
||||
code disables BH and expects that it is not preemptible. On -RT the
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Aug 2019 17:08:58 +0200
|
||||
Subject: [PATCH] arm64: preempt: Check preemption level before looking at
|
||||
lazy-preempt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Before evaluating the lazy-preempt state it must be ensure that the
|
||||
preempt-count is zero.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 13 Aug 2019 11:53:23 +0200
|
||||
Subject: [PATCH] arm64: preempt: Fixup lazy preempt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The irq-exit assmebly checks preempt count and need-resched flag
|
||||
followed by lazy-preempt status. This is a bug. It should schedule if
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 09 Mar 2016 10:51:06 +0100
|
||||
Subject: arm: at91: do not disable/enable clocks in a row
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Currently the driver will disable the clock and enable it one line later
|
||||
if it is switching from periodic mode into one shot.
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 13 Mar 2018 13:49:16 +0100
|
||||
Subject: [PATCH] block: blk-mq: move blk_queue_usage_counter_release()
|
||||
into process context
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
||||
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 29 Jan 2015 15:10:08 +0100
|
||||
Subject: block/mq: don't complete requests via IPI
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The IPI runs in hardirq context and there are sleeping locks. Assume caches are
|
||||
shared and complete them on the local CPU.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||
Subject: block/mq: do not invoke preempt_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
preempt_disable() and get_cpu() don't play well together with the sleeping
|
||||
locks it tries to allocate later.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
||||
Subject: block: mq: use cpu_light()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
there is a might sleep splat because get_cpu() disables preemption and
|
||||
later we grab a lock. As a workaround for this we use get_cpu_light().
|
||||
|
||||
2
debian/patches-rt/block-use-cpu-chill.patch
vendored
2
debian/patches-rt/block-use-cpu-chill.patch
vendored
@@ -1,7 +1,7 @@
|
||||
Subject: block: Use cpu_chill() for retry loops
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 20 Dec 2012 18:28:26 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Retry loops on RT might loop forever when the modifying side was
|
||||
preempted. Steven also observed a live lock when there was a
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 3 Jul 2018 18:19:48 +0200
|
||||
Subject: [PATCH] cgroup: use irqsave in cgroup_rstat_flush_locked()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
|
||||
either with spin_lock_irq() or spin_lock_irqsave().
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
||||
Subject: clocksource: TCLIB: Allow higher clock rates for clock events
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
As default the TCLIB uses the 32KiHz base clock rate for clock events.
|
||||
Add a compile time selection to allow higher clock resulution.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: completion: Use simple wait queues
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 11 Jan 2013 11:23:51 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Completions have no long lasting callbacks and therefor do not need
|
||||
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);
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -7130,7 +7130,10 @@ void migrate_disable(void)
|
||||
@@ -7123,7 +7123,10 @@ void migrate_disable(void)
|
||||
return;
|
||||
}
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
@@ -312,7 +312,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
#endif
|
||||
|
||||
if (p->migrate_disable) {
|
||||
@@ -7160,7 +7163,10 @@ void migrate_enable(void)
|
||||
@@ -7153,7 +7156,10 @@ void migrate_enable(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: sched: Use the proper LOCK_OFFSET for cond_resched()
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 22:51:33 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
RT does not increment preempt count when a 'sleeping' spinlock is
|
||||
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sun, 16 Oct 2016 05:11:54 +0200
|
||||
Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock
|
||||
on RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
|
||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: cpu/hotplug: Implement CPU pinning
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 19 Jul 2017 17:31:20 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
||||
Subject: cpufreq: drop K8's driver from beeing selected
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Ralf posted a picture of a backtrace from
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
There are "valid" GFP_ATOMIC allocations such as
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Mike Galbraith <efault@gmx.de>
|
||||
Date: Sun, 8 Jan 2017 09:32:25 +0100
|
||||
Subject: [PATCH] cpuset: Convert callback_lock to raw_spinlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The two commits below add up to a cpuset might_sleep() splat for RT:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 21 Feb 2014 17:24:04 +0100
|
||||
Subject: crypto: Reduce preempt disabled regions, more algos
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Don Estabrook reported
|
||||
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 26 Jul 2018 18:52:00 +0200
|
||||
Subject: [PATCH] crypto: cryptd - add a lock instead
|
||||
preempt_disable/local_bh_disable
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
cryptd has a per-CPU lock which protected with local_bh_disable() and
|
||||
preempt_disable().
|
||||
|
||||
@@ -4,7 +4,7 @@ Subject: [PATCH] crypto: limit more FPU-enabled sections
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Those crypto drivers use SSE/AVX/… for their crypto work and in order to
|
||||
do so in kernel they need to enable the "FPU" in kernel mode which
|
||||
|
||||
2
debian/patches-rt/debugobjects-rt.patch
vendored
2
debian/patches-rt/debugobjects-rt.patch
vendored
@@ -1,7 +1,7 @@
|
||||
Subject: debugobjects: Make RT aware
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 21:41:35 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Avoid filling the pool / allocating memory with irqs off().
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Aug 2019 16:38:43 +0200
|
||||
Subject: [PATCH] dma-buf: Use seqlock_t instread disabling preemption
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
"dma reservation" disables preemption while acquiring the write access
|
||||
for "seqcount" and then may acquire a spinlock_t.
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Thu, 31 Mar 2016 04:08:28 +0200
|
||||
Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex
|
||||
for -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
They're nondeterministic, and lead to ___might_sleep() splats in -rt.
|
||||
OTOH, they're a lot less wasteful than an rtmutex per page.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: tty/serial/omap: Make the locking RT aware
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The lock is a sleeping lock and local_irq_save() is not the
|
||||
optimsation we are looking for. Redo it to make it work on -RT and
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: tty/serial/pl011: Make the locking work on RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 08 Jan 2013 21:36:51 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The lock is a sleeping lock and local_irq_save() is not the optimsation
|
||||
we are looking for. Redo it to make it work on -RT and non-RT.
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Thu, 20 Oct 2016 11:15:22 +0200
|
||||
Subject: [PATCH] drivers/zram: Don't disable preemption in
|
||||
zcomp_stream_get/put()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
In v4.7, the driver switched to percpu compression streams, disabling
|
||||
preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We
|
||||
|
||||
116
debian/patches-rt/drm-i915-Don-t-disable-interrupts-for-intel_engine_b.patch
vendored
Normal file
116
debian/patches-rt/drm-i915-Don-t-disable-interrupts-for-intel_engine_b.patch
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 25 Sep 2019 16:04:11 +0200
|
||||
Subject: [PATCH] drm/i915: Don't disable interrupts for
|
||||
intel_engine_breadcrumbs_irq()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The function intel_engine_breadcrumbs_irq() is always invoked from an interrupt
|
||||
handler and for that reason it invokes (as an optimisation) only spin_lock()
|
||||
for locking assuming that the interrupts are already disabled. The
|
||||
function intel_engine_signal_breadcrumbs() is provided to disable
|
||||
interrupts while the former function is invoked so that assumption is
|
||||
also true for callers from preemptible context.
|
||||
|
||||
On PREEMPT_RT local_irq_disable() really disables interrupts and this
|
||||
forbids to acquire spin_lock() which becomes a sleeping spinlock.
|
||||
|
||||
This is also problematic with `threadirqs' in conjunction with
|
||||
irq_work. With force threading the interrupt handler, the handler is
|
||||
invoked with disabled BH but with interrupts enabled. This is okay and
|
||||
the lock itself is never acquired in IRQ context. This changes with
|
||||
irq_work (signal_irq_work()) which _still_ invokes
|
||||
intel_engine_breadcrumbs_irq() from IRQ context. Lockdep should see this
|
||||
and complain.
|
||||
|
||||
Acquire the locks in intel_engine_breadcrumbs_irq() with _irqsave()
|
||||
suffix and let all callers invoke intel_engine_breadcrumbs_irq()
|
||||
directly instead using intel_engine_signal_breadcrumbs().
|
||||
|
||||
Reported-by: Clark Williams <williams@redhat.com>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_reset.c | 2 +-
|
||||
drivers/gpu/drm/i915/intel_breadcrumbs.c | 16 +++++-----------
|
||||
drivers/gpu/drm/i915/intel_hangcheck.c | 2 +-
|
||||
drivers/gpu/drm/i915/intel_ringbuffer.h | 1 -
|
||||
4 files changed, 7 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/drivers/gpu/drm/i915/i915_reset.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_reset.c
|
||||
@@ -804,7 +804,7 @@ static void reset_finish(struct drm_i915
|
||||
|
||||
for_each_engine(engine, i915, id) {
|
||||
reset_finish_engine(engine);
|
||||
- intel_engine_signal_breadcrumbs(engine);
|
||||
+ intel_engine_breadcrumbs_irq(engine);
|
||||
}
|
||||
}
|
||||
|
||||
--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
|
||||
@@ -116,9 +116,10 @@ void intel_engine_breadcrumbs_irq(struct
|
||||
const ktime_t timestamp = ktime_get();
|
||||
struct intel_context *ce, *cn;
|
||||
struct list_head *pos, *next;
|
||||
+ unsigned long flags;
|
||||
LIST_HEAD(signal);
|
||||
|
||||
- spin_lock(&b->irq_lock);
|
||||
+ spin_lock_irqsave(&b->irq_lock, flags);
|
||||
|
||||
if (b->irq_armed && list_empty(&b->signalers))
|
||||
__intel_breadcrumbs_disarm_irq(b);
|
||||
@@ -162,7 +163,7 @@ void intel_engine_breadcrumbs_irq(struct
|
||||
}
|
||||
}
|
||||
|
||||
- spin_unlock(&b->irq_lock);
|
||||
+ spin_unlock_irqrestore(&b->irq_lock, flags);
|
||||
|
||||
list_for_each_safe(pos, next, &signal) {
|
||||
struct i915_request *rq =
|
||||
@@ -170,21 +171,14 @@ void intel_engine_breadcrumbs_irq(struct
|
||||
|
||||
__dma_fence_signal__timestamp(&rq->fence, timestamp);
|
||||
|
||||
- spin_lock(&rq->lock);
|
||||
+ spin_lock_irqsave(&rq->lock, flags);
|
||||
__dma_fence_signal__notify(&rq->fence);
|
||||
- spin_unlock(&rq->lock);
|
||||
+ spin_unlock_irqrestore(&rq->lock, flags);
|
||||
|
||||
i915_request_put(rq);
|
||||
}
|
||||
}
|
||||
|
||||
-void intel_engine_signal_breadcrumbs(struct intel_engine_cs *engine)
|
||||
-{
|
||||
- local_irq_disable();
|
||||
- intel_engine_breadcrumbs_irq(engine);
|
||||
- local_irq_enable();
|
||||
-}
|
||||
-
|
||||
static void signal_irq_work(struct irq_work *work)
|
||||
{
|
||||
struct intel_engine_cs *engine =
|
||||
--- a/drivers/gpu/drm/i915/intel_hangcheck.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_hangcheck.c
|
||||
@@ -275,7 +275,7 @@ static void i915_hangcheck_elapsed(struc
|
||||
for_each_engine(engine, dev_priv, id) {
|
||||
struct hangcheck hc;
|
||||
|
||||
- intel_engine_signal_breadcrumbs(engine);
|
||||
+ intel_engine_breadcrumbs_irq(engine);
|
||||
|
||||
hangcheck_load_sample(engine, &hc);
|
||||
hangcheck_accumulate_sample(engine, &hc);
|
||||
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
|
||||
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
|
||||
@@ -388,7 +388,6 @@ void intel_engine_fini_breadcrumbs(struc
|
||||
void intel_engine_pin_breadcrumbs_irq(struct intel_engine_cs *engine);
|
||||
void intel_engine_unpin_breadcrumbs_irq(struct intel_engine_cs *engine);
|
||||
|
||||
-void intel_engine_signal_breadcrumbs(struct intel_engine_cs *engine);
|
||||
void intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine);
|
||||
|
||||
static inline void
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 10 Apr 2019 11:01:37 +0200
|
||||
Subject: [PATCH] drm/i915: Don't disable interrupts independently of the
|
||||
lock
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The locks (timeline->lock and rq->lock) need to be taken with disabled
|
||||
interrupts. This is done in __retire_engine_request() by disabling the
|
||||
|
||||
46
debian/patches-rt/drm-i915-Drop-the-IRQ-off-asserts.patch
vendored
Normal file
46
debian/patches-rt/drm-i915-Drop-the-IRQ-off-asserts.patch
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 26 Sep 2019 09:31:06 +0200
|
||||
Subject: [PATCH] drm/i915: Drop the IRQ-off asserts
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The lockdep_assert_irqs_disabled() check is needless. The previous
|
||||
lockdep_assert_held() check ensures that the lock is acquired and that
|
||||
time lockdep also prints a warning if the interrupts are not disabled if
|
||||
they have to be.
|
||||
These IRQ-off asserts trigger on PREEMPT_RT because the locks become
|
||||
sleeping locks and do not really disable interrupts.
|
||||
|
||||
Remove lockdep_assert_irqs_disabled().
|
||||
|
||||
Reported-by: Clark Williams <williams@redhat.com>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_breadcrumbs.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
|
||||
@@ -101,7 +101,6 @@ static void
|
||||
struct dma_fence_cb *cur, *tmp;
|
||||
|
||||
lockdep_assert_held(fence->lock);
|
||||
- lockdep_assert_irqs_disabled();
|
||||
|
||||
list_for_each_entry_safe(cur, tmp, &fence->cb_list, node) {
|
||||
INIT_LIST_HEAD(&cur->node);
|
||||
@@ -270,7 +269,6 @@ void intel_engine_fini_breadcrumbs(struc
|
||||
bool i915_request_enable_breadcrumb(struct i915_request *rq)
|
||||
{
|
||||
lockdep_assert_held(&rq->lock);
|
||||
- lockdep_assert_irqs_disabled();
|
||||
|
||||
if (test_bit(I915_FENCE_FLAG_ACTIVE, &rq->fence.flags)) {
|
||||
struct intel_breadcrumbs *b = &rq->engine->breadcrumbs;
|
||||
@@ -319,7 +317,6 @@ void i915_request_cancel_breadcrumb(stru
|
||||
struct intel_breadcrumbs *b = &rq->engine->breadcrumbs;
|
||||
|
||||
lockdep_assert_held(&rq->lock);
|
||||
- lockdep_assert_irqs_disabled();
|
||||
|
||||
/*
|
||||
* We must wait for b->irq_lock so that we know the interrupt handler
|
||||
@@ -1,7 +1,7 @@
|
||||
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/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Luca Abeni reported this:
|
||||
| BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 19 Dec 2018 10:47:02 +0100
|
||||
Subject: [PATCH] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The order of the header files is important. If this header file is
|
||||
included after tracepoint.h was included then the NOTRACE here becomes a
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sat, 27 Feb 2016 09:01:42 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
|
||||
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sat, 27 Feb 2016 08:09:11 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
DRM folks identified the spots, so use them.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 26 Jul 2018 15:06:10 +0200
|
||||
Subject: [PATCH] efi: Allow efi=runtime
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
In case the option "efi=noruntime" is default at built-time, the user
|
||||
could overwrite its sate by `efi=runtime' and allow it again.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 26 Jul 2018 15:03:16 +0200
|
||||
Subject: [PATCH] efi: Disable runtime services on RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Based on meassurements the EFI functions get_variable /
|
||||
get_next_variable take up to 2us which looks okay.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: fs/epoll: Do not disable preemption on RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
ep_call_nested() takes a sleeping lock so we can't disable preemption.
|
||||
The light version is enough since ep_call_nested() doesn't mind beeing
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
||||
Subject: fs/aio: simple simple work
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|
||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 13 Sep 2017 12:32:34 +0200
|
||||
Subject: [PATCH] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed
|
||||
INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 20 Oct 2017 11:29:53 +0200
|
||||
Subject: [PATCH] fs/dcache: disable preemption on i_dir_seq's write side
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
i_dir_seq is an opencoded seqcounter. Based on the code it looks like we
|
||||
could have two writers in parallel despite the fact that the d_lock is
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 07 Mar 2012 21:00:34 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Retry loops on RT might loop forever when the modifying side was
|
||||
preempted. Use cpu_chill() instead of cpu_relax() to let the system
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Sep 2016 14:35:49 +0200
|
||||
Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
|
||||
which disables preemption. As a workaround convert it to swait.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
||||
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
bit_spin_locks break under RT.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 15 Sep 2016 10:51:27 +0200
|
||||
Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The RW semaphore had a reader side which used the _non_owner version
|
||||
because it most likely took the reader lock in one thread and released it
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
||||
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
||||
replacements with a real spinlock.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Clark Williams <williams@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 13:34:30 -0500
|
||||
Subject: [PATCH] fscache: initialize cookie hash table raw spinlocks
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The
|
||||
PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sun, 16 Oct 2016 05:08:30 +0200
|
||||
Subject: [PATCH] ftrace: Fix trace header alignment
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Line up helper arrows to the right column.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
||||
Subject: trace: Add migrate-disabled counter to tracing output
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 26 Jun 2019 13:35:36 +0200
|
||||
Subject: [PATCH] futex: Delay deallocation of pi_state
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
On -RT we can't invoke kfree() in a non-preemptible context.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 26 Jun 2019 11:59:44 +0200
|
||||
Subject: [PATCH] futex: Make the futex_hash_bucket lock raw
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Since commit 1a1fb985f2e2b ("futex: Handle early deadlock return
|
||||
correctly") we can deadlock while we attempt to acquire the HB lock if
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
||||
Subject: genirq: Disable irqpoll on -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.14-rt7.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
|
||||
|
||||
Creates long latencies for no value
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user