[rt] Update to 4.19.82-rt30

This commit is contained in:
Ben Hutchings 2019-11-25 00:04:39 +00:00
parent 0965371222
commit baa617cd99
293 changed files with 3086 additions and 2136 deletions

8
debian/changelog vendored
View File

@ -1356,6 +1356,14 @@ linux (4.19.81-1) UNRELEASED; urgency=medium
[ Ben Hutchings ]
* debian/bin/genpatch-rt: Fix series generation from git
* [rt] Update to 4.19.82-rt30:
- Drop changes in "fs/dcache: disable preemption on i_dir_seq's write side"
that conflict with "Fix the locking in dcache_readdir() and friends"
- Rewrite "fs/aio: simple simple work" using kthread_work
- Rewrite "thermal: Defer thermal wakups to threads" using kthread_work
- Rewrite "block: blk-mq: move blk_queue_usage_counter_release() into
process context" using kthread_work
- workqueue: rework
-- Romain Perier <romain.perier@gmail.com> Wed, 28 Aug 2019 13:28:09 +0200

View File

@ -1,8 +1,7 @@
From 200fca9a9f123bcca859fadc996b1e40c0384269 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:18 +0200
Subject: [PATCH 001/283] ARM: at91: add TCB registers definitions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 001/290] ARM: at91: add TCB registers definitions
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b15d99032dfca622e695f10a9934c16fa8b05a0
Add registers and bits definitions for the timer counter blocks found on
Atmel ARM SoCs.
@ -205,6 +204,3 @@ index 000000000000..657e234b1483
+};
+
+#endif /* __SOC_ATMEL_TCB_H */
--
2.20.1

View File

@ -1,9 +1,8 @@
From 13e8b97c81d4029a2c41ce13ffc84507af252845 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:19 +0200
Subject: [PATCH 002/283] clocksource/drivers: Add a new driver for the Atmel
Subject: [PATCH 002/290] clocksource/drivers: Add a new driver for the Atmel
ARM TC blocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cc14d070ff9808e86cd76edc497abd71537b237
Add a driver for the Atmel Timer Counter Blocks. This driver provides a
clocksource and two clockevent devices.
@ -480,6 +479,3 @@ index 000000000000..21fbe430f91b
+ bits);
+}
+TIMER_OF_DECLARE(atmel_tcb_clksrc, "atmel,tcb-timer", tcb_clksrc_init);
--
2.20.1

View File

@ -1,9 +1,8 @@
From 108301f18eaae6fde1bf8b864d52052bdc2a7043 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:20 +0200
Subject: [PATCH 003/283] clocksource/drivers: timer-atmel-tcb: add clockevent
Subject: [PATCH 003/290] clocksource/drivers: timer-atmel-tcb: add clockevent
device on separate channel
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10269a72d7656134bd29f2ef8a4cbd4d166ac825
Add an other clockevent device that uses a separate TCB channel when
available.
@ -266,6 +265,3 @@ index 21fbe430f91b..63ce3b69338a 100644
}
}
--
2.20.1

View File

@ -1,8 +1,7 @@
From e60c9d976e3462237d2f3644c18091ac1e7746c6 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:21 +0200
Subject: [PATCH 004/283] clocksource/drivers: atmel-pit: make option silent
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 004/290] clocksource/drivers: atmel-pit: make option silent
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7573710162f30e8c45e60a62ffd20cf4027360bf
To conform with the other option, make the ATMEL_PIT option silent so it
can be selected from the platform
@ -31,6 +30,3 @@ index 0ab22e7037f4..34b07047b91f 100644
config ATMEL_ST
bool "Atmel ST timer support" if COMPILE_TEST
--
2.20.1

View File

@ -1,8 +1,7 @@
From 8cd066d01a3bc84384ba64a7521fdc80598a3418 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:22 +0200
Subject: [PATCH 005/283] ARM: at91: Implement clocksource selection
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 005/290] ARM: at91: Implement clocksource selection
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c682aaa18596b92057ac104266f0d0fefa05ef0
Allow selecting and unselecting the PIT clocksource driver so it doesn't
have to be compile when unused.
@ -50,6 +49,3 @@ index 903f23c309df..fa493a86e2bb 100644
config HAVE_AT91_UTMI
bool
--
2.20.1

View File

@ -1,8 +1,7 @@
From db6f702c9d0558505d757c28c61f4f6a567a898a Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:23 +0200
Subject: [PATCH 006/283] ARM: configs: at91: use new TCB timer driver
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 006/290] ARM: configs: at91: use new TCB timer driver
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2100311e3ae9a532f88135fe46237e09ac77c7a3
Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
timer-atmel-tcb.
@ -38,6 +37,3 @@ index 2080025556b5..f2bbc6339ca6 100644
CONFIG_ATMEL_SSC=y
CONFIG_EEPROM_AT24=y
CONFIG_SCSI=y
--
2.20.1

View File

@ -1,8 +1,7 @@
From 95cda24e3882fa19a569c029275d14089e8418e9 Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:24 +0200
Subject: [PATCH 007/283] ARM: configs: at91: unselect PIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 007/290] ARM: configs: at91: unselect PIT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09237389b9cefeb3f5e277ad4e35c5ca3b62db42
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.
@ -39,6 +38,3 @@ index f2bbc6339ca6..be92871ab155 100644
CONFIG_AEABI=y
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_ZBOOT_ROM_TEXT=0x0
--
2.20.1

View File

@ -1,9 +1,8 @@
From 44f074c1b1621cbfa2d9f8f44aa69231154399d9 Mon Sep 17 00:00:00 2001
From: Marc Zyngier <marc.zyngier@arm.com>
Date: Fri, 27 Jul 2018 13:38:54 +0100
Subject: [PATCH 008/283] irqchip/gic-v3-its: Move pending table allocation to
Subject: [PATCH 008/290] irqchip/gic-v3-its: Move pending table allocation to
init time
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0a08ef23f2e37ccaa18fb80939e9b43871e0667
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
@ -13,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2 files changed, 53 insertions(+), 28 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 65ab2c80529c..21681f0f85f4 100644
index e7549a2b1482..b68650b55b9f 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -179,6 +179,7 @@ static DEFINE_RAW_SPINLOCK(vmovp_lock);
@ -24,7 +23,7 @@ index 65ab2c80529c..21681f0f85f4 100644
#define gic_data_rdist_rd_base() (gic_data_rdist()->rd_base)
#define gic_data_rdist_vlpi_base() (gic_data_rdist_rd_base() + SZ_128K)
@@ -1631,7 +1632,7 @@ static void its_free_prop_table(struct page *prop_page)
@@ -1644,7 +1645,7 @@ static void its_free_prop_table(struct page *prop_page)
get_order(LPI_PROPBASE_SZ));
}
@ -33,7 +32,7 @@ index 65ab2c80529c..21681f0f85f4 100644
{
phys_addr_t paddr;
@@ -1979,30 +1980,47 @@ static u64 its_clear_vpend_valid(void __iomem *vlpi_base)
@@ -1992,30 +1993,47 @@ static u64 its_clear_vpend_valid(void __iomem *vlpi_base)
return val;
}
@ -96,7 +95,7 @@ index 65ab2c80529c..21681f0f85f4 100644
/* set PROPBASE */
val = (page_to_phys(gic_rdists->prop_page) |
GICR_PROPBASER_InnerShareable |
@@ -2078,6 +2096,10 @@ static void its_cpu_init_lpis(void)
@@ -2091,6 +2109,10 @@ static void its_cpu_init_lpis(void)
/* Make sure the GIC has seen the above */
dsb(sy);
@ -107,7 +106,7 @@ index 65ab2c80529c..21681f0f85f4 100644
}
static void its_cpu_init_collection(struct its_node *its)
@@ -3558,16 +3580,6 @@ static int redist_disable_lpis(void)
@@ -3570,16 +3592,6 @@ static int redist_disable_lpis(void)
u64 timeout = USEC_PER_SEC;
u64 val;
@ -124,7 +123,7 @@ index 65ab2c80529c..21681f0f85f4 100644
if (!gic_rdists_supports_plpis()) {
pr_info("CPU%d: LPIs not supported\n", smp_processor_id());
return -ENXIO;
@@ -3577,7 +3589,18 @@ static int redist_disable_lpis(void)
@@ -3589,7 +3601,18 @@ static int redist_disable_lpis(void)
if (!(val & GICR_CTLR_ENABLE_LPIS))
return 0;
@ -144,7 +143,7 @@ index 65ab2c80529c..21681f0f85f4 100644
smp_processor_id());
add_taint(TAINT_CRAP, LOCKDEP_STILL_OK);
@@ -3833,7 +3856,8 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
@@ -3845,7 +3868,8 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
}
gic_rdists = rdists;
@ -166,6 +165,3 @@ index 3188c0bef3e7..5b57501fd2e7 100644
} __percpu *rdist;
struct page *prop_page;
u64 flags;
--
2.20.1

View File

@ -1,8 +1,7 @@
From cd9320a1954642117f572891a8b45b177e6b0ebf Mon Sep 17 00:00:00 2001
From: Julia Cartwright <julia@ni.com>
Date: Fri, 28 Sep 2018 21:03:51 +0000
Subject: [PATCH 009/283] kthread: convert worker lock to raw spinlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 009/290] kthread: convert worker lock to raw spinlock
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=781154b56e9d694b817b093e6c4a22cbb0ad20d8
In order to enable the queuing of kthread work items from hardirq
context even when PREEMPT_RT_FULL is enabled, convert the worker
@ -198,6 +197,3 @@ index 087d18d771b5..5641b55783a6 100644
out:
return ret;
}
--
2.20.1

View File

@ -1,11 +1,10 @@
From d4cc8969937e548b95b4d6f40804a4b706c9b441 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Horia=20Geant=C4=83?= <horia.geanta@nxp.com>
Date: Mon, 8 Oct 2018 14:09:37 +0300
Subject: [PATCH 010/283] crypto: caam/qi - simplify CGR allocation, freeing
Subject: [PATCH 010/290] crypto: caam/qi - simplify CGR allocation, freeing
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d10c08ca4b5279cfa1f77d05dded9377191ed3f
[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]
@ -135,6 +134,3 @@ index 357b69f57072..b6c8acc30853 100644
/**
* qi_cache_alloc - Allocate buffers from CAAM-QI cache
--
2.20.1

View File

@ -1,8 +1,7 @@
From 256f2e459fd2eea3e04b6b9934f06c46e19185bb Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 7 Jan 2019 13:52:31 +0100
Subject: [PATCH 011/283] sched/fair: Robustify CFS-bandwidth timer locking
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 011/290] sched/fair: Robustify CFS-bandwidth timer locking
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1a1e9d89852d01e24232b177091911f075b64f65
Traditionally hrtimer callbacks were run with IRQs disabled, but with
the introduction of HRTIMER_MODE_SOFT it is possible they run from
@ -30,10 +29,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 4a433608ba74..289c966f907a 100644
index 32d2dac680a7..b40d8c71e335 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4557,7 +4557,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
@@ -4613,7 +4613,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
struct rq *rq = rq_of(cfs_rq);
struct rq_flags rf;
@ -42,7 +41,7 @@ index 4a433608ba74..289c966f907a 100644
if (!cfs_rq_throttled(cfs_rq))
goto next;
@@ -4574,7 +4574,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
@@ -4633,7 +4633,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
unthrottle_cfs_rq(cfs_rq);
next:
@ -51,7 +50,7 @@ index 4a433608ba74..289c966f907a 100644
if (!remaining)
break;
@@ -4590,7 +4590,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
@@ -4649,7 +4649,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b,
* period the timer is deactivated until scheduling resumes; cfs_b->idle is
* used to track this state.
*/
@ -60,7 +59,7 @@ index 4a433608ba74..289c966f907a 100644
{
u64 runtime, runtime_expires;
int throttled;
@@ -4632,11 +4632,11 @@ static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun)
@@ -4691,11 +4691,11 @@ static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun)
while (throttled && cfs_b->runtime > 0 && !cfs_b->distribute_running) {
runtime = cfs_b->runtime;
cfs_b->distribute_running = 1;
@ -74,7 +73,7 @@ index 4a433608ba74..289c966f907a 100644
cfs_b->distribute_running = 0;
throttled = !list_empty(&cfs_b->throttled_cfs_rq);
@@ -4745,17 +4745,18 @@ static __always_inline void return_cfs_rq_runtime(struct cfs_rq *cfs_rq)
@@ -4804,17 +4804,18 @@ static __always_inline void return_cfs_rq_runtime(struct cfs_rq *cfs_rq)
static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
{
u64 runtime = 0, slice = sched_cfs_bandwidth_slice();
@ -96,7 +95,7 @@ index 4a433608ba74..289c966f907a 100644
return;
}
@@ -4766,18 +4767,18 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
@@ -4825,18 +4826,18 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
if (runtime)
cfs_b->distribute_running = 1;
@ -118,7 +117,7 @@ index 4a433608ba74..289c966f907a 100644
}
/*
@@ -4857,11 +4858,12 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
@@ -4916,11 +4917,12 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
{
struct cfs_bandwidth *cfs_b =
container_of(timer, struct cfs_bandwidth, period_timer);
@ -132,7 +131,7 @@ index 4a433608ba74..289c966f907a 100644
for (;;) {
overrun = hrtimer_forward_now(timer, cfs_b->period);
if (!overrun)
@@ -4889,11 +4891,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
@@ -4948,11 +4950,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
count = 0;
}
@ -146,6 +145,3 @@ index 4a433608ba74..289c966f907a 100644
return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
}
--
2.20.1

View File

@ -1,8 +1,7 @@
From 3c866fa6b40a3acfe50a091680cd9f51a54cd45b Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700
Subject: [PATCH 012/283] arm: Convert arm boot_lock to raw
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 012/290] arm: Convert arm boot_lock to raw
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9ebc1e4c87e1febc77c492b70626744e2249c23f
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.
@ -427,6 +426,3 @@ index c2366510187a..6b60f582b738 100644
return pen_release != -1 ? -ENOSYS : 0;
}
--
2.20.1

View File

@ -1,9 +1,8 @@
From abbec8803a7e474a1e1a1b1ee105de8ffd0c8cbc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 17 Jul 2018 18:25:31 +0200
Subject: [PATCH 013/283] x86/ioapic: Don't let setaffinity unmask threaded EOI
Subject: [PATCH 013/290] x86/ioapic: Don't let setaffinity unmask threaded EOI
interrupt too early
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=269b937b10ea6588bf79b4d789c40cc5214711cf
There is an issue with threaded interrupts which are marked ONESHOT
and using the fasteoi handler.
@ -35,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index ff0d14cd9e82..c2bd6e0433f8 100644
index ab22eded61d2..91db2ec0c10a 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1722,19 +1722,20 @@ static bool io_apic_level_ack_pending(struct mp_chip_data *data)
@ -107,6 +106,3 @@ index ff0d14cd9e82..c2bd6e0433f8 100644
}
static void ioapic_ir_ack_level(struct irq_data *irq_data)
--
2.20.1

View File

@ -1,8 +1,7 @@
From 39150ca165ea6d7d6b5ffe76efb6170893ffdb06 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 18:19:48 +0200
Subject: [PATCH 014/283] cgroup: use irqsave in cgroup_rstat_flush_locked()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 014/290] cgroup: use irqsave in cgroup_rstat_flush_locked()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a46bfc03c899ec820ba9e964b1bac8ee7ffc5f2f
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
either with spin_lock_irq() or spin_lock_irqsave().
@ -45,6 +44,3 @@ index bb95a35e8c2d..3266a9781b4e 100644
/* if @may_sleep, play nice and yield if necessary */
if (may_sleep && (need_resched() ||
--
2.20.1

View File

@ -1,8 +1,7 @@
From 6c83cc3183d8efc6378788160d78a3a917a5ae96 Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com>
Date: Tue, 3 Jul 2018 13:34:30 -0500
Subject: [PATCH 015/283] fscache: initialize cookie hash table raw spinlocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 015/290] fscache: initialize cookie hash table raw spinlocks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=534df1b6875bc0ff92dc2bd5c5fcbe82f606443f
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
@ -59,6 +58,3 @@ index 84b90a79d75a..87a9330eafa2 100644
/**
* fscache_register_netfs - Register a filesystem as desiring caching services
--
2.20.1

View File

@ -1,11 +1,10 @@
From fdfc7c94f7e160bd80c27ac31c6823fbb20330f7 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 29 Aug 2018 21:59:04 +0200
Subject: [PATCH 016/283] Drivers: hv: vmbus: include header for get_irq_regs()
Subject: [PATCH 016/290] 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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=32d049f2969bf30456b5afbcf2c709e7667ee6f7
On !RT the header file get_irq_regs() gets pulled in via other header files. On
RT it does not and the build fails:
@ -35,6 +34,3 @@ index 87d3d7da78f8..1d2d8a4b837d 100644
#include "hv_trace.h"
--
2.20.1

View File

@ -1,8 +1,7 @@
From 31f7158d8389cec550de5964422b1123fc94079b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 11 Oct 2018 16:39:59 +0200
Subject: [PATCH 017/283] percpu: include irqflags.h for raw_local_irq_save()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 017/290] percpu: include irqflags.h for raw_local_irq_save()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f917aafbaad3be951578ed66aa337f869b407357
The header percpu.h header file is using raw_local_irq_save() but does
not include irqflags.h for its definition. It compiles because the
@ -28,6 +27,3 @@ index 1817a8415a5e..942d64c0476e 100644
#ifdef CONFIG_SMP
--
2.20.1

View File

@ -1,8 +1,7 @@
From fcb3ebea1da6aede14a10c28a06902043072f250 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:06:10 +0200
Subject: [PATCH 018/283] efi: Allow efi=runtime
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 018/290] efi: Allow efi=runtime
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e3cdde741d28e9a96be78eff57024bfa1807a9d
In case the option "efi=noruntime" is default at built-time, the user
could overwrite its sate by `efi=runtime' and allow it again.
@ -14,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 3 insertions(+)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index 2a29dd9c986d..ab668e17fd05 100644
index d54fca902e64..5db20908aa9c 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -113,6 +113,9 @@ static int __init parse_efi_cmdline(char *str)
@ -27,6 +26,3 @@ index 2a29dd9c986d..ab668e17fd05 100644
return 0;
}
early_param("efi", parse_efi_cmdline);
--
2.20.1

View File

@ -1,8 +1,7 @@
From 9dda6e746277e68f244d5660b5a3f3f85b0d9be0 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 24 Jul 2018 14:48:55 +0200
Subject: [PATCH 019/283] x86/efi: drop task_lock() from efi_switch_mm()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 019/290] x86/efi: drop task_lock() from efi_switch_mm()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50a52c8407c717fe21f31d5ae907a1fd3ec7fd32
efi_switch_mm() is a wrapper around switch_mm() which saves current's
->active_mm, sets the requests mm as ->active_mm and invokes
@ -50,6 +49,3 @@ index ee5d08f25ce4..e8da7f492970 100644
}
#ifdef CONFIG_EFI_MIXED
--
2.20.1

View File

@ -1,9 +1,8 @@
From b66a9f85a9e8ee817d0e2de1637bf95b7710127f Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 09:13:42 +0200
Subject: [PATCH 020/283] arm64: KVM: compute_layout before altenates are
Subject: [PATCH 020/290] arm64: KVM: compute_layout before altenates are
applied
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7cf32c5e928501c234cefb60c14a7d2516bfdd27
compute_layout() is invoked as part of an alternative fixup under
stop_machine() and needs a sleeping lock as part of get_random_long().
@ -78,6 +77,3 @@ index c712a7376bc1..792da0e125de 100644
/*
* Compute HYP VA by using the same computation as kern_hyp_va()
*/
--
2.20.1

View File

@ -1,9 +1,8 @@
From 6d0f5b28de481062ee69b0d62ae5ef2fc5101f9c Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 31 Aug 2018 14:16:30 +0200
Subject: [PATCH 021/283] of: allocate / free phandle cache outside of the
Subject: [PATCH 021/290] of: allocate / free phandle cache outside of the
devtree_lock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62698ea1b5cfaf8b88d0df4b9b1acbf8ff591dac
The phandle cache code allocates memory while holding devtree_lock which
is a raw_spinlock_t. Memory allocation (and free()) is not possible on
@ -98,6 +97,3 @@ index 3f21ea6a90dc..2c7cf83b200c 100644
}
void __init of_core_init(void)
--
2.20.1

View File

@ -1,8 +1,7 @@
From 3ec52d2ee13b6e83429a4f7a048a0005305b8033 Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com>
Date: Tue, 18 Sep 2018 10:29:31 -0500
Subject: [PATCH 022/283] mm/kasan: make quarantine_lock a raw_spinlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 022/290] mm/kasan: make quarantine_lock a raw_spinlock_t
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dea0e8e741a34a81211d1fc0eb65e8d48ed39059
The static lock quarantine_lock is used in quarantine.c to protect the
quarantine queue datastructures. It is taken inside quarantine queue
@ -93,6 +92,3 @@ index 3a8ddf8baf7d..b209dbaefde8 100644
qlist_free_all(&to_free, cache);
--
2.20.1

View File

@ -1,9 +1,8 @@
From 22ddccee8b48a817b261c98dda99967345475755 Mon Sep 17 00:00:00 2001
From: "Paul E. McKenney" <paulmck@linux.ibm.com>
Date: Mon, 29 Oct 2018 11:53:01 +0100
Subject: [PATCH 023/283] EXP rcu: Revert expedited GP parallelization
Subject: [PATCH 023/290] EXP rcu: Revert expedited GP parallelization
cleverness
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a435c0a8c0607a971d75a41cf00b45699e690cc
(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)
@ -46,6 +45,3 @@ index 0b2c2ad69629..a0486414edb4 100644
rnp->exp_need_flush = true;
}
--
2.20.1

View File

@ -1,11 +1,10 @@
From ced9290a5d8460c8a46615a475cd094bc3b0c344 Mon Sep 17 00:00:00 2001
From: He Zhe <zhe.he@windriver.com>
Date: Wed, 19 Dec 2018 16:30:57 +0100
Subject: [PATCH 024/283] kmemleak: Turn kmemleak_lock to raw spinlock on RT
Subject: [PATCH 024/290] kmemleak: Turn kmemleak_lock to raw spinlock on RT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d823b15c5b9f5edcf6111f3b480674e4c2e42847
kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and
causes the follow BUG.
@ -79,7 +78,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 72e3fb3bb037..0ed549045074 100644
index 5eeabece0c17..92ce99b15f2b 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -26,7 +26,7 @@
@ -164,6 +163,3 @@ index 72e3fb3bb037..0ed549045074 100644
}
/*
--
2.20.1

View File

@ -1,8 +1,7 @@
From e1b321401ca437984b8973749826aea3a245e15b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 28 Oct 2016 23:05:11 +0200
Subject: [PATCH 025/283] NFSv4: replace seqcount_t with a seqlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 025/290] NFSv4: replace seqcount_t with a seqlock_t
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23180e2794932f9ce1ba1e0ef1ebb6a04c9ff676
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
@ -27,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
4 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 75fe92eaa681..e8d05393443f 100644
index 825a8c52165a..c14f02b41f0d 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -152,11 +152,11 @@ static int nfs_delegation_claim_opens(struct inode *inode,
@ -36,7 +35,7 @@ index 75fe92eaa681..e8d05393443f 100644
mutex_lock(&sp->so_delegreturn_mutex);
- seq = raw_seqcount_begin(&sp->so_reclaim_seqcount);
+ seq = read_seqbegin(&sp->so_reclaim_seqlock);
err = nfs4_open_delegation_recall(ctx, state, stateid, type);
err = nfs4_open_delegation_recall(ctx, state, stateid);
if (!err)
err = nfs_delegation_claim_locks(ctx, state, stateid);
- if (!err && read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
@ -45,7 +44,7 @@ index 75fe92eaa681..e8d05393443f 100644
mutex_unlock(&sp->so_delegreturn_mutex);
put_nfs_open_context(ctx);
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index 63287d911c08..2ae55eaa4a1e 100644
index 5b61520dce88..2771aafaca19 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -114,7 +114,7 @@ struct nfs4_state_owner {
@ -58,10 +57,10 @@ index 63287d911c08..2ae55eaa4a1e 100644
};
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 1de855e0ae61..78c3f4359e76 100644
index 75faef7af22d..72abcccb8177 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2865,7 +2865,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
@@ -2873,7 +2873,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
unsigned int seq;
int ret;
@ -70,7 +69,7 @@ index 1de855e0ae61..78c3f4359e76 100644
ret = _nfs4_proc_open(opendata, ctx);
if (ret != 0)
@@ -2906,7 +2906,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
@@ -2914,7 +2914,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
if (d_inode(dentry) == state->inode) {
nfs_inode_attach_open_context(ctx);
@ -80,7 +79,7 @@ index 1de855e0ae61..78c3f4359e76 100644
}
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 3ba2087469ac..f10952680bd9 100644
index b3086e99420c..c9bf1eb7e1b2 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -515,7 +515,7 @@ nfs4_alloc_state_owner(struct nfs_server *server,
@ -92,7 +91,7 @@ index 3ba2087469ac..f10952680bd9 100644
mutex_init(&sp->so_delegreturn_mutex);
return sp;
}
@@ -1568,8 +1568,12 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
@@ -1583,8 +1583,12 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
* recovering after a network partition or a reboot from a
* server that doesn't support a grace period.
*/
@ -106,7 +105,7 @@ index 3ba2087469ac..f10952680bd9 100644
restart:
list_for_each_entry(state, &sp->so_states, open_states) {
if (!test_and_clear_bit(ops->state_flag_bit, &state->flags))
@@ -1656,14 +1660,20 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
@@ -1671,14 +1675,20 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
spin_lock(&sp->so_lock);
goto restart;
}
@ -131,6 +130,3 @@ index 3ba2087469ac..f10952680bd9 100644
return status;
}
--
2.20.1

View File

@ -1,12 +1,11 @@
From 02954bb06eedf19db3637fea6699d0dc1761b270 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 4 Apr 2017 12:50:16 +0200
Subject: [PATCH 026/283] kernel: sched: Provide a pointer to the valid CPU
Subject: [PATCH 026/290] kernel: sched: Provide a pointer to the valid CPU
mask
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e2bd8c3352b171ecbd5aaae16f7abd30a82342c
In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
@ -210,10 +209,10 @@ index bedd5fba33b0..3f4259f11a35 100644
current->pid, current->comm,
cpumask_pr_args(proc_mask));
diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c
index 88e326d6cc49..b0d01ace6611 100644
index 64ab92f8a4a2..57ec8bb829f2 100644
--- a/drivers/infiniband/hw/hfi1/sdma.c
+++ b/drivers/infiniband/hw/hfi1/sdma.c
@@ -855,14 +855,13 @@ struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
@@ -852,14 +852,13 @@ struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
{
struct sdma_rht_node *rht_node;
struct sdma_engine *sde = NULL;
@ -271,7 +270,7 @@ index 9eb99a43f849..e4d0cfebaac5 100644
static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 5dc024e28397..fdb8ba398ea8 100644
index 20f5ba262cc0..68e673278301 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -660,7 +660,8 @@ struct task_struct {
@ -284,7 +283,7 @@ index 5dc024e28397..fdb8ba398ea8 100644
#ifdef CONFIG_PREEMPT_RCU
int rcu_read_lock_nesting;
@@ -1390,7 +1391,7 @@ extern struct pid *cad_pid;
@@ -1398,7 +1399,7 @@ extern struct pid *cad_pid;
#define PF_KTHREAD 0x00200000 /* I am a kernel thread */
#define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */
#define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */
@ -321,7 +320,7 @@ index ff956ccbb6df..7bb129c5b412 100644
}
diff --git a/kernel/fork.c b/kernel/fork.c
index 69874db3fba8..98c971cb1d36 100644
index aef1430bdce0..173e010cba45 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -845,6 +845,8 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
@ -334,7 +333,7 @@ index 69874db3fba8..98c971cb1d36 100644
/*
* One for us, one for whoever does the "release_task()" (usually
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 6859ea1d5c04..d6f690064cce 100644
index 78ecdfae25b6..39bb4b3eb1bf 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -878,7 +878,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p)
@ -372,7 +371,7 @@ index 6859ea1d5c04..d6f690064cce 100644
+ if (cpumask_equal(p->cpus_ptr, new_mask))
goto out;
if (!cpumask_intersects(new_mask, cpu_valid_mask)) {
dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
@@ -1237,10 +1237,10 @@ static int migrate_swap_stop(void *data)
if (task_cpu(arg->src_task) != arg->src_cpu)
goto unlock;
@ -457,7 +456,7 @@ index 6859ea1d5c04..d6f690064cce 100644
* - any previously selected CPU might disappear through hotplug
*
* Use __set_task_cpu() to avoid calling sched_class::migrate_task_rq,
@@ -4275,7 +4275,7 @@ static int __sched_setscheduler(struct task_struct *p,
@@ -4316,7 +4316,7 @@ static int __sched_setscheduler(struct task_struct *p,
* the entire root_domain to become SCHED_DEADLINE. We
* will also fail if there's no bandwidth available.
*/
@ -466,7 +465,7 @@ index 6859ea1d5c04..d6f690064cce 100644
rq->rd->dl_bw.bw == 0) {
task_rq_unlock(rq, p, &rf);
return -EPERM;
@@ -4874,7 +4874,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask)
@@ -4915,7 +4915,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask)
goto out_unlock;
raw_spin_lock_irqsave(&p->pi_lock, flags);
@ -475,7 +474,7 @@ index 6859ea1d5c04..d6f690064cce 100644
raw_spin_unlock_irqrestore(&p->pi_lock, flags);
out_unlock:
@@ -5454,7 +5454,7 @@ int task_can_attach(struct task_struct *p,
@@ -5495,7 +5495,7 @@ int task_can_attach(struct task_struct *p,
* allowed nodes is unnecessary. Thus, cpusets are not
* applicable for such threads. This prevents checking for
* success of set_cpus_allowed_ptr() on all attached tasks
@ -484,7 +483,7 @@ index 6859ea1d5c04..d6f690064cce 100644
*/
if (p->flags & PF_NO_SETAFFINITY) {
ret = -EINVAL;
@@ -5481,7 +5481,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
@@ -5522,7 +5522,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
if (curr_cpu == target_cpu)
return 0;
@ -493,7 +492,7 @@ index 6859ea1d5c04..d6f690064cce 100644
return -EINVAL;
/* TODO: This is not properly updating schedstats */
@@ -5619,7 +5619,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
@@ -5660,7 +5660,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
put_prev_task(rq, next);
/*
@ -542,10 +541,10 @@ index daaadf939ccb..f7d2c10b4c92 100644
/*
* We have to ensure that we have at least one bit
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index 72c07059ef37..fb6e64417470 100644
index ebec37cb3be9..4b13df38c069 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -538,7 +538,7 @@ static struct rq *dl_task_offline_migration(struct rq *rq, struct task_struct *p
@@ -539,7 +539,7 @@ static struct rq *dl_task_offline_migration(struct rq *rq, struct task_struct *p
* If we cannot preempt any rq, fall back to pick any
* online CPU:
*/
@ -554,7 +553,7 @@ index 72c07059ef37..fb6e64417470 100644
if (cpu >= nr_cpu_ids) {
/*
* Failed to find any suitable CPU.
@@ -1823,7 +1823,7 @@ static void set_curr_task_dl(struct rq *rq)
@@ -1856,7 +1856,7 @@ static void set_curr_task_dl(struct rq *rq)
static int pick_dl_task(struct rq *rq, struct task_struct *p, int cpu)
{
if (!task_running(rq, p) &&
@ -563,7 +562,7 @@ index 72c07059ef37..fb6e64417470 100644
return 1;
return 0;
}
@@ -1973,7 +1973,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq)
@@ -2006,7 +2006,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq)
/* Retry if something changed. */
if (double_lock_balance(rq, later_rq)) {
if (unlikely(task_rq(task) != rq ||
@ -573,10 +572,10 @@ index 72c07059ef37..fb6e64417470 100644
!dl_task(task) ||
!task_on_rq_queued(task))) {
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 289c966f907a..0048a32a3b4d 100644
index b40d8c71e335..da5d60d25c27 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -1630,7 +1630,7 @@ static void task_numa_compare(struct task_numa_env *env,
@@ -1662,7 +1662,7 @@ static void task_numa_compare(struct task_numa_env *env,
* be incurred if the tasks were swapped.
*/
/* Skip this swap candidate if cannot move to the source cpu */
@ -585,7 +584,7 @@ index 289c966f907a..0048a32a3b4d 100644
goto unlock;
/*
@@ -1727,7 +1727,7 @@ static void task_numa_find_cpu(struct task_numa_env *env,
@@ -1760,7 +1760,7 @@ static void task_numa_find_cpu(struct task_numa_env *env,
for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) {
/* Skip this CPU if the source task cannot migrate */
@ -594,7 +593,7 @@ index 289c966f907a..0048a32a3b4d 100644
continue;
env->dst_cpu = cpu;
@@ -5741,7 +5741,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p,
@@ -5800,7 +5800,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p,
/* Skip over this group if it has no CPUs allowed */
if (!cpumask_intersects(sched_group_span(group),
@ -603,7 +602,7 @@ index 289c966f907a..0048a32a3b4d 100644
continue;
local_group = cpumask_test_cpu(this_cpu,
@@ -5873,7 +5873,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this
@@ -5932,7 +5932,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this
return cpumask_first(sched_group_span(group));
/* Traverse only the allowed CPUs */
@ -612,7 +611,7 @@ index 289c966f907a..0048a32a3b4d 100644
if (available_idle_cpu(i)) {
struct rq *rq = cpu_rq(i);
struct cpuidle_state *idle = idle_get_state(rq);
@@ -5913,7 +5913,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p
@@ -5972,7 +5972,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p
{
int new_cpu = cpu;
@ -621,7 +620,7 @@ index 289c966f907a..0048a32a3b4d 100644
return prev_cpu;
/*
@@ -6030,7 +6030,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
@@ -6089,7 +6089,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
if (!test_idle_cores(target, false))
return -1;
@ -630,7 +629,7 @@ index 289c966f907a..0048a32a3b4d 100644
for_each_cpu_wrap(core, cpus, target) {
bool idle = true;
@@ -6064,7 +6064,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t
@@ -6123,7 +6123,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t
return -1;
for_each_cpu(cpu, cpu_smt_mask(target)) {
@ -639,7 +638,7 @@ index 289c966f907a..0048a32a3b4d 100644
continue;
if (available_idle_cpu(cpu))
return cpu;
@@ -6127,7 +6127,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
@@ -6186,7 +6186,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
for_each_cpu_wrap(cpu, sched_domain_span(sd), target) {
if (!--nr)
return -1;
@ -648,7 +647,7 @@ index 289c966f907a..0048a32a3b4d 100644
continue;
if (available_idle_cpu(cpu))
break;
@@ -6164,7 +6164,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
@@ -6223,7 +6223,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
recent_used_cpu != target &&
cpus_share_cache(recent_used_cpu, target) &&
available_idle_cpu(recent_used_cpu) &&
@ -657,7 +656,7 @@ index 289c966f907a..0048a32a3b4d 100644
/*
* Replace recent_used_cpu with prev as it is a potential
* candidate for the next wake:
@@ -6382,7 +6382,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f
@@ -6441,7 +6441,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f
if (sd_flag & SD_BALANCE_WAKE) {
record_wakee(p);
want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu)
@ -666,7 +665,7 @@ index 289c966f907a..0048a32a3b4d 100644
}
rcu_read_lock();
@@ -7121,14 +7121,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
@@ -7180,14 +7180,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
/*
* We do not migrate tasks that are:
* 1) throttled_lb_pair, or
@ -683,7 +682,7 @@ index 289c966f907a..0048a32a3b4d 100644
int cpu;
schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
@@ -7148,7 +7148,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
@@ -7207,7 +7207,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
/* Prevent to re-select dst_cpu via env's CPUs: */
for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) {
@ -692,7 +691,7 @@ index 289c966f907a..0048a32a3b4d 100644
env->flags |= LBF_DST_PINNED;
env->new_dst_cpu = cpu;
break;
@@ -7745,7 +7745,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd)
@@ -7804,7 +7804,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd)
/*
* Group imbalance indicates (and tries to solve) the problem where balancing
@ -701,7 +700,7 @@ index 289c966f907a..0048a32a3b4d 100644
*
* 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.
@@ -8360,7 +8360,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env)
@@ -8419,7 +8419,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env)
/*
* If the busiest group is imbalanced the below checks don't
* work because they assume all things are equal, which typically
@ -710,7 +709,7 @@ index 289c966f907a..0048a32a3b4d 100644
*/
if (busiest->group_type == group_imbalanced)
goto force_balance;
@@ -8756,7 +8756,7 @@ static int load_balance(int this_cpu, struct rq *this_rq,
@@ -8815,7 +8815,7 @@ static int load_balance(int this_cpu, struct rq *this_rq,
* if the curr task on busiest CPU can't be
* moved to this_cpu:
*/
@ -742,10 +741,10 @@ index b980cc96604f..b6ca4a630050 100644
!rt_task(task) ||
!task_on_rq_queued(task))) {
diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c
index 1e6db9cbe4dc..fa95139445b2 100644
index 8030e24dbf14..862f4b0139fc 100644
--- a/kernel/trace/trace_hwlat.c
+++ b/kernel/trace/trace_hwlat.c
@@ -277,7 +277,7 @@ static void move_to_next_cpu(void)
@@ -279,7 +279,7 @@ static void move_to_next_cpu(void)
* of this thread, than stop migrating for the duration
* of the current test.
*/
@ -780,6 +779,3 @@ index 5522692100ba..8b4be8e1802a 100644
trace_foo_with_template_simple("HELLO", cnt);
--
2.20.1

View File

@ -1,8 +1,7 @@
From bda814671dc9f9f74cabd99a65cad3101b68ee83 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200
Subject: [PATCH 027/283] kernel/sched/core: add migrate_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 027/290] kernel/sched/core: add migrate_disable()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70a9ac89b97eb9275f3eb6d7adbba77ddd059fee
---
include/linux/preempt.h | 23 +++++++
@ -54,7 +53,7 @@ index c01813c3fbe9..3196d0e76719 100644
#ifdef MODULE
diff --git a/include/linux/sched.h b/include/linux/sched.h
index fdb8ba398ea8..df39ad5916e7 100644
index 68e673278301..038d0faaa1d5 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -662,6 +662,13 @@ struct task_struct {
@ -86,7 +85,7 @@ index 9fb239e12b82..5801e516ba63 100644
* Callback to arch code if there's nosmp or maxcpus=0 on the
* boot command line:
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d6f690064cce..b658f0147c3b 100644
index 39bb4b3eb1bf..1a1ffb873d22 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1008,7 +1008,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
@ -127,7 +126,7 @@ index d6f690064cce..b658f0147c3b 100644
/*
* Change a given task's CPU affinity. Migrate the thread to a
* proper CPU and schedule it away if the CPU it's executing on
@@ -1095,9 +1117,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
@@ -1096,9 +1118,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
}
/* Can the task run on the task's current CPU? If so, we're done */
@ -142,10 +141,10 @@ index d6f690064cce..b658f0147c3b 100644
+ }
+#endif
+
dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
if (task_running(rq, p) || p->state == TASK_WAKING) {
struct migration_arg arg = { p, dest_cpu };
@@ -7067,3 +7096,100 @@ const u32 sched_prio_to_wmult[40] = {
/* Need help from migration thread: drop lock and wait. */
@@ -7104,3 +7133,100 @@ const u32 sched_prio_to_wmult[40] = {
};
#undef CREATE_TRACE_POINTS
@ -261,6 +260,3 @@ index 78fadf0438ea..5027158d3908 100644
#undef PN_SCHEDSTAT
#undef PN
#undef __PN
--
2.20.1

View File

@ -1,9 +1,8 @@
From 6fb56185df42e49e0e2d8fe12d315356a57f4bce Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 9 Oct 2018 17:34:50 +0200
Subject: [PATCH 028/283] sched/migrate_disable: Add export_symbol_gpl for
Subject: [PATCH 028/290] sched/migrate_disable: Add export_symbol_gpl for
__migrate_disabled
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ef09fdabc9d1ade69d87d4d674857172b6d172ee
Jonathan reported that lttng/modules can't use __migrate_disabled().
This function is only used by sched/core itself and the tracing
@ -22,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index b658f0147c3b..7a39d56f6a6b 100644
index 1a1ffb873d22..a33c2c18628d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1013,6 +1013,7 @@ int __migrate_disabled(struct task_struct *p)
@ -33,6 +32,3 @@ index b658f0147c3b..7a39d56f6a6b 100644
#endif
static void __do_set_cpus_allowed_tail(struct task_struct *p,
--
2.20.1

View File

@ -1,8 +1,7 @@
From 35e0294d43f7c53bdb7ecba19df0710037d888ec Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 9 Mar 2016 10:51:06 +0100
Subject: [PATCH 029/283] 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.59-rt24.tar.xz
Subject: [PATCH 029/290] arm: at91: do not disable/enable clocks in a row
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=619e4305a3a3a2296ec9a1fc32f84fb09a12f555
Currently the driver will disable the clock and enable it one line later
if it is switching from periodic mode into one shot.
@ -93,6 +92,3 @@ index 43f4d5c4d6fa..de6baf564dfe 100644
.set_state_periodic = tc_set_periodic,
.set_state_oneshot = tc_set_oneshot,
},
--
2.20.1

View File

@ -1,12 +1,11 @@
From 4d4322de76f7b52df1529acfc6e5fc46e25761f1 Mon Sep 17 00:00:00 2001
From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100
Subject: [PATCH 030/283] clocksource: TCLIB: Allow higher clock rates for
Subject: [PATCH 030/290] clocksource: TCLIB: Allow higher clock rates for
clock events
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8abf3e475b2921798e61e686140e077146360f1a
As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution.
@ -165,6 +164,3 @@ index 3726eacdf65d..0900dec7ec04 100644
config DUMMY_IRQ
tristate "Dummy IRQ handler"
default n
--
2.20.1

View File

@ -1,8 +1,7 @@
From 64f770d93319861d308ce265a4389e4ca0a6ed5f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Feb 2013 22:36:59 +0100
Subject: [PATCH 031/283] timekeeping: Split jiffies seqlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 031/290] timekeeping: Split jiffies seqlock
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37dae8435d79cbcc247b536cb16f55db30295418
Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so
it can be taken in atomic context on RT.
@ -136,7 +135,7 @@ index 5b33e2f5c0ed..54fd344ef973 100644
ts->timer_expires_base = basemono;
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 443edcddac8a..0517bc42c6b6 100644
index c2708e1f0c69..13477f8ee80e 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -2418,8 +2418,10 @@ EXPORT_SYMBOL(hardpps);
@ -166,6 +165,3 @@ index 141ab3ab0354..099737f6f10c 100644
#define CS_NAME_LEN 32
--
2.20.1

View File

@ -1,8 +1,7 @@
From 8cf90f7e58f51438a7ec0e4e704918afaa450ff1 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 21 Sep 2011 19:57:12 +0200
Subject: [PATCH 032/283] signal: Revert ptrace preempt magic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 032/290] signal: Revert ptrace preempt magic
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34b289f78753746be46c707628324cd79730dac2
Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more
than a bandaid around the ptrace design trainwreck. It's not a
@ -33,6 +32,3 @@ index 0e6bc3049427..d5a9646b3538 100644
freezable_schedule();
} else {
/*
--
2.20.1

View File

@ -1,8 +1,7 @@
From 882c4f88db8d6179773dc733e794fa504aef75e3 Mon Sep 17 00:00:00 2001
From: Marc Kleine-Budde <mkl@pengutronix.de>
Date: Wed, 5 Mar 2014 00:49:47 +0100
Subject: [PATCH 033/283] net: sched: Use msleep() instead of yield()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 033/290] net: sched: Use msleep() instead of yield()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e83295f1ca6355381c6d506047d641e9e607c96f
On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50
(by default). If a high priority userspace process tries to shut down a busy
@ -47,10 +46,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 77b289da7763..31b9c2b415b4 100644
index 30e32df5f84a..0b9c494f64b0 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1183,7 +1183,7 @@ void dev_deactivate_many(struct list_head *head)
@@ -1192,7 +1192,7 @@ void dev_deactivate_many(struct list_head *head)
/* Wait for outstanding qdisc_run calls. */
list_for_each_entry(dev, head, close_list) {
while (some_qdisc_is_busy(dev))
@ -59,6 +58,3 @@ index 77b289da7763..31b9c2b415b4 100644
/* The new qdisc is assigned at this point so we can safely
* unwind stale skb lists and qdisc statistics
*/
--
2.20.1

View File

@ -1,8 +1,7 @@
From ea6d238547b58b5fe9ce953cd818ef8bf6cb8915 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 27 Mar 2018 16:24:15 +0200
Subject: [PATCH 034/283] dm rq: remove BUG_ON(!irqs_disabled) check
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 034/290] dm rq: remove BUG_ON(!irqs_disabled) check
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4b547ae7869e0ca0380a53cde929e51ecbdc173
In commit 052189a2ec95 ("dm: remove superfluous irq disablement in
dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a
@ -21,10 +20,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 deletion(-)
diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c
index 6e547b8dd298..29736c7e5f1f 100644
index 4d36373e1c0f..12ed08245130 100644
--- a/drivers/md/dm-rq.c
+++ b/drivers/md/dm-rq.c
@@ -688,7 +688,6 @@ static void dm_old_request_fn(struct request_queue *q)
@@ -692,7 +692,6 @@ static void dm_old_request_fn(struct request_queue *q)
/* Establish tio->ti before queuing work (map_tio_request) */
tio->ti = ti;
kthread_queue_work(&md->kworker, &tio->work);
@ -32,6 +31,3 @@ index 6e547b8dd298..29736c7e5f1f 100644
}
}
--
2.20.1

View File

@ -1,8 +1,7 @@
From b91ae27f3efa2e15087397591db35dd1d11f5120 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Nov 2013 17:34:54 +0100
Subject: [PATCH 035/283] usb: do no disable interrupts in giveback
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 035/290] usb: do no disable interrupts in giveback
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=086a63b5d6cc385539d96fb77b65eeb281dbd552
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") the USB code disables interrupts before invoking the complete
@ -41,6 +40,3 @@ index b82a7d787add..2f3015356124 100644
usb_anchor_resume_wakeups(anchor);
atomic_dec(&urb->use_count);
--
2.20.1

View File

@ -1,8 +1,7 @@
From 79f8ad95ffc5f1cd2ac721ab3d01291d4ad055df Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 12:39:57 +0200
Subject: [PATCH 036/283] rt: Provide PREEMPT_RT_BASE config switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 036/290] rt: Provide PREEMPT_RT_BASE config switch
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b6f0b1d09976635e464aa63be521f1f6f63e35d
Introduce PREEMPT_RT_BASE which enables parts of
PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT
@ -59,6 +58,3 @@ index cd1655122ec0..027db5976c2f 100644
- bool
\ No newline at end of file
+ bool
--
2.20.1

View File

@ -1,8 +1,7 @@
From 75df679c581581978487f6f6de91bf86a9f72e7c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100
Subject: [PATCH 037/283] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 037/290] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2efd4a4df8085c42c4a8bb8d74f1a6a566adc67a
There are "valid" GFP_ATOMIC allocations such as
@ -71,6 +70,3 @@ index a3928d4438b5..a50b2158f7cd 100644
help
Use dynamic allocation for cpumask_var_t, instead of putting
them on the stack. This is a bit more expensive, but avoids
--
2.20.1

View File

@ -1,8 +1,7 @@
From b5d77d6b4b4bcead77cd720e8a93f4ae78420034 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Jul 2015 17:14:48 +0200
Subject: [PATCH 038/283] jump-label: disable if stop_machine() is used
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 038/290] jump-label: disable if stop_machine() is used
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=77b2c3f7bbf3d862529e075933f0e7a6f8613c53
Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes.
@ -25,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 51794c7fa6d5..7d11242a37d2 100644
index 185e552f1461..84f36e47e3ab 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -51,7 +51,7 @@ config ARM
@ -37,6 +36,3 @@ index 51794c7fa6d5..7d11242a37d2 100644
select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
select HAVE_ARCH_MMAP_RND_BITS if MMU
select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
--
2.20.1

View File

@ -1,9 +1,8 @@
From 94fd428643474b867a8cac432d7d911a5250c367 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200
Subject: [PATCH 039/283] kconfig: Disable config options which are not RT
Subject: [PATCH 039/290] kconfig: Disable config options which are not RT
compatible
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=164a36eb11cebfda8c6eb1f79beb2a31e4dd9ce2
Disable stuff which is known to have issues on RT
@ -38,6 +37,3 @@ index b457e94ae618..0dddbb2a3282 100644
select COMPACTION
select RADIX_TREE_MULTIORDER
help
--
2.20.1

View File

@ -1,11 +1,10 @@
From 1a9e9b418236c18717a91955eeafe5bd72a00598 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 17 Oct 2017 16:36:18 +0200
Subject: [PATCH 040/283] lockdep: disable self-test
Subject: [PATCH 040/290] lockdep: disable self-test
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bff275d06e885f7b51dbac8b2e93867616852378
The self-test wasn't always 100% accurate for RT. We disabled a few
tests which failed because they had a different semantic for RT. Some
@ -18,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 3dea52f7be9c..1504e6aa8418 100644
index 46a910acce3f..38cf7f81daa7 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1207,7 +1207,7 @@ config DEBUG_ATOMIC_SLEEP
@ -30,6 +29,3 @@ index 3dea52f7be9c..1504e6aa8418 100644
help
Say Y here if you want the kernel to run a short self-test during
bootup. The self-test checks whether common types of locking bugs
--
2.20.1

View File

@ -1,8 +1,7 @@
From 75102ff5e253e5ababc30c7512e0c07f2b7dc297 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:44:03 -0500
Subject: [PATCH 041/283] mm: Allow only slub on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 041/290] mm: Allow only slub on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f04e50899757b5f50979fa506c88bd78d17c49b6
Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.
@ -32,6 +31,3 @@ index 47035b5a46f6..ae9a0113a699 100644
help
SLOB replaces the stock allocator with a drastically simpler
allocator. SLOB is generally more space efficient but
--
2.20.1

View File

@ -1,11 +1,10 @@
From 32697a0be9afdc5c631cc3d232a298b5880ed65c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:51:45 +0200
Subject: [PATCH 042/283] locking: Disable spin on owner for RT
Subject: [PATCH 042/290] locking: Disable spin on owner for RT
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb7c18e5a29066807df152c5b7d6cd2cf66e0301
Drop spin on owner for mutex / rwsem. We are most likely not using it
but…
@ -33,6 +32,3 @@ index 84d882f3e299..af27c4000812 100644
config LOCK_SPIN_ON_OWNER
def_bool y
--
2.20.1

View File

@ -1,8 +1,7 @@
From 708879e986c1b552ee69d6444b808a196bba0f5f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 28 Oct 2012 13:26:09 +0000
Subject: [PATCH 043/283] rcu: Disable RCU_FAST_NO_HZ on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 043/290] rcu: Disable RCU_FAST_NO_HZ on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c69674f542d0ccc839ba5282f2b24945882abb93
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
@ -25,6 +24,3 @@ index 9210379c0353..644264be90f0 100644
default n
help
This option permits CPUs to enter dynticks-idle state even if
--
2.20.1

View File

@ -1,8 +1,7 @@
From a14822b6d5fcc441064faf3edc2f91b5d461e703 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Mar 2014 20:19:05 +0100
Subject: [PATCH 044/283] rcu: make RCU_BOOST default on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 044/290] rcu: make RCU_BOOST default on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce85f19c79e9234d764888e74dc2e4e49b3a3da6
Since it is no longer invoked from the softirq people run into OOM more
often if the priority of the RCU thread is too low. Making boosting
@ -29,6 +28,3 @@ index 644264be90f0..a243a78ff38c 100644
help
This option boosts the priority of preempted RCU readers that
block the current preemptible RCU grace period for too long.
--
2.20.1

View File

@ -1,8 +1,7 @@
From 36c33c65b461082612dffa7be01862b7bd55270e Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:03:52 +0200
Subject: [PATCH 045/283] sched: Disable CONFIG_RT_GROUP_SCHED on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 045/290] sched: Disable CONFIG_RT_GROUP_SCHED on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08989e0969de7b6c4727eb2a32f7c1aaa194708f
Carsten reported problems when running:
@ -30,6 +29,3 @@ index ae9a0113a699..61e8b531649b 100644
default n
help
This feature lets you explicitly allocate real CPU bandwidth
--
2.20.1

View File

@ -1,11 +1,10 @@
From f2b7e396c43d3607ee0a0090c7470da50f833e93 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200
Subject: [PATCH 046/283] net/core: disable NET_RX_BUSY_POLL
Subject: [PATCH 046/290] net/core: disable NET_RX_BUSY_POLL
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86b04e83f0deb1dce266ca11efb35281d2d76566
sk_busy_loop() does preempt_disable() followed by a few operations which can
take sleeping locks and may get long.
@ -33,6 +32,3 @@ index 228dfa382eec..bc8d01996f22 100644
config BQL
bool
--
2.20.1

View File

@ -1,8 +1,7 @@
From 477660c22f2036e69299438b1292307ee1dba46b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 1 Dec 2017 10:42:03 +0100
Subject: [PATCH 047/283] arm*: disable NEON in kernel mode
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 047/290] arm*: disable NEON in kernel mode
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0a5f99c6726ff40c5f1173b951484e2b41d527a
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
@ -21,10 +20,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7d11242a37d2..e122dd212ab3 100644
index 84f36e47e3ab..c1cc28f0841f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2162,7 +2162,7 @@ config NEON
@@ -2163,7 +2163,7 @@ config NEON
config KERNEL_MODE_NEON
bool "Support for NEON in kernel mode"
@ -161,6 +160,3 @@ index 34b4e3d46aab..ae055cdad8cf 100644
crc32_pmull_algs[0].update = crc32_pmull_update;
crc32_pmull_algs[1].update = crc32c_pmull_update;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 297ef639cbc4bc3aac2e5a8835090136753796fc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
Subject: [PATCH 048/283] powerpc: Use generic rwsem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 048/290] powerpc: Use generic rwsem on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=58d37daded0023f403aec29501462e8499eeb016
Use generic code which uses rtmutex
@ -28,6 +27,3 @@ index a80669209155..9952764db9c5 100644
config GENERIC_LOCKBREAK
bool
--
2.20.1

View File

@ -1,9 +1,8 @@
From 3bead4e3fc7560659c1982ace99de374aa9df79c Mon Sep 17 00:00:00 2001
From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Date: Fri, 24 Apr 2015 15:53:13 +0000
Subject: [PATCH 049/283] powerpc/kvm: Disable in-kernel MPIC emulation for
Subject: [PATCH 049/290] powerpc/kvm: Disable in-kernel MPIC emulation for
PREEMPT_RT_FULL
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98667cc1926223ba114f4e52611633d0d8f0af87
While converting the openpic emulation code to use a raw_spinlock_t enables
guests to run on RT, there's still a performance issue. For interrupts sent in
@ -40,6 +39,3 @@ index 68a0e9d5b440..6f4d5d7615af 100644
select HAVE_KVM_IRQCHIP
select HAVE_KVM_IRQFD
select HAVE_KVM_IRQ_ROUTING
--
2.20.1

View File

@ -1,8 +1,7 @@
From ae9000e3c66794249fbca61b8a71bcdf690910e0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:08:34 +0200
Subject: [PATCH 050/283] powerpc: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 050/290] powerpc: Disable highmem on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=648dcdb872f08b4c6a613140a10ee3eb6df95ed6
The current highmem handling on -RT is not compatible and needs fixups.
@ -24,6 +23,3 @@ index 9952764db9c5..1563820a37e8 100644
source kernel/Kconfig.hz
--
2.20.1

View File

@ -1,8 +1,7 @@
From 454e636edd0bb26495afb3850a37aa5e5214a4ed Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:10:12 +0200
Subject: [PATCH 051/283] mips: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 051/290] mips: Disable highmem on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10a1793ef40f4036a0b0c4c51e9fcdc1899e64ba
The current highmem handling on -RT is not compatible and needs fixups.
@ -24,6 +23,3 @@ index 201caf226b47..bd268302efa4 100644
config CPU_SUPPORTS_HIGHMEM
bool
--
2.20.1

View File

@ -1,8 +1,7 @@
From 5c86aec91ae10f140d18bd33cd62783cdde0922d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 26 Jul 2009 02:21:32 +0200
Subject: [PATCH 052/283] x86: Use generic rwsem_spinlocks on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 052/290] x86: Use generic rwsem_spinlocks on -rt
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b707497d459b106def4745d5274422c62423fa7
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
@ -29,6 +28,3 @@ index 04a45d6d0167..1b05ae86bdde 100644
config GENERIC_CALIBRATE_DELAY
def_bool y
--
2.20.1

View File

@ -1,8 +1,7 @@
From 9cd1a715d85ace3e9b1d3ae703eb16744dd3ebb6 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 23 Jan 2014 14:45:59 +0100
Subject: [PATCH 053/283] leds: trigger: disable CPU trigger on -RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 053/290] leds: trigger: disable CPU trigger on -RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07924b23a92cab26f6271e8fb312ab8062dd29a6
as it triggers:
|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141
@ -36,6 +35,3 @@ index 4018af769969..b4ce8c115949 100644
help
This allows LEDs to be controlled by active CPUs. This shows
the active CPUs across an array of LEDs so you can see which
--
2.20.1

View File

@ -1,8 +1,7 @@
From f19ffb87fe48ba1e8904df670b13d52f8b9c08f1 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 9 Apr 2015 15:23:01 +0200
Subject: [PATCH 054/283] cpufreq: drop K8's driver from beeing selected
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 054/290] cpufreq: drop K8's driver from beeing selected
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c05ad13cbd22842369324d73f538911d319b97b3
Ralf posted a picture of a backtrace from
@ -34,6 +33,3 @@ index 35f71825b7f3..bb4a6160d0f7 100644
help
This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
Support for K10 and newer processors is now in acpi-cpufreq.
--
2.20.1

View File

@ -1,11 +1,10 @@
From 3b1c3bc41b87cd7a714ebfa5e88651d4f3326f2e Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 29 Aug 2013 11:48:57 +0200
Subject: [PATCH 055/283] md: disable bcache
Subject: [PATCH 055/290] md: disable bcache
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57bf213cf62320f7d35e01f133973d9f37d06f82
It uses anon semaphores
|drivers/md/bcache/request.c: In function cached_dev_write_complete:
@ -36,6 +35,3 @@ index f6e0a8b3a61e..18c03d79a442 100644
select CRC64
help
Allows a block device to be used as cache for other devices; uses
--
2.20.1

View File

@ -1,8 +1,7 @@
From f0e7a6e0f76d2ab27a0c5ef0f7872d971ec1dd23 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:03:16 +0200
Subject: [PATCH 056/283] efi: Disable runtime services on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 056/290] efi: Disable runtime services on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9d785862624bbbe2fd77ed8c7e1026b21c498f0
Based on meassurements the EFI functions get_variable /
get_next_variable take up to 2us which looks okay.
@ -29,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index ab668e17fd05..f58ab9ed4ade 100644
index 5db20908aa9c..1708505fdf5d 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -87,7 +87,7 @@ struct mm_struct efi_mm = {
@ -41,6 +40,3 @@ index ab668e17fd05..f58ab9ed4ade 100644
static int __init setup_noefi(char *arg)
{
disable_runtime = true;
--
2.20.1

View File

@ -1,8 +1,7 @@
From d1e9e20fe16f16a1665eabaa44a0f1c2a4cebfec Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 22 Jul 2011 17:58:40 +0200
Subject: [PATCH 057/283] printk: Add a printk kill switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 057/290] printk: Add a printk kill switch
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d031b0863f46321ad8e8e7f1a8131c4703f9f006
Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
it does not dead-lock with the early printk code.
@ -31,7 +30,7 @@ index cf3eccfe1543..30ebf5f82a7c 100644
#ifdef CONFIG_PRINTK_NMI
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 06045abd1887..413160a93814 100644
index d0d03223b45b..289605ff56e8 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -405,6 +405,58 @@ DEFINE_RAW_SPINLOCK(logbuf_lock);
@ -169,6 +168,3 @@ index 71381168dede..685443375dc0 100644
if (hardlockup_panic)
nmi_panic(regs, "Hard LOCKUP");
--
2.20.1

View File

@ -1,9 +1,8 @@
From 3d881bc012788bea38e0bf55b03d9996eb40b1b9 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 2 Sep 2011 14:41:29 +0200
Subject: [PATCH 058/283] printk: Add "force_early_printk" boot param to help
Subject: [PATCH 058/290] printk: Add "force_early_printk" boot param to help
with debugging
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e71d5b7d64fa1dd11f7ef2a2bd482f704d6de200
Gives me an option to screw printk and actually see what the machine
says.
@ -17,7 +16,7 @@ Link: http://lkml.kernel.org/n/tip-ykb97nsfmobq44xketrxs977@git.kernel.org
1 file changed, 7 insertions(+)
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 413160a93814..6553508ff388 100644
index 289605ff56e8..210cdac1458d 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -435,6 +435,13 @@ asmlinkage void early_printk(const char *fmt, ...)
@ -34,6 +33,3 @@ index 413160a93814..6553508ff388 100644
void printk_kill(void)
{
printk_killswitch = true;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 6a3ec551d9ea7e49f20d8f9d3d45fb8d9ca1b720 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jul 2009 12:38:56 +0200
Subject: [PATCH 059/283] preempt: Provide preempt_*_(no)rt variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 059/290] preempt: Provide preempt_*_(no)rt variants
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05ad3e257a527d9072919b02e0cff6078055eed0
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
@ -48,6 +47,3 @@ index 3196d0e76719..f7a17fcc3fec 100644
#ifdef CONFIG_PREEMPT_NOTIFIERS
struct preempt_notifier;
--
2.20.1

View File

@ -1,9 +1,8 @@
From 02487d0393920e03426a2378e40bc7547193c3aa Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Mar 2017 14:23:35 +0100
Subject: [PATCH 060/283] futex: workaround migrate_disable/enable in different
Subject: [PATCH 060/290] futex: workaround migrate_disable/enable in different
context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5182d12b0ac95cf21c3206e06142566001edacc6
migrate_disable()/migrate_enable() takes a different path in atomic() vs
!atomic() context. These little hacks ensure that we don't underflow / overflow
@ -65,6 +64,3 @@ index afdc5eadce6e..304f07d08c95 100644
put_pi_state(pi_state);
/*
--
2.20.1

View File

@ -1,8 +1,7 @@
From 1e4195bafdb198d778c98aece678c7b16cd035c8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 20 Jun 2011 09:03:47 +0200
Subject: [PATCH 061/283] rt: Add local irq locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 061/290] rt: Add local irq locks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed800ca05696e34346bf329c70ad735f9661075b
Introduce locallock. For !RT this maps to preempt_disable()/
local_irq_disable() so there is not much that changes. For RT this will
@ -336,6 +335,3 @@ index 70b7123f38c7..24421bf8c4b3 100644
/* minimum unit size, also is the maximum supported allocation size */
#define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
--
2.20.1

View File

@ -1,8 +1,7 @@
From 58ee9341c0c3521cdb41239c83807a98cef97bd0 Mon Sep 17 00:00:00 2001
From: Julia Cartwright <julia@ni.com>
Date: Mon, 7 May 2018 08:58:56 -0500
Subject: [PATCH 062/283] locallock: provide {get,put}_locked_ptr() variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 062/290] locallock: provide {get,put}_locked_ptr() variants
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7c12c0b218da8cddfca3155c6481e425552bd89
Provide a set of locallocked accessors for pointers to per-CPU data;
this is useful for dynamically-allocated per-CPU regions, for example.
@ -44,6 +43,3 @@ index d658c2552601..921eab83cd34 100644
#define local_lock_cpu(lvar) get_cpu()
#define local_unlock_cpu(lvar) put_cpu()
--
2.20.1

View File

@ -1,8 +1,7 @@
From a6c38f0b349a8921a1bfe4dcef5972cf1e2224a0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:34 -0500
Subject: [PATCH 063/283] mm/scatterlist: Do not disable irqs on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 063/290] mm/scatterlist: Do not disable irqs on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be6d4affd5215ceaca4642942e1914cb32b9f6e2
For -RT it is enough to keep pagefault disabled (which is currently handled by
kmap_atomic()).
@ -13,10 +12,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 7c6096a71704..5c2c68962709 100644
index 8c3036c37ba0..336162c2813f 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -776,7 +776,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter)
@@ -777,7 +777,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter)
flush_kernel_dcache_page(miter->page);
if (miter->__flags & SG_MITER_ATOMIC) {
@ -25,6 +24,3 @@ index 7c6096a71704..5c2c68962709 100644
kunmap_atomic(miter->addr);
} else
kunmap(miter->page);
--
2.20.1

View File

@ -1,8 +1,7 @@
From f994c5279fb1173131e67419c540713cd25a59e3 Mon Sep 17 00:00:00 2001
From: Oleg Nesterov <oleg@redhat.com>
Date: Tue, 14 Jul 2015 14:26:34 +0200
Subject: [PATCH 064/283] signal/x86: Delay calling signals in atomic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 064/290] signal/x86: Delay calling signals in atomic
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=43a0a930bf46705aab6bab3928e1644575a02148
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
@ -80,7 +79,7 @@ index 33d3c88a7225..fb0438d06ca7 100644
typedef sigset_t compat_sigset_t;
#endif
diff --git a/include/linux/sched.h b/include/linux/sched.h
index df39ad5916e7..535e57775208 100644
index 038d0faaa1d5..c87c11bfd9d9 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -881,6 +881,10 @@ struct task_struct {
@ -149,6 +148,3 @@ index d5a9646b3538..56edb0580a3a 100644
/*
* Nuke all other threads in the group.
*/
--
2.20.1

View File

@ -1,8 +1,7 @@
From 77f58646e4722365c6b6b91802d5feddd57dff34 Mon Sep 17 00:00:00 2001
From: Yang Shi <yang.shi@linaro.org>
Date: Thu, 10 Dec 2015 10:58:51 -0800
Subject: [PATCH 065/283] x86/signal: delay calling signals on 32bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 065/290] x86/signal: delay calling signals on 32bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dd9ded5353246ce29f11b52eb93e640de36c8ef7
When running some ptrace single step tests on x86-32 machine, the below problem
is triggered:
@ -44,6 +43,3 @@ index fb0438d06ca7..c00e27af2205 100644
#define ARCH_RT_DELAYS_SIGNAL_SEND
#endif
--
2.20.1

View File

@ -1,8 +1,7 @@
From 86a1cbd4eddbe083ad0331f0eeec002f6fa7b322 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100
Subject: [PATCH 066/283] buffer_head: Replace bh_uptodate_lock for -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 066/290] buffer_head: Replace bh_uptodate_lock for -rt
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce9849ace4af19ce619849a3e33f1569442832c3
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
@ -192,6 +191,3 @@ index 96225a77c112..8a1bcfb145d7 100644
/*
* macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
* and buffer_foo() functions.
--
2.20.1

View File

@ -1,9 +1,8 @@
From a0ac5bf9b179bff5745bd4c15d14cb2ec5c81c16 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100
Subject: [PATCH 067/283] fs: jbd/jbd2: Make state lock and journal head lock
Subject: [PATCH 067/290] 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.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b440221d5e434ba95db2a0b09d00162e95b55d93
bit_spin_locks break under RT.
@ -45,7 +44,7 @@ index 8a1bcfb145d7..5869330d1f38 100644
}
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 583b82b5a1e9..57f4ad8d45a5 100644
index 1cf1b9b8e975..2e3266736094 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -347,32 +347,56 @@ static inline struct journal_head *bh2jh(struct buffer_head *bh)
@ -105,6 +104,3 @@ index 583b82b5a1e9..57f4ad8d45a5 100644
}
#define J_ASSERT(assert) BUG_ON(!(assert))
--
2.20.1

View File

@ -1,8 +1,7 @@
From 575440eb3e514693de4892b3589bd02b584834ef Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Fri, 21 Jun 2013 15:07:25 -0400
Subject: [PATCH 068/283] list_bl: Make list head locking RT safe
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 068/290] list_bl: Make list head locking RT safe
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7de4956b65f4b43f98eca7ecd5400c01df56ba53
As per changes in include/linux/jbd_common.h for avoiding the
bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal
@ -116,6 +115,3 @@ index 3fc2cc57ba1b..69b659259bac 100644
}
static inline bool hlist_bl_is_locked(struct hlist_bl_head *b)
--
2.20.1

View File

@ -1,8 +1,7 @@
From 386260fdddeed151902355b8c816f9b166c1c2b8 Mon Sep 17 00:00:00 2001
From: Josh Cartwright <joshc@ni.com>
Date: Thu, 31 Mar 2016 00:04:25 -0500
Subject: [PATCH 069/283] list_bl: fixup bogus lockdep warning
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 069/290] list_bl: fixup bogus lockdep warning
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f7a92e93b3e1260267a4fbe03c549dbe23303fe
At first glance, the use of 'static inline' seems appropriate for
INIT_HLIST_BL_HEAD().
@ -99,6 +98,3 @@ index 69b659259bac..0b5de7d9ffcf 100644
static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
{
--
2.20.1

View File

@ -1,8 +1,7 @@
From d884d2bff2d643468c5e37727aa29e8f5c88b3be Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500
Subject: [PATCH 070/283] genirq: Disable irqpoll on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 070/290] genirq: Disable irqpoll on -rt
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=470aeaaf1d6efae4d4a409a9d8143c408474f8b7
Creates long latencies for no value
@ -38,6 +37,3 @@ index d867d6ddafdd..cd12ee86c01e 100644
irqfixup = 2;
printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
"enabled\n");
--
2.20.1

View File

@ -1,8 +1,7 @@
From 91f768aed73cc93826112811b4e622dce0c1915f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 3 Apr 2011 11:57:29 +0200
Subject: [PATCH 071/283] genirq: Force interrupt thread on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 071/290] genirq: Force interrupt thread on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e83f2ae9e4c5b28fb9364ca7ee72d3f721f7f4ef
Force threaded_irqs and optimize the code (force_irqthreads) in regard
to this.
@ -13,9 +12,11 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/manage.c | 2 ++
2 files changed, 6 insertions(+)
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index eeceac3376fc..315f852b4981 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -427,7 +427,11 @@ extern int irq_set_irqchip_state(unsigne
@@ -427,7 +427,11 @@ extern int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which,
bool state);
#ifdef CONFIG_IRQ_FORCED_THREADING
@ -27,6 +28,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#else
#define force_irqthreads (0)
#endif
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 23bcfa71077f..3c26d0708709 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -24,6 +24,7 @@
@ -37,7 +40,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
__read_mostly bool force_irqthreads;
EXPORT_SYMBOL_GPL(force_irqthreads);
@@ -33,6 +34,7 @@ static int __init setup_forced_irqthread
@@ -33,6 +34,7 @@ static int __init setup_forced_irqthreads(char *arg)
return 0;
}
early_param("threadirqs", setup_forced_irqthreads);

View File

@ -1,9 +1,8 @@
From 6ec0e8d1526370de73bd18c096f7f96827594308 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:20 +0200
Subject: [PATCH 072/283] Split IRQ-off and zone->lock while freeing pages from
Subject: [PATCH 072/290] Split IRQ-off and zone->lock while freeing pages from
PCP list #1
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fdb74e76cbdf28ba0fc148ff245ebe35ffcb059
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
@ -168,6 +167,3 @@ index 2d04bd2e1ced..332b48f38d1e 100644
}
}
--
2.20.1

View File

@ -1,9 +1,8 @@
From f9efb76f365f15eaca8f29ee7f2648de90925a76 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:21 +0200
Subject: [PATCH 073/283] Split IRQ-off and zone->lock while freeing pages from
Subject: [PATCH 073/290] Split IRQ-off and zone->lock while freeing pages from
PCP list #2
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4804f6aa4033e6fc037ec95843c4f4a7768b9d27
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
@ -167,6 +166,3 @@ index 332b48f38d1e..55cee9a17a36 100644
}
/*
--
2.20.1

View File

@ -1,8 +1,7 @@
From 302fcfd8e9527e8f7b6ec9d733a5a3a760af64ef Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 28 May 2018 15:24:22 +0200
Subject: [PATCH 074/283] 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.59-rt24.tar.xz
Subject: [PATCH 074/290] mm/SLxB: change list_lock to raw_spinlock_t
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b21ef7083e9bc886ce555c1b63633dd1ab69e039
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
@ -399,7 +398,7 @@ index 9632772e14be..d6b01d61f768 100644
#ifdef CONFIG_SLAB
struct list_head slabs_partial; /* partial list first, better asm code */
diff --git a/mm/slub.c b/mm/slub.c
index 09c0e24a06d8..9450fb6da89f 100644
index 9c3937c5ce38..ba20c68a9cfd 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1167,7 +1167,7 @@ static noinline int free_debug_processing(
@ -614,6 +613,3 @@ index 09c0e24a06d8..9450fb6da89f 100644
}
for (i = 0; i < t.count; i++) {
--
2.20.1

View File

@ -1,9 +1,8 @@
From 9da82885e5b9187857b5fdc2eaa482752e814fbc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jun 2018 17:29:19 +0200
Subject: [PATCH 075/283] mm/SLUB: delay giving back empty slubs to IRQ enabled
Subject: [PATCH 075/290] mm/SLUB: delay giving back empty slubs to IRQ enabled
regions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89376b48dd9f6ddbfa127c973136e8308ea2f47d
__free_slab() is invoked with disabled interrupts which increases the
irq-off time while __free_pages() is doing the work.
@ -18,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 69 insertions(+), 5 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
index 9450fb6da89f..7fd47a914f61 100644
index ba20c68a9cfd..224663e20772 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1330,6 +1330,12 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node,
@ -218,6 +217,3 @@ index 9450fb6da89f..7fd47a914f61 100644
if (debug_guardpage_minorder())
slub_max_order = 0;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 4cd1dede47de27525631161fdc6cdfc9d8608c31 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:37 -0500
Subject: [PATCH 076/283] mm: page_alloc: rt-friendly per-cpu pages
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 076/290] mm: page_alloc: rt-friendly per-cpu pages
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d07a483196aff57e77d03c97a32ee47cb7af0d1
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method.
@ -234,6 +233,3 @@ index 55cee9a17a36..99b3861b1ef6 100644
}
#ifdef CONFIG_MEMORY_HOTREMOVE
--
2.20.1

View File

@ -1,8 +1,7 @@
From 98c01e9756e741d807b1198eb885a26e0998fcde Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:51 -0500
Subject: [PATCH 077/283] mm/swap: Convert to percpu locked
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 077/290] mm/swap: Convert to percpu locked
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22720b62b26a1291196199a2ac4f37ba1970d076
Replace global locks (get_cpu + local_irq_save) with "local_locks()".
Currently there is one of for "rotate" and one for "swap".
@ -37,10 +36,10 @@ index 7bd0a6f2ac2b..e643672fa802 100644
extern void lru_cache_add_anon(struct page *page);
extern void lru_cache_add_file(struct page *page);
diff --git a/mm/compaction.c b/mm/compaction.c
index faca45ebe62d..f8ccb9d9daa3 100644
index 5079ddbec8f9..c40d3a13cbbd 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1657,10 +1657,12 @@ static enum compact_result compact_zone(struct zone *zone, struct compact_contro
@@ -1668,10 +1668,12 @@ static enum compact_result compact_zone(struct zone *zone, struct compact_contro
block_start_pfn(cc->migrate_pfn, cc->order);
if (cc->last_migrated_pfn < current_block_start) {
@ -71,7 +70,7 @@ index 99b3861b1ef6..1679f5883307 100644
/*
diff --git a/mm/swap.c b/mm/swap.c
index a3fc028e338e..4bac22ec1328 100644
index 45fdbfb6b2a6..92f994b962f0 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -33,6 +33,7 @@
@ -206,6 +205,3 @@ index a3fc028e338e..4bac22ec1328 100644
}
#ifdef CONFIG_SMP
--
2.20.1

View File

@ -1,8 +1,7 @@
From f4f53c9fdf55676d783a4fbad5049f39401a0542 Mon Sep 17 00:00:00 2001
From: Luiz Capitulino <lcapitulino@redhat.com>
Date: Fri, 27 May 2016 15:03:28 +0200
Subject: [PATCH 078/283] mm: perform lru_add_drain_all() remotely
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 078/290] mm: perform lru_add_drain_all() remotely
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35d05460786e3b7a320e89aae8a90ae5ee7c758f
lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run
on all CPUs that have non-empty LRU pagevecs and then waiting for
@ -25,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/mm/swap.c b/mm/swap.c
index 4bac22ec1328..0457927d3f0c 100644
index 92f994b962f0..3885645a45ce 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -585,9 +585,15 @@ void lru_add_drain_cpu(int cpu)
@ -104,6 +103,3 @@ index 4bac22ec1328..0457927d3f0c 100644
mutex_unlock(&lock);
}
--
2.20.1

View File

@ -1,9 +1,8 @@
From 3e1b4a0068b41c1782264376379985fb992bd41e Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:13 -0500
Subject: [PATCH 079/283] mm/vmstat: Protect per cpu variables with preempt
Subject: [PATCH 079/290] mm/vmstat: Protect per cpu variables with preempt
disable on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b7191af05332f5fa21d4da8c3c4fb7c35bdb0fe
Disable preemption on -RT for the vmstat code. On vanila the code runs in
IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the
@ -140,6 +139,3 @@ index 4a387937f9f5..0cd11c5e3999 100644
}
void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
--
2.20.1

View File

@ -1,9 +1,8 @@
From fb089e89b26bc5653a90d9983021813e15fa04d9 Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Sat, 1 Oct 2011 18:58:13 -0700
Subject: [PATCH 080/283] ARM: Initialize split page table locks for vector
Subject: [PATCH 080/290] ARM: Initialize split page table locks for vector
page
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f092992f9980fcf99ec12820e7350851848fef8a
Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
@ -71,6 +70,3 @@ index 82ab015bf42b..8d3c7ce34c24 100644
#ifdef CONFIG_KUSER_HELPERS
/*
* The vectors page is always readable from user space for the
--
2.20.1

View File

@ -1,8 +1,7 @@
From b01d03c695bcba2149713f4425c806b5b5e3410d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 25 Oct 2012 10:32:35 +0100
Subject: [PATCH 081/283] mm: Enable SLUB for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 081/290] mm: Enable SLUB for RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ee23601786b2fb75dfb6aaed6da438321511261
Avoid the memory allocation in IRQ section
@ -14,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 6 insertions(+)
diff --git a/mm/slub.c b/mm/slub.c
index 7fd47a914f61..efd441e79e6f 100644
index 224663e20772..cbe47408c6eb 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3680,6 +3680,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
@ -37,6 +36,3 @@ index 7fd47a914f61..efd441e79e6f 100644
}
/*
--
2.20.1

View File

@ -1,8 +1,7 @@
From 14471a3281f661b8b8bccdb64820879a699fb2ad Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 9 Jan 2013 12:08:15 +0100
Subject: [PATCH 082/283] slub: Enable irqs for __GFP_WAIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 082/290] slub: Enable irqs for __GFP_WAIT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d2a7aef26031e05ab0f7d78fc15f838459aa348
SYSTEM_RUNNING might be too late for enabling interrupts. Allocations
with GFP_WAIT can happen before that. So use this as an indicator.
@ -13,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/mm/slub.c b/mm/slub.c
index efd441e79e6f..2240b51a0549 100644
index cbe47408c6eb..81c32ceab228 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1570,10 +1570,17 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
@ -43,6 +42,3 @@ index efd441e79e6f..2240b51a0549 100644
local_irq_disable();
if (!page)
return NULL;
--
2.20.1

View File

@ -1,8 +1,7 @@
From fb6bfe69057a4177f5f5b273cace7ea5cbb5f649 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 15 Apr 2015 19:00:47 +0200
Subject: [PATCH 083/283] slub: Disable SLUB_CPU_PARTIAL
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 083/290] slub: Disable SLUB_CPU_PARTIAL
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31c858cb39a8bcd260d166bc3963e3dfe201c547
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915
|in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7
@ -49,6 +48,3 @@ index 61e8b531649b..b4e88fb19c26 100644
bool "SLUB per cpu partial cache"
help
Per cpu partial caches accellerate objects allocation and freeing
--
2.20.1

View File

@ -1,9 +1,8 @@
From b64de8d2bb376abf6af01c84a94e1a201aecc6ec Mon Sep 17 00:00:00 2001
From: Yang Shi <yang.shi@windriver.com>
Date: Wed, 30 Oct 2013 11:48:33 -0700
Subject: [PATCH 084/283] mm/memcontrol: Don't call schedule_work_on in
Subject: [PATCH 084/290] mm/memcontrol: Don't call schedule_work_on in
preemption disabled context
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5685864e74efa64dff382c12b2b36c2b7d27c2f
The following trace is triggered when running ltp oom test cases:
@ -49,10 +48,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 7e7cc0cd89fe..174329de4779 100644
index 65da189a433b..cc5172096d2d 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2063,7 +2063,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
@@ -2082,7 +2082,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
* as well as workers from this path always operate on the local
* per-cpu data. CPU up doesn't touch memcg_stock at all.
*/
@ -61,7 +60,7 @@ index 7e7cc0cd89fe..174329de4779 100644
for_each_online_cpu(cpu) {
struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu);
struct mem_cgroup *memcg;
@@ -2083,7 +2083,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
@@ -2102,7 +2102,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
}
css_put(&memcg->css);
}
@ -70,6 +69,3 @@ index 7e7cc0cd89fe..174329de4779 100644
mutex_unlock(&percpu_charge_mutex);
}
--
2.20.1

View File

@ -1,9 +1,8 @@
From 3cb7dde3b41a847eefeac79763e46ce167c8521f Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 28 Jan 2015 17:14:16 +0100
Subject: [PATCH 085/283] mm/memcontrol: Replace local_irq_disable with local
Subject: [PATCH 085/290] mm/memcontrol: Replace local_irq_disable with local
locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37c842416ddb1f501d2a36a2504945b5d79e4a5d
There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks.
@ -14,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 174329de4779..d0f245d80f93 100644
index cc5172096d2d..90e67c468e76 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -69,6 +69,7 @@
@ -34,7 +33,7 @@ index 174329de4779..d0f245d80f93 100644
/* Whether legacy memory+swap accounting is active */
static bool do_memsw_account(void)
{
@@ -4884,12 +4887,12 @@ static int mem_cgroup_move_account(struct page *page,
@@ -4913,12 +4916,12 @@ static int mem_cgroup_move_account(struct page *page,
ret = 0;
@ -49,7 +48,7 @@ index 174329de4779..d0f245d80f93 100644
out_unlock:
unlock_page(page);
out:
@@ -6008,10 +6011,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
@@ -6037,10 +6040,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
commit_charge(page, memcg, lrucare);
@ -62,7 +61,7 @@ index 174329de4779..d0f245d80f93 100644
if (do_memsw_account() && PageSwapCache(page)) {
swp_entry_t entry = { .val = page_private(page) };
@@ -6080,7 +6083,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
@@ -6109,7 +6112,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
memcg_oom_recover(ug->memcg);
}
@ -71,7 +70,7 @@ index 174329de4779..d0f245d80f93 100644
__mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon);
__mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file);
__mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge);
@@ -6088,7 +6091,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
@@ -6117,7 +6120,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
__count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout);
__this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages);
memcg_check_events(ug->memcg, ug->dummy_page);
@ -80,7 +79,7 @@ index 174329de4779..d0f245d80f93 100644
if (!mem_cgroup_is_root(ug->memcg))
css_put_many(&ug->memcg->css, nr_pages);
@@ -6251,10 +6254,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
@@ -6280,10 +6283,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
commit_charge(newpage, memcg, false);
@ -93,7 +92,7 @@ index 174329de4779..d0f245d80f93 100644
}
DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key);
@@ -6446,6 +6449,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
@@ -6475,6 +6478,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
struct mem_cgroup *memcg, *swap_memcg;
unsigned int nr_entries;
unsigned short oldid;
@ -101,7 +100,7 @@ index 174329de4779..d0f245d80f93 100644
VM_BUG_ON_PAGE(PageLRU(page), page);
VM_BUG_ON_PAGE(page_count(page), page);
@@ -6491,13 +6495,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
@@ -6520,13 +6524,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
* important here to have the interrupts disabled because it is the
* only synchronisation we have for updating the per-CPU variables.
*/
@ -119,6 +118,3 @@ index 174329de4779..d0f245d80f93 100644
}
/**
--
2.20.1

View File

@ -1,8 +1,7 @@
From 50eae40f0475c039a273e2f5441f4ecda84d104e Mon Sep 17 00:00:00 2001
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Tue, 22 Mar 2016 11:16:09 +0100
Subject: [PATCH 086/283] mm/zsmalloc: copy with get_cpu_var() and locking
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 086/290] mm/zsmalloc: copy with get_cpu_var() and locking
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c50e41d890c9520ee9c04a91becc29f12bdfca6c
get_cpu_var() disables preemption and triggers a might_sleep() splat later.
This is replaced with get_locked_var().
@ -18,18 +17,18 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 74 insertions(+), 6 deletions(-)
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 9da65552e7ca..63c193c1ff96 100644
index 4b9063d12b93..1a2f6c13acbd 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -55,6 +55,7 @@
#include <linux/migrate.h>
@@ -56,6 +56,7 @@
#include <linux/wait.h>
#include <linux/pagemap.h>
#include <linux/fs.h>
+#include <linux/locallock.h>
#define ZSPAGE_MAGIC 0x58
@@ -72,9 +73,22 @@
@@ -73,9 +74,22 @@
*/
#define ZS_MAX_ZSPAGE_ORDER 2
#define ZS_MAX_PAGES_PER_ZSPAGE (_AC(1, UL) << ZS_MAX_ZSPAGE_ORDER)
@ -53,7 +52,7 @@ index 9da65552e7ca..63c193c1ff96 100644
/*
* Object location (<PFN>, <obj_idx>) is encoded as
* as single (unsigned long) handle value.
@@ -320,7 +334,7 @@ static void SetZsPageMovable(struct zs_pool *pool, struct zspage *zspage) {}
@@ -325,7 +339,7 @@ static void SetZsPageMovable(struct zs_pool *pool, struct zspage *zspage) {}
static int create_cache(struct zs_pool *pool)
{
@ -62,7 +61,7 @@ index 9da65552e7ca..63c193c1ff96 100644
0, 0, NULL);
if (!pool->handle_cachep)
return 1;
@@ -344,10 +358,27 @@ static void destroy_cache(struct zs_pool *pool)
@@ -349,10 +363,27 @@ static void destroy_cache(struct zs_pool *pool)
static unsigned long cache_alloc_handle(struct zs_pool *pool, gfp_t gfp)
{
@ -92,7 +91,7 @@ index 9da65552e7ca..63c193c1ff96 100644
static void cache_free_handle(struct zs_pool *pool, unsigned long handle)
{
kmem_cache_free(pool->handle_cachep, (void *)handle);
@@ -366,12 +397,18 @@ static void cache_free_zspage(struct zs_pool *pool, struct zspage *zspage)
@@ -371,12 +402,18 @@ static void cache_free_zspage(struct zs_pool *pool, struct zspage *zspage)
static void record_obj(unsigned long handle, unsigned long obj)
{
@ -111,7 +110,7 @@ index 9da65552e7ca..63c193c1ff96 100644
}
/* zpool driver */
@@ -453,6 +490,7 @@ MODULE_ALIAS("zpool-zsmalloc");
@@ -458,6 +495,7 @@ MODULE_ALIAS("zpool-zsmalloc");
/* per-cpu VM mapping areas for zspage accesses that cross page boundaries */
static DEFINE_PER_CPU(struct mapping_area, zs_map_area);
@ -119,7 +118,7 @@ index 9da65552e7ca..63c193c1ff96 100644
static bool is_zspage_isolated(struct zspage *zspage)
{
@@ -882,7 +920,13 @@ static unsigned long location_to_obj(struct page *page, unsigned int obj_idx)
@@ -887,7 +925,13 @@ static unsigned long location_to_obj(struct page *page, unsigned int obj_idx)
static unsigned long handle_to_obj(unsigned long handle)
{
@ -133,7 +132,7 @@ index 9da65552e7ca..63c193c1ff96 100644
}
static unsigned long obj_to_head(struct page *page, void *obj)
@@ -896,22 +940,46 @@ static unsigned long obj_to_head(struct page *page, void *obj)
@@ -901,22 +945,46 @@ static unsigned long obj_to_head(struct page *page, void *obj)
static inline int testpin_tag(unsigned long handle)
{
@ -180,7 +179,7 @@ index 9da65552e7ca..63c193c1ff96 100644
}
static void reset_page(struct page *page)
@@ -1337,7 +1405,7 @@ void *zs_map_object(struct zs_pool *pool, unsigned long handle,
@@ -1342,7 +1410,7 @@ void *zs_map_object(struct zs_pool *pool, unsigned long handle,
class = pool->size_class[class_idx];
off = (class->size * obj_idx) & ~PAGE_MASK;
@ -189,7 +188,7 @@ index 9da65552e7ca..63c193c1ff96 100644
area->vm_mm = mm;
if (off + class->size <= PAGE_SIZE) {
/* this object is contained entirely within a page */
@@ -1391,7 +1459,7 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle)
@@ -1396,7 +1464,7 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle)
__zs_unmap_object(area, pages, off, class->size);
}
@ -198,6 +197,3 @@ index 9da65552e7ca..63c193c1ff96 100644
migrate_read_unlock(zspage);
unpin_tag(handle);
--
2.20.1

View File

@ -1,9 +1,8 @@
From 3d625e1fb1f5adff8191330efe6d47017b0806bd Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 11 Dec 2018 21:53:43 +0100
Subject: [PATCH 087/283] x86/mm/pat: disable preemption __split_large_page()
Subject: [PATCH 087/290] x86/mm/pat: disable preemption __split_large_page()
after spin_lock()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bfec83b70be39a512d8519c2bb34f4cb620cb6b3
Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a
warning if __flush_tlb_all() is invoked in preemptible context. On !RT
@ -57,6 +56,3 @@ index e2d4b25c7aa4..9626ebb9e3c8 100644
spin_unlock(&pgd_lock);
return 0;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 0a7a65a5055b7a5a94c57ee2dc8404116cff804b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 25 Jan 2017 16:34:27 +0100
Subject: [PATCH 088/283] radix-tree: use local locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 088/290] radix-tree: use local locks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b762851e97a0699769d8cac2a637edd30c800d1f
The preload functionality uses per-CPU variables and preempt-disable to
ensure that it does not switch CPUs during its usage. This patch adds
@ -171,6 +170,3 @@ index bc03ecc4dfd2..44257463f683 100644
if (!this_cpu_read(ida_bitmap)) {
struct ida_bitmap *bitmap = kzalloc(sizeof(*bitmap), gfp);
--
2.20.1

View File

@ -1,8 +1,7 @@
From 5bbf9de052f34cd8d685120f60da34937f2b0772 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
Subject: [PATCH 089/283] timers: Prepare for full preemption
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 089/290] timers: Prepare for full preemption
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8b88eb0c9c0171975f889b404f3f0d5e8713e82
When softirqs can be preempted we need to make sure that cancelling
the timer from the active thread can not deadlock vs. a running timer
@ -30,7 +29,7 @@ index 7b066fd38248..54627d046b3a 100644
#else
# define del_timer_sync(t) del_timer(t)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 7a39d56f6a6b..5de80f29ef57 100644
index a33c2c18628d..520640973942 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -498,11 +498,14 @@ void resched_cpu(int cpu)
@ -60,7 +59,7 @@ index 7a39d56f6a6b..5de80f29ef57 100644
}
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index fa49cd753dea..bbe24e241643 100644
index ae64cb819a9a..9019c9caf146 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -44,6 +44,7 @@
@ -151,7 +150,7 @@ index fa49cd753dea..bbe24e241643 100644
raw_spin_lock_irq(&base->lock);
}
}
@@ -1681,8 +1715,8 @@ static inline void __run_timers(struct timer_base *base)
@@ -1683,8 +1717,8 @@ static inline void __run_timers(struct timer_base *base)
while (levels--)
expire_timers(base, heads + levels);
}
@ -161,7 +160,7 @@ index fa49cd753dea..bbe24e241643 100644
}
/*
@@ -1927,6 +1961,9 @@ static void __init init_timer_cpu(int cpu)
@@ -1929,6 +1963,9 @@ static void __init init_timer_cpu(int cpu)
base->cpu = cpu;
raw_spin_lock_init(&base->lock);
base->clk = jiffies;
@ -171,6 +170,3 @@ index fa49cd753dea..bbe24e241643 100644
}
}
--
2.20.1

View File

@ -1,8 +1,7 @@
From 49f95baf1667e4853406b63d30062b94afff4a25 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 6 Nov 2011 12:26:18 +0100
Subject: [PATCH 090/283] x86: kvm Require const tsc for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 090/290] x86: kvm Require const tsc for RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61807edd278df58c12c72f58fd6aeae90ef41013
Non constant TSC is a nightmare on bare metal already, but with
virtualization it becomes a complete disaster because the workarounds
@ -15,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 7 insertions(+)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index cea6568667c4..c90545667fd6 100644
index 6ae8a013af31..c936e1848f28 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6756,6 +6756,13 @@ int kvm_arch_init(void *opaque)
@@ -6787,6 +6787,13 @@ int kvm_arch_init(void *opaque)
goto out;
}
@ -32,6 +31,3 @@ index cea6568667c4..c90545667fd6 100644
r = kvm_mmu_module_init();
if (r)
goto out_free_percpu;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 99fc3867798d14c5cff8c71c3872af84605d572d Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 4 Oct 2017 10:24:23 +0200
Subject: [PATCH 091/283] pci/switchtec: Don't use completion's wait queue
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 091/290] pci/switchtec: Don't use completion's wait queue
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10b9bce593adcb0971345750199a4c428b95be36
The poll callback is using completion's wait_queue_head_t member and
puts it in poll_wait() so the poll() caller gets a wakeup after command
@ -110,6 +109,3 @@ index 72db2e0ebced..77d4fb86d05b 100644
list_del_init(&stuser->list);
stuser_put(stuser);
}
--
2.20.1

View File

@ -1,11 +1,10 @@
From 88037fc07062d469557427c97507d3f95d7ca3a6 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 28 Oct 2013 12:19:57 +0100
Subject: [PATCH 092/283] wait.h: include atomic.h
Subject: [PATCH 092/290] wait.h: include atomic.h
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/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a750424efdceb04843eb5c9be84b0e070985534
| CC init/main.o
|In file included from include/linux/mmzone.h:9:0,
@ -37,6 +36,3 @@ index ed7c122cb31f..2b5ef8e94d19 100644
typedef struct wait_queue_entry wait_queue_entry_t;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 67478d9c6704de32600fd4363f3853bcdffcf391 Mon Sep 17 00:00:00 2001
From: Daniel Wagner <daniel.wagner@bmw-carit.de>
Date: Fri, 11 Jul 2014 15:26:11 +0200
Subject: [PATCH 093/283] work-simple: Simple work queue implemenation
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 093/290] work-simple: Simple work queue implemenation
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b23368647741af52610dd7e6e8955ef23eab50ea
Provides a framework for enqueuing callbacks from irq context
PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.
@ -241,6 +240,3 @@ index 000000000000..a5b89fdacf19
+ mutex_unlock(&worker_mutex);
+}
+EXPORT_SYMBOL_GPL(swork_put);
--
2.20.1

View File

@ -1,9 +1,8 @@
From 147a7822bfe8f027b88fa0ca82ae0d210e57bf34 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 10 Sep 2018 18:00:31 +0200
Subject: [PATCH 094/283] work-simple: drop a shit statement in
Subject: [PATCH 094/290] work-simple: drop a shit statement in
SWORK_EVENT_PENDING
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4333ab9ff36a8ec80e8b72a146602c8bf41acf24
Dan Carpenter reported
| smatch warnings:
@ -32,6 +31,3 @@ index a5b89fdacf19..c90d14b9b126 100644
static DEFINE_MUTEX(worker_mutex);
static struct sworker *glob_worker;
--
2.20.1

View File

@ -1,8 +1,7 @@
From 334dc78522991ee04c4704a53d24f0009be71172 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 11 Jan 2013 11:23:51 +0100
Subject: [PATCH 095/283] completion: Use simple wait queues
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 095/290] completion: Use simple wait queues
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98054900c031519e7190d077f9875ef459fcc8e7
Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the
@ -55,10 +54,10 @@ index 94ad6fe29e69..52a49f0bbc19 100644
break;
default:
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index aa15593a3ac4..5e9269cd14fa 100644
index 2050993fb58b..e2ca75a6e241 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1624,7 +1624,7 @@ static void ffs_data_put(struct ffs_data *ffs)
@@ -1626,7 +1626,7 @@ static void ffs_data_put(struct ffs_data *ffs)
pr_info("%s(): freeing\n", __func__);
ffs_data_clear(ffs);
BUG_ON(waitqueue_active(&ffs->ev.waitq) ||
@ -320,10 +319,10 @@ index a1ad5b7d5521..755a58084978 100644
}
EXPORT_SYMBOL(completion_done);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 5de80f29ef57..337cc72e6a6a 100644
index 520640973942..ba6d51c7df61 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7116,7 +7116,10 @@ void migrate_disable(void)
@@ -7153,7 +7153,10 @@ void migrate_disable(void)
return;
}
#ifdef CONFIG_SCHED_DEBUG
@ -335,7 +334,7 @@ index 5de80f29ef57..337cc72e6a6a 100644
#endif
if (p->migrate_disable) {
@@ -7146,7 +7149,10 @@ void migrate_enable(void)
@@ -7183,7 +7186,10 @@ void migrate_enable(void)
}
#ifdef CONFIG_SCHED_DEBUG
@ -386,6 +385,3 @@ index 66b59ac77c22..c7cb30cdd1b7 100644
{
wait->task = current;
if (list_empty(&wait->task_list))
--
2.20.1

View File

@ -1,8 +1,7 @@
From b576efb7cedb58ffa58242d7b0df24d14063ba0e Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 16 Feb 2015 18:49:10 +0100
Subject: [PATCH 096/283] fs/aio: simple simple work
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Subject: [PATCH 096/290] fs/aio: simple simple work
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=824fb4cfaff29a2b6013b74084736a71b3c3647a
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
@ -84,6 +83,3 @@ index 911e23087dfb..16dcf8521c2c 100644
static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
{
unsigned i, new_nr;
--
2.20.1

View File

@ -1,9 +1,8 @@
From bac483c38a96edeadc43fa8dcf03c3e57c41cc62 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 21 Aug 2013 17:48:46 +0200
Subject: [PATCH 097/283] genirq: Do not invoke the affinity callback via a
Subject: [PATCH 097/290] 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.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59cce101e50e9b0f9d6b978848521f8dc629b260
Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep()
@ -49,10 +48,10 @@ index 315f852b4981..a943c07b54ba 100644
void (*release)(struct kref *ref);
};
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c3b9f6dacd8f..af2a8757abfb 100644
index 3c26d0708709..eadcbfbd434a 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -259,7 +259,12 @@ int irq_set_affinity_locked(struct irq_data *data, const struct cpumask *mask,
@@ -285,7 +285,12 @@ int irq_set_affinity_locked(struct irq_data *data, const struct cpumask *mask,
if (desc->affinity_notify) {
kref_get(&desc->affinity_notify->kref);
@ -65,7 +64,7 @@ index c3b9f6dacd8f..af2a8757abfb 100644
}
irqd_set(data, IRQD_AFFINITY_SET);
@@ -297,10 +302,8 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m)
@@ -323,10 +328,8 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m)
}
EXPORT_SYMBOL_GPL(irq_set_affinity_hint);
@ -77,7 +76,7 @@ index c3b9f6dacd8f..af2a8757abfb 100644
struct irq_desc *desc = irq_to_desc(notify->irq);
cpumask_var_t cpumask;
unsigned long flags;
@@ -322,6 +325,35 @@ static void irq_affinity_notify(struct work_struct *work)
@@ -348,6 +351,35 @@ static void irq_affinity_notify(struct work_struct *work)
kref_put(&notify->kref, notify->release);
}
@ -113,7 +112,7 @@ index c3b9f6dacd8f..af2a8757abfb 100644
/**
* irq_set_affinity_notifier - control notification of IRQ affinity changes
* @irq: Interrupt for which to enable/disable notification
@@ -350,7 +382,12 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
@@ -376,7 +408,12 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
if (notify) {
notify->irq = irq;
kref_init(&notify->kref);
@ -126,7 +125,7 @@ index c3b9f6dacd8f..af2a8757abfb 100644
}
raw_spin_lock_irqsave(&desc->lock, flags);
@@ -359,7 +396,10 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
@@ -385,7 +422,10 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
raw_spin_unlock_irqrestore(&desc->lock, flags);
if (old_notify) {
@ -137,6 +136,3 @@ index c3b9f6dacd8f..af2a8757abfb 100644
kref_put(&old_notify->kref, old_notify->release);
}
--
2.20.1

View File

@ -1,9 +1,8 @@
From 7ada38687fe4d4f0ff8b7390d1588f7fed28a28d Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 15 Nov 2017 17:29:51 +0100
Subject: [PATCH 098/283] time/hrtimer: avoid schedule_work() with interrupts
Subject: [PATCH 098/290] time/hrtimer: avoid schedule_work() with interrupts
disabled
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60f0f171fd7d0f16aef78b604efb7156d5d1ad68
The NOHZ code tries to schedule a workqueue with interrupts disabled.
Since this does not work -RT I am switching it to swork instead.
@ -14,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index bbe24e241643..696e7583137c 100644
index 9019c9caf146..3fab1c50bf1b 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -217,8 +217,7 @@ static DEFINE_PER_CPU(struct timer_base, timer_bases[NR_BASES]);
@ -55,6 +54,3 @@ index bbe24e241643..696e7583137c 100644
int timer_migration_handler(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp,
loff_t *ppos)
--
2.20.1

View File

@ -1,9 +1,8 @@
From 2decd81945344204be663182b0eac46997f297b2 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 11:25:41 +0200
Subject: [PATCH 099/283] hrtimer: consolidate hrtimer_init() +
Subject: [PATCH 099/290] hrtimer: consolidate hrtimer_init() +
hrtimer_init_sleeper() calls
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=956094850303bfde3d1c8d990ce9a247053d2c63
hrtimer_init_sleeper() calls require a prior initialisation of the
hrtimer object with hrtimer_init(). Lets make the initialisation of
@ -28,7 +27,7 @@ Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
7 files changed, 67 insertions(+), 34 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 70d839b9c3b0..e3e7a88e03a6 100644
index 684acaa96db7..4aa3284874f6 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -3128,10 +3128,9 @@ static bool blk_mq_poll_hybrid_sleep(struct request_queue *q,
@ -285,6 +284,3 @@ index 092fa3d75b32..9d472d626aaa 100644
do {
set_current_state(TASK_INTERRUPTIBLE);
hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS);
--
2.20.1

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