[rt] Update to 4.19.90-rt35

This commit is contained in:
Salvatore Bonaccorso 2020-01-04 00:36:11 +01:00
parent 60f99617aa
commit 88a4ba5bd0
294 changed files with 2356 additions and 1122 deletions

1
debian/changelog vendored
View File

@ -830,6 +830,7 @@ linux (4.19.92-1) UNRELEASED; urgency=medium
* Drop 0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-queue.patch
* [rt] Refresh 0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
(Context changes in 4.19.88)
* [rt] Update to 4.19.90-rt35
-- Salvatore Bonaccorso <carnil@debian.org> Sat, 14 Dec 2019 22:00:16 +0100

View File

@ -1,7 +1,8 @@
From e8333eb8d7a441a6274831115543689d82cdeeb2 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/290] ARM: at91: add TCB registers definitions
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b15d99032dfca622e695f10a9934c16fa8b05a0
Subject: [PATCH 001/291] ARM: at91: add TCB registers definitions
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Add registers and bits definitions for the timer counter blocks found on
Atmel ARM SoCs.
@ -204,3 +205,6 @@ index 000000000000..657e234b1483
+};
+
+#endif /* __SOC_ATMEL_TCB_H */
--
2.24.0

View File

@ -1,8 +1,9 @@
From 3282d066d1ad7d2dc0db6d17a4dc37e8e64137ed 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/290] clocksource/drivers: Add a new driver for the Atmel
Subject: [PATCH 002/291] clocksource/drivers: Add a new driver for the Atmel
ARM TC blocks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cc14d070ff9808e86cd76edc497abd71537b237
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Add a driver for the Atmel Timer Counter Blocks. This driver provides a
clocksource and two clockevent devices.
@ -479,3 +480,6 @@ index 000000000000..21fbe430f91b
+ bits);
+}
+TIMER_OF_DECLARE(atmel_tcb_clksrc, "atmel,tcb-timer", tcb_clksrc_init);
--
2.24.0

View File

@ -1,8 +1,9 @@
From 058ed7cb47d8435f29855545f477c74bed325167 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/290] clocksource/drivers: timer-atmel-tcb: add clockevent
Subject: [PATCH 003/291] clocksource/drivers: timer-atmel-tcb: add clockevent
device on separate channel
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10269a72d7656134bd29f2ef8a4cbd4d166ac825
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Add an other clockevent device that uses a separate TCB channel when
available.
@ -265,3 +266,6 @@ index 21fbe430f91b..63ce3b69338a 100644
}
}
--
2.24.0

View File

@ -1,7 +1,8 @@
From b6725354b63d71ad4f563d311bd85ffc8722a794 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/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
Subject: [PATCH 004/291] clocksource/drivers: atmel-pit: make option silent
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
To conform with the other option, make the ATMEL_PIT option silent so it
can be selected from the platform
@ -30,3 +31,6 @@ index 0ab22e7037f4..34b07047b91f 100644
config ATMEL_ST
bool "Atmel ST timer support" if COMPILE_TEST
--
2.24.0

View File

@ -1,7 +1,8 @@
From b8ea7caf670921eb26dece3525a54fc85932e5a1 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/290] ARM: at91: Implement clocksource selection
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c682aaa18596b92057ac104266f0d0fefa05ef0
Subject: [PATCH 005/291] ARM: at91: Implement clocksource selection
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Allow selecting and unselecting the PIT clocksource driver so it doesn't
have to be compile when unused.
@ -49,3 +50,6 @@ index 903f23c309df..fa493a86e2bb 100644
config HAVE_AT91_UTMI
bool
--
2.24.0

View File

@ -1,7 +1,8 @@
From ed2b6457a9a986edeb1a27688e2eaacca4292766 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/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
Subject: [PATCH 006/291] ARM: configs: at91: use new TCB timer driver
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
timer-atmel-tcb.
@ -37,3 +38,6 @@ index 2080025556b5..f2bbc6339ca6 100644
CONFIG_ATMEL_SSC=y
CONFIG_EEPROM_AT24=y
CONFIG_SCSI=y
--
2.24.0

View File

@ -1,7 +1,8 @@
From 10433e91824db9f89c3f320c5fc3d2bfb5edd9b3 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/290] ARM: configs: at91: unselect PIT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09237389b9cefeb3f5e277ad4e35c5ca3b62db42
Subject: [PATCH 007/291] ARM: configs: at91: unselect PIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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.
@ -38,3 +39,6 @@ index f2bbc6339ca6..be92871ab155 100644
CONFIG_AEABI=y
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_ZBOOT_ROM_TEXT=0x0
--
2.24.0

View File

@ -1,8 +1,9 @@
From dcd95836a0ad848d44ebff6c196e968f550bb0de 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/290] irqchip/gic-v3-its: Move pending table allocation to
Subject: [PATCH 008/291] irqchip/gic-v3-its: Move pending table allocation to
init time
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0a08ef23f2e37ccaa18fb80939e9b43871e0667
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
@ -12,7 +13,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 e7549a2b1482..b68650b55b9f 100644
index 050d6e040128..fc4c319ee1d7 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);
@ -23,7 +24,7 @@ index e7549a2b1482..b68650b55b9f 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)
@@ -1644,7 +1645,7 @@ static void its_free_prop_table(struct page *prop_page)
@@ -1659,7 +1660,7 @@ static void its_free_prop_table(struct page *prop_page)
get_order(LPI_PROPBASE_SZ));
}
@ -32,7 +33,7 @@ index e7549a2b1482..b68650b55b9f 100644
{
phys_addr_t paddr;
@@ -1992,30 +1993,47 @@ static u64 its_clear_vpend_valid(void __iomem *vlpi_base)
@@ -2007,30 +2008,47 @@ static u64 its_clear_vpend_valid(void __iomem *vlpi_base)
return val;
}
@ -95,7 +96,7 @@ index e7549a2b1482..b68650b55b9f 100644
/* set PROPBASE */
val = (page_to_phys(gic_rdists->prop_page) |
GICR_PROPBASER_InnerShareable |
@@ -2091,6 +2109,10 @@ static void its_cpu_init_lpis(void)
@@ -2106,6 +2124,10 @@ static void its_cpu_init_lpis(void)
/* Make sure the GIC has seen the above */
dsb(sy);
@ -106,7 +107,7 @@ index e7549a2b1482..b68650b55b9f 100644
}
static void its_cpu_init_collection(struct its_node *its)
@@ -3570,16 +3592,6 @@ static int redist_disable_lpis(void)
@@ -3585,16 +3607,6 @@ static int redist_disable_lpis(void)
u64 timeout = USEC_PER_SEC;
u64 val;
@ -123,7 +124,7 @@ index e7549a2b1482..b68650b55b9f 100644
if (!gic_rdists_supports_plpis()) {
pr_info("CPU%d: LPIs not supported\n", smp_processor_id());
return -ENXIO;
@@ -3589,7 +3601,18 @@ static int redist_disable_lpis(void)
@@ -3604,7 +3616,18 @@ static int redist_disable_lpis(void)
if (!(val & GICR_CTLR_ENABLE_LPIS))
return 0;
@ -143,7 +144,7 @@ index e7549a2b1482..b68650b55b9f 100644
smp_processor_id());
add_taint(TAINT_CRAP, LOCKDEP_STILL_OK);
@@ -3845,7 +3868,8 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
@@ -3860,7 +3883,8 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
}
gic_rdists = rdists;
@ -165,3 +166,6 @@ index 3188c0bef3e7..5b57501fd2e7 100644
} __percpu *rdist;
struct page *prop_page;
u64 flags;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 7cce8605f6a1ecb97f664ca64726f58e75c4d747 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/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
Subject: [PATCH 009/291] kthread: convert worker lock to raw spinlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
In order to enable the queuing of kthread work items from hardirq
context even when PREEMPT_RT_FULL is enabled, convert the worker
@ -197,3 +198,6 @@ index 087d18d771b5..5641b55783a6 100644
out:
return ret;
}
--
2.24.0

View File

@ -1,10 +1,11 @@
From 9bdc2dc2ca3892849462973eaff1e207b26bf025 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/290] crypto: caam/qi - simplify CGR allocation, freeing
Subject: [PATCH 010/291] crypto: caam/qi - simplify CGR allocation, freeing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d10c08ca4b5279cfa1f77d05dded9377191ed3f
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]
@ -134,3 +135,6 @@ index 357b69f57072..b6c8acc30853 100644
/**
* qi_cache_alloc - Allocate buffers from CAAM-QI cache
--
2.24.0

View File

@ -1,7 +1,8 @@
From 9fb91a865bf531999865a16e329875975a0bbdea 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/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
Subject: [PATCH 011/291] sched/fair: Robustify CFS-bandwidth timer locking
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Traditionally hrtimer callbacks were run with IRQs disabled, but with
the introduction of HRTIMER_MODE_SOFT it is possible they run from
@ -24,16 +25,15 @@ Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20190107125231.GE14122@hirez.programming.kicks-ass.net
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[Salvatore Bonaccorso: Backport to 4.19.84 due to context changes caused by
502bd151448c ("sched/fair: Fix low cpu usage with high throttling by removing
expiration of cpu-local slices")]
---
kernel/sched/fair.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index f0abb8fe0ae9..b5e03fc56d65 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4560,7 +4560,7 @@
@@ -4560,7 +4560,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
struct rq *rq = rq_of(cfs_rq);
struct rq_flags rf;
@ -42,7 +42,7 @@ expiration of cpu-local slices")]
if (!cfs_rq_throttled(cfs_rq))
goto next;
@@ -4579,7 +4579,7 @@
@@ -4579,7 +4579,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
unthrottle_cfs_rq(cfs_rq);
next:
@ -51,7 +51,7 @@ expiration of cpu-local slices")]
if (!remaining)
break;
@@ -4595,7 +4595,7 @@
@@ -4595,7 +4595,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
* period the timer is deactivated until scheduling resumes; cfs_b->idle is
* used to track this state.
*/
@ -60,7 +60,7 @@ expiration of cpu-local slices")]
{
u64 runtime;
int throttled;
@@ -4635,10 +4635,10 @@
@@ -4635,10 +4635,10 @@ 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;
@ -73,7 +73,7 @@ expiration of cpu-local slices")]
cfs_b->distribute_running = 0;
throttled = !list_empty(&cfs_b->throttled_cfs_rq);
@@ -4746,16 +4746,17 @@
@@ -4746,16 +4746,17 @@ 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();
@ -94,7 +94,7 @@ expiration of cpu-local slices")]
return;
}
@@ -4765,17 +4766,17 @@
@@ -4765,17 +4766,17 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
if (runtime)
cfs_b->distribute_running = 1;
@ -115,7 +115,7 @@ expiration of cpu-local slices")]
}
/*
@@ -4855,11 +4856,12 @@
@@ -4855,11 +4856,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);
@ -129,7 +129,7 @@ expiration of cpu-local slices")]
for (;;) {
overrun = hrtimer_forward_now(timer, cfs_b->period);
if (!overrun)
@@ -4887,11 +4889,11 @@
@@ -4895,11 +4897,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
count = 0;
}
@ -143,3 +143,6 @@ expiration of cpu-local slices")]
return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
}
--
2.24.0

View File

@ -1,7 +1,8 @@
From 296268c33d7b68c7aed7899eddcb0ac314bebdf8 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/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
Subject: [PATCH 012/291] arm: Convert arm boot_lock to raw
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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.
@ -426,3 +427,6 @@ index c2366510187a..6b60f582b738 100644
return pen_release != -1 ? -ENOSYS : 0;
}
--
2.24.0

View File

@ -1,8 +1,9 @@
From fdf9220749a837a83687679c314e53cd434e4ceb 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/290] x86/ioapic: Don't let setaffinity unmask threaded EOI
Subject: [PATCH 013/291] x86/ioapic: Don't let setaffinity unmask threaded EOI
interrupt too early
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=269b937b10ea6588bf79b4d789c40cc5214711cf
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
There is an issue with threaded interrupts which are marked ONESHOT
and using the fasteoi handler.
@ -106,3 +107,6 @@ index ab22eded61d2..91db2ec0c10a 100644
}
static void ioapic_ir_ack_level(struct irq_data *irq_data)
--
2.24.0

View File

@ -1,7 +1,8 @@
From a45ef2ccd96d3e814260b46a053f0391aff210be 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/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
Subject: [PATCH 014/291] cgroup: use irqsave in cgroup_rstat_flush_locked()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
either with spin_lock_irq() or spin_lock_irqsave().
@ -44,3 +45,6 @@ index bb95a35e8c2d..3266a9781b4e 100644
/* if @may_sleep, play nice and yield if necessary */
if (may_sleep && (need_resched() ||
--
2.24.0

View File

@ -1,7 +1,8 @@
From 5f84d926adb23419c2abae8671cd701a192b04b6 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/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
Subject: [PATCH 015/291] fscache: initialize cookie hash table raw spinlocks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The
PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT
@ -58,3 +59,6 @@ index 84b90a79d75a..87a9330eafa2 100644
/**
* fscache_register_netfs - Register a filesystem as desiring caching services
--
2.24.0

View File

@ -1,10 +1,11 @@
From a94e19a514ac423d3e6b24adcf21a1a0c206206e 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/290] Drivers: hv: vmbus: include header for get_irq_regs()
Subject: [PATCH 016/291] 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://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=32d049f2969bf30456b5afbcf2c709e7667ee6f7
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
On !RT the header file get_irq_regs() gets pulled in via other header files. On
RT it does not and the build fails:
@ -34,3 +35,6 @@ index 87d3d7da78f8..1d2d8a4b837d 100644
#include "hv_trace.h"
--
2.24.0

View File

@ -1,7 +1,8 @@
From 75c78f86e37ea3d499e1da94c0f5939815a1a05b 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/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
Subject: [PATCH 017/291] 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.90-rt35.tar.xz
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
@ -27,3 +28,6 @@ index 1817a8415a5e..942d64c0476e 100644
#ifdef CONFIG_SMP
--
2.24.0

View File

@ -1,7 +1,8 @@
From 5fb52de64270be979f75b427250d11b540c52b83 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/290] efi: Allow efi=runtime
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e3cdde741d28e9a96be78eff57024bfa1807a9d
Subject: [PATCH 018/291] efi: Allow efi=runtime
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
In case the option "efi=noruntime" is default at built-time, the user
could overwrite its sate by `efi=runtime' and allow it again.
@ -26,3 +27,6 @@ index d54fca902e64..5db20908aa9c 100644
return 0;
}
early_param("efi", parse_efi_cmdline);
--
2.24.0

View File

@ -1,7 +1,8 @@
From 4fd848304a1de3af890fc4af3672ec7f4702418d 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/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
Subject: [PATCH 019/291] 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.90-rt35.tar.xz
efi_switch_mm() is a wrapper around switch_mm() which saves current's
->active_mm, sets the requests mm as ->active_mm and invokes
@ -49,3 +50,6 @@ index ee5d08f25ce4..e8da7f492970 100644
}
#ifdef CONFIG_EFI_MIXED
--
2.24.0

View File

@ -1,8 +1,9 @@
From b17f7ae2ce1cef4a3777068f142f46342a68adac 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/290] arm64: KVM: compute_layout before altenates are
Subject: [PATCH 020/291] arm64: KVM: compute_layout before altenates are
applied
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7cf32c5e928501c234cefb60c14a7d2516bfdd27
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
compute_layout() is invoked as part of an alternative fixup under
stop_machine() and needs a sleeping lock as part of get_random_long().
@ -77,3 +78,6 @@ index c712a7376bc1..792da0e125de 100644
/*
* Compute HYP VA by using the same computation as kern_hyp_va()
*/
--
2.24.0

View File

@ -1,8 +1,9 @@
From 697998358002f3b4a507a7d2c17f4a574462bfbb 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/290] of: allocate / free phandle cache outside of the
Subject: [PATCH 021/291] of: allocate / free phandle cache outside of the
devtree_lock
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62698ea1b5cfaf8b88d0df4b9b1acbf8ff591dac
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The phandle cache code allocates memory while holding devtree_lock which
is a raw_spinlock_t. Memory allocation (and free()) is not possible on
@ -18,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 3f21ea6a90dc..2c7cf83b200c 100644
index f0dbb7ad88cf..c59b30bab0e0 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -130,31 +130,34 @@ static u32 phandle_cache_mask;
@ -97,3 +98,6 @@ index 3f21ea6a90dc..2c7cf83b200c 100644
}
void __init of_core_init(void)
--
2.24.0

View File

@ -1,7 +1,8 @@
From 8a4f7cc633b7c0c167185220b26c123c854317be 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/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
Subject: [PATCH 022/291] 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.90-rt35.tar.xz
The static lock quarantine_lock is used in quarantine.c to protect the
quarantine queue datastructures. It is taken inside quarantine queue
@ -92,3 +93,6 @@ index 3a8ddf8baf7d..b209dbaefde8 100644
qlist_free_all(&to_free, cache);
--
2.24.0

View File

@ -1,8 +1,9 @@
From 39aaee76f350cb367781564b734dc8e29d75b975 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/290] EXP rcu: Revert expedited GP parallelization
Subject: [PATCH 023/291] EXP rcu: Revert expedited GP parallelization
cleverness
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a435c0a8c0607a971d75a41cf00b45699e690cc
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)
@ -45,3 +46,6 @@ index 0b2c2ad69629..a0486414edb4 100644
rnp->exp_need_flush = true;
}
--
2.24.0

View File

@ -1,10 +1,11 @@
From 4d466dc4215908fa4bc26c7451f4cc09f1d78e0a 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/290] kmemleak: Turn kmemleak_lock to raw spinlock on RT
Subject: [PATCH 024/291] 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://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d823b15c5b9f5edcf6111f3b480674e4c2e42847
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and
causes the follow BUG.
@ -163,3 +164,6 @@ index 5eeabece0c17..92ce99b15f2b 100644
}
/*
--
2.24.0

View File

@ -1,7 +1,8 @@
From 2c7ee1a045b00c6310d027dc5aa1a079ff655630 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/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
Subject: [PATCH 025/291] NFSv4: replace seqcount_t with a seqlock_t
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
because it maps to preempt_disable() in -RT which I can't have at this
@ -18,8 +19,6 @@ block readers).
Reported-by: kernel test robot <xiaolong.ye@intel.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[Aurelien Jarno: Backport to 4.19.86 due to context changes caused by
aa84e0458d853 ("NFSv4.x: fix lock recovery during delegation recall")]
---
fs/nfs/delegation.c | 4 ++--
fs/nfs/nfs4_fs.h | 2 +-
@ -28,10 +27,10 @@ aa84e0458d853 ("NFSv4.x: fix lock recovery during delegation recall")]
4 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 825a8c52165a..c14f02b41f0d 100644
index 74ff459b75ef..6b422d1b5ae1 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -152,11 +152,11 @@ static int nfs_delegation_claim_opens(struct inode *inode,
@@ -162,11 +162,11 @@ static int nfs_delegation_claim_opens(struct inode *inode,
sp = state->owner;
/* Block nfs4_proc_unlck */
mutex_lock(&sp->so_delegreturn_mutex);
@ -59,10 +58,10 @@ index 5b61520dce88..2771aafaca19 100644
};
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 75faef7af22d..72abcccb8177 100644
index 792f8821b5d6..041d235cf5ef 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2873,7 +2873,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
@@ -2870,7 +2870,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
unsigned int seq;
int ret;
@ -71,7 +70,7 @@ index 75faef7af22d..72abcccb8177 100644
ret = _nfs4_proc_open(opendata, ctx);
if (ret != 0)
@@ -2914,7 +2914,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
@@ -2911,7 +2911,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
if (d_inode(dentry) == state->inode) {
nfs_inode_attach_open_context(ctx);
@ -132,3 +131,6 @@ index b3086e99420c..c9bf1eb7e1b2 100644
return status;
}
--
2.24.0

View File

@ -1,11 +1,12 @@
From f5fde14ac17fd00556c20f2e137ce5e1a3608442 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/290] kernel: sched: Provide a pointer to the valid CPU
Subject: [PATCH 026/291] 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://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e2bd8c3352b171ecbd5aaae16f7abd30a82342c
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
@ -165,10 +166,10 @@ index c9ef3c532169..cb10249b1125 100644
/* Save the current cpu id for spu interrupt routing. */
ctx->last_ran = raw_smp_processor_id();
diff --git a/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c b/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c
index 912d53939f4f..6b8dc68b5ccc 100644
index a999a58ca331..d6410d0740ea 100644
--- a/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c
+++ b/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c
@@ -1435,7 +1435,7 @@ static int pseudo_lock_dev_mmap(struct file *filp, struct vm_area_struct *vma)
@@ -1445,7 +1445,7 @@ static int pseudo_lock_dev_mmap(struct file *filp, struct vm_area_struct *vma)
* may be scheduled elsewhere and invalidate entries in the
* pseudo-locked region.
*/
@ -209,10 +210,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 64ab92f8a4a2..57ec8bb829f2 100644
index 291c12f588b5..05e7b28a03c1 100644
--- a/drivers/infiniband/hw/hfi1/sdma.c
+++ b/drivers/infiniband/hw/hfi1/sdma.c
@@ -852,14 +852,13 @@ struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
@@ -853,14 +853,13 @@ struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
{
struct sdma_rht_node *rht_node;
struct sdma_engine *sde = NULL;
@ -320,10 +321,10 @@ index ff956ccbb6df..7bb129c5b412 100644
}
diff --git a/kernel/fork.c b/kernel/fork.c
index aef1430bdce0..173e010cba45 100644
index 8cb5cd7c97e1..8c285876eb52 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)
@@ -840,6 +840,8 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
#ifdef CONFIG_STACKPROTECTOR
tsk->stack_canary = get_random_canary();
#endif
@ -333,7 +334,7 @@ index aef1430bdce0..173e010cba45 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 78ecdfae25b6..39bb4b3eb1bf 100644
index 2befd2c4ce9e..07dc66137a26 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)
@ -474,7 +475,7 @@ index 78ecdfae25b6..39bb4b3eb1bf 100644
raw_spin_unlock_irqrestore(&p->pi_lock, flags);
out_unlock:
@@ -5495,7 +5495,7 @@ int task_can_attach(struct task_struct *p,
@@ -5496,7 +5496,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
@ -483,7 +484,7 @@ index 78ecdfae25b6..39bb4b3eb1bf 100644
*/
if (p->flags & PF_NO_SETAFFINITY) {
ret = -EINVAL;
@@ -5522,7 +5522,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
@@ -5523,7 +5523,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
if (curr_cpu == target_cpu)
return 0;
@ -492,7 +493,7 @@ index 78ecdfae25b6..39bb4b3eb1bf 100644
return -EINVAL;
/* TODO: This is not properly updating schedstats */
@@ -5660,7 +5660,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
@@ -5661,7 +5661,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
put_prev_task(rq, next);
/*
@ -572,7 +573,7 @@ index ebec37cb3be9..4b13df38c069 100644
!dl_task(task) ||
!task_on_rq_queued(task))) {
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index b40d8c71e335..da5d60d25c27 100644
index b5e03fc56d65..6e6d9e999814 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -1662,7 +1662,7 @@ static void task_numa_compare(struct task_numa_env *env,
@ -593,7 +594,7 @@ index b40d8c71e335..da5d60d25c27 100644
continue;
env->dst_cpu = cpu;
@@ -5800,7 +5800,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p,
@@ -5743,7 +5743,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),
@ -602,7 +603,7 @@ index b40d8c71e335..da5d60d25c27 100644
continue;
local_group = cpumask_test_cpu(this_cpu,
@@ -5932,7 +5932,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this
@@ -5875,7 +5875,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 */
@ -611,7 +612,7 @@ index b40d8c71e335..da5d60d25c27 100644
if (available_idle_cpu(i)) {
struct rq *rq = cpu_rq(i);
struct cpuidle_state *idle = idle_get_state(rq);
@@ -5972,7 +5972,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p
@@ -5915,7 +5915,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p
{
int new_cpu = cpu;
@ -620,7 +621,7 @@ index b40d8c71e335..da5d60d25c27 100644
return prev_cpu;
/*
@@ -6089,7 +6089,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
@@ -6032,7 +6032,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
if (!test_idle_cores(target, false))
return -1;
@ -629,7 +630,7 @@ index b40d8c71e335..da5d60d25c27 100644
for_each_cpu_wrap(core, cpus, target) {
bool idle = true;
@@ -6123,7 +6123,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t
@@ -6066,7 +6066,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)) {
@ -638,7 +639,7 @@ index b40d8c71e335..da5d60d25c27 100644
continue;
if (available_idle_cpu(cpu))
return cpu;
@@ -6186,7 +6186,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
@@ -6129,7 +6129,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;
@ -647,7 +648,7 @@ index b40d8c71e335..da5d60d25c27 100644
continue;
if (available_idle_cpu(cpu))
break;
@@ -6223,7 +6223,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
@@ -6166,7 +6166,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) &&
@ -656,7 +657,7 @@ index b40d8c71e335..da5d60d25c27 100644
/*
* Replace recent_used_cpu with prev as it is a potential
* candidate for the next wake:
@@ -6441,7 +6441,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f
@@ -6384,7 +6384,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)
@ -665,7 +666,7 @@ index b40d8c71e335..da5d60d25c27 100644
}
rcu_read_lock();
@@ -7180,14 +7180,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
@@ -7123,14 +7123,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
@ -682,7 +683,7 @@ index b40d8c71e335..da5d60d25c27 100644
int cpu;
schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
@@ -7207,7 +7207,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
@@ -7150,7 +7150,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) {
@ -691,7 +692,7 @@ index b40d8c71e335..da5d60d25c27 100644
env->flags |= LBF_DST_PINNED;
env->new_dst_cpu = cpu;
break;
@@ -7804,7 +7804,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd)
@@ -7747,7 +7747,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd)
/*
* Group imbalance indicates (and tries to solve) the problem where balancing
@ -700,7 +701,7 @@ index b40d8c71e335..da5d60d25c27 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.
@@ -8419,7 +8419,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env)
@@ -8362,7 +8362,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
@ -709,7 +710,7 @@ index b40d8c71e335..da5d60d25c27 100644
*/
if (busiest->group_type == group_imbalanced)
goto force_balance;
@@ -8815,7 +8815,7 @@ static int load_balance(int this_cpu, struct rq *this_rq,
@@ -8758,7 +8758,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:
*/
@ -779,3 +780,6 @@ index 5522692100ba..8b4be8e1802a 100644
trace_foo_with_template_simple("HELLO", cnt);
--
2.24.0

View File

@ -1,7 +1,8 @@
From 61ce7ed9daafbc845c8d675d1ff793f1c3cdc7dc 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/290] kernel/sched/core: add migrate_disable()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70a9ac89b97eb9275f3eb6d7adbba77ddd059fee
Subject: [PATCH 027/291] kernel/sched/core: add migrate_disable()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
---
include/linux/preempt.h | 23 +++++++
@ -85,7 +86,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 39bb4b3eb1bf..1a1ffb873d22 100644
index 07dc66137a26..d0450f06612c 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
@ -144,7 +145,7 @@ index 39bb4b3eb1bf..1a1ffb873d22 100644
if (task_running(rq, p) || p->state == TASK_WAKING) {
struct migration_arg arg = { p, dest_cpu };
/* Need help from migration thread: drop lock and wait. */
@@ -7104,3 +7133,100 @@ const u32 sched_prio_to_wmult[40] = {
@@ -7105,3 +7134,100 @@ const u32 sched_prio_to_wmult[40] = {
};
#undef CREATE_TRACE_POINTS
@ -260,3 +261,6 @@ index 78fadf0438ea..5027158d3908 100644
#undef PN_SCHEDSTAT
#undef PN
#undef __PN
--
2.24.0

View File

@ -1,8 +1,9 @@
From bd7f5c8faa18b9f1d37703913f1570138422d3da 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/290] sched/migrate_disable: Add export_symbol_gpl for
Subject: [PATCH 028/291] sched/migrate_disable: Add export_symbol_gpl for
__migrate_disabled
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ef09fdabc9d1ade69d87d4d674857172b6d172ee
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Jonathan reported that lttng/modules can't use __migrate_disabled().
This function is only used by sched/core itself and the tracing
@ -21,7 +22,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 1a1ffb873d22..a33c2c18628d 100644
index d0450f06612c..e6022cc2605b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1013,6 +1013,7 @@ int __migrate_disabled(struct task_struct *p)
@ -32,3 +33,6 @@ index 1a1ffb873d22..a33c2c18628d 100644
#endif
static void __do_set_cpus_allowed_tail(struct task_struct *p,
--
2.24.0

View File

@ -1,7 +1,8 @@
From 947af8820a4dd6fc2c767f8fe42428555bea5600 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/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
Subject: [PATCH 029/291] 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.90-rt35.tar.xz
Currently the driver will disable the clock and enable it one line later
if it is switching from periodic mode into one shot.
@ -92,3 +93,6 @@ index 43f4d5c4d6fa..de6baf564dfe 100644
.set_state_periodic = tc_set_periodic,
.set_state_oneshot = tc_set_oneshot,
},
--
2.24.0

View File

@ -1,11 +1,12 @@
From 13089a9a78c41543e74768f0322a9eeabd65a5e1 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/290] clocksource: TCLIB: Allow higher clock rates for
Subject: [PATCH 030/291] 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://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8abf3e475b2921798e61e686140e077146360f1a
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution.
@ -164,3 +165,6 @@ index 3726eacdf65d..0900dec7ec04 100644
config DUMMY_IRQ
tristate "Dummy IRQ handler"
default n
--
2.24.0

View File

@ -1,7 +1,8 @@
From 4d016dbd1b8f0ec0d903af01d0ab3c7b83bd8799 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/290] timekeeping: Split jiffies seqlock
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37dae8435d79cbcc247b536cb16f55db30295418
Subject: [PATCH 031/291] timekeeping: Split jiffies seqlock
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so
it can be taken in atomic context on RT.
@ -135,10 +136,10 @@ index 5b33e2f5c0ed..54fd344ef973 100644
ts->timer_expires_base = basemono;
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index c2708e1f0c69..13477f8ee80e 100644
index 81ee5b83c920..512db778f442 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -2418,8 +2418,10 @@ EXPORT_SYMBOL(hardpps);
@@ -2394,8 +2394,10 @@ EXPORT_SYMBOL(hardpps);
*/
void xtime_update(unsigned long ticks)
{
@ -165,3 +166,6 @@ index 141ab3ab0354..099737f6f10c 100644
#define CS_NAME_LEN 32
--
2.24.0

View File

@ -1,7 +1,8 @@
From d9af1e0a1659a5d42d0495e38677bd8fb8fd0aaf 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/290] signal: Revert ptrace preempt magic
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34b289f78753746be46c707628324cd79730dac2
Subject: [PATCH 032/291] signal: Revert ptrace preempt magic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more
than a bandaid around the ptrace design trainwreck. It's not a
@ -13,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 8 deletions(-)
diff --git a/kernel/signal.c b/kernel/signal.c
index 0e6bc3049427..d5a9646b3538 100644
index 7278302e3485..6b9d4bbfa9df 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -2094,15 +2094,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
@@ -2098,15 +2098,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
if (gstop_done && ptrace_reparented(current))
do_notify_parent_cldstop(current, false, why);
@ -32,3 +33,6 @@ index 0e6bc3049427..d5a9646b3538 100644
freezable_schedule();
} else {
/*
--
2.24.0

View File

@ -1,7 +1,8 @@
From df3cd4ac6e62e719cadc664491e6dfe9f501e305 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/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
Subject: [PATCH 033/291] net: sched: Use msleep() instead of yield()
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -46,10 +47,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 30e32df5f84a..0b9c494f64b0 100644
index 8a4d01e427a2..4ab20f1138fd 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1192,7 +1192,7 @@ void dev_deactivate_many(struct list_head *head)
@@ -1204,7 +1204,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))
@ -58,3 +59,6 @@ index 30e32df5f84a..0b9c494f64b0 100644
/* The new qdisc is assigned at this point so we can safely
* unwind stale skb lists and qdisc statistics
*/
--
2.24.0

View File

@ -1,7 +1,8 @@
From a159d24537239954b6315ccc562c3e8cab89f5ed 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/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
Subject: [PATCH 034/291] dm rq: remove BUG_ON(!irqs_disabled) check
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
In commit 052189a2ec95 ("dm: remove superfluous irq disablement in
dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a
@ -31,3 +32,6 @@ index 4d36373e1c0f..12ed08245130 100644
}
}
--
2.24.0

View File

@ -1,7 +1,8 @@
From 07883a7dceb3c9bbdd7c8deb51d2d069cda79118 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/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
Subject: [PATCH 035/291] usb: do no disable interrupts in giveback
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") the USB code disables interrupts before invoking the complete
@ -40,3 +41,6 @@ index b82a7d787add..2f3015356124 100644
usb_anchor_resume_wakeups(anchor);
atomic_dec(&urb->use_count);
--
2.24.0

View File

@ -1,7 +1,8 @@
From 1354583e3f4c2811caec1d3c97ac3835246ec7ef 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/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
Subject: [PATCH 036/291] rt: Provide PREEMPT_RT_BASE config switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Introduce PREEMPT_RT_BASE which enables parts of
PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT
@ -58,3 +59,6 @@ index cd1655122ec0..027db5976c2f 100644
- bool
\ No newline at end of file
+ bool
--
2.24.0

View File

@ -1,7 +1,8 @@
From 6663ab6c43da36389be915ad106047ee1afb6a8d 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/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
Subject: [PATCH 037/291] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
There are "valid" GFP_ATOMIC allocations such as
@ -46,7 +47,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e76d16ac2776..04a45d6d0167 100644
index af35f5caadbe..e40ba59efe7f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -934,7 +934,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
@ -70,3 +71,6 @@ 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.24.0

View File

@ -1,7 +1,8 @@
From 043f2096e98b4bf45e462337195e37d7214f7aff 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/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
Subject: [PATCH 038/291] jump-label: disable if stop_machine() is used
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes.
@ -36,3 +37,6 @@ index 185e552f1461..84f36e47e3ab 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.24.0

View File

@ -1,8 +1,9 @@
From 4ff387e1b68a6ad023a1be0934614c7fea2571b1 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/290] kconfig: Disable config options which are not RT
Subject: [PATCH 039/291] kconfig: Disable config options which are not RT
compatible
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=164a36eb11cebfda8c6eb1f79beb2a31e4dd9ce2
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Disable stuff which is known to have issues on RT
@ -37,3 +38,6 @@ index b457e94ae618..0dddbb2a3282 100644
select COMPACTION
select RADIX_TREE_MULTIORDER
help
--
2.24.0

View File

@ -1,10 +1,11 @@
From 203f0695996b8484c7cf3978c6d66ef5cf5122fa 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/290] lockdep: disable self-test
Subject: [PATCH 040/291] lockdep: disable self-test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bff275d06e885f7b51dbac8b2e93867616852378
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -29,3 +30,6 @@ index 46a910acce3f..38cf7f81daa7 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.24.0

View File

@ -1,7 +1,8 @@
From e6f803613e75df4c54389b97fda1cb6d239d70da 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/290] mm: Allow only slub on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f04e50899757b5f50979fa506c88bd78d17c49b6
Subject: [PATCH 041/291] mm: Allow only slub on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.
@ -31,3 +32,6 @@ index 47035b5a46f6..ae9a0113a699 100644
help
SLOB replaces the stock allocator with a drastically simpler
allocator. SLOB is generally more space efficient but
--
2.24.0

View File

@ -1,10 +1,11 @@
From ce4dfdbd95a61055f3cf6a29ecaed9d195bda6d6 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/290] locking: Disable spin on owner for RT
Subject: [PATCH 042/291] locking: Disable spin on owner for RT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb7c18e5a29066807df152c5b7d6cd2cf66e0301
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Drop spin on owner for mutex / rwsem. We are most likely not using it
but…
@ -32,3 +33,6 @@ index 84d882f3e299..af27c4000812 100644
config LOCK_SPIN_ON_OWNER
def_bool y
--
2.24.0

View File

@ -1,7 +1,8 @@
From 0828aeddb0ee251954aad102cc5de568f0b94aca 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/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
Subject: [PATCH 043/291] rcu: Disable RCU_FAST_NO_HZ on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
@ -24,3 +25,6 @@ index 9210379c0353..644264be90f0 100644
default n
help
This option permits CPUs to enter dynticks-idle state even if
--
2.24.0

View File

@ -1,7 +1,8 @@
From 8572bd12065e844033ac5dc1513ac6e375f102f5 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/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
Subject: [PATCH 044/291] rcu: make RCU_BOOST default on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -28,3 +29,6 @@ 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.24.0

View File

@ -1,7 +1,8 @@
From dbed6df30f02693175cf4859cc59ed5c164bc939 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/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
Subject: [PATCH 045/291] sched: Disable CONFIG_RT_GROUP_SCHED on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Carsten reported problems when running:
@ -29,3 +30,6 @@ index ae9a0113a699..61e8b531649b 100644
default n
help
This feature lets you explicitly allocate real CPU bandwidth
--
2.24.0

View File

@ -1,10 +1,11 @@
From 5069703501d3a9941838df3cd946b5e4c41d7e04 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/290] net/core: disable NET_RX_BUSY_POLL
Subject: [PATCH 046/291] net/core: disable NET_RX_BUSY_POLL
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86b04e83f0deb1dce266ca11efb35281d2d76566
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
sk_busy_loop() does preempt_disable() followed by a few operations which can
take sleeping locks and may get long.
@ -32,3 +33,6 @@ index 228dfa382eec..bc8d01996f22 100644
config BQL
bool
--
2.24.0

View File

@ -1,7 +1,8 @@
From e9ece8f9dc53c0d74f9fe98b534d0e753c517281 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/290] arm*: disable NEON in kernel mode
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0a5f99c6726ff40c5f1173b951484e2b41d527a
Subject: [PATCH 047/291] arm*: disable NEON in kernel mode
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
NEON in kernel mode is used by the crypto algorithms and raid6 code.
While the raid6 code looks okay, the crypto algorithms do not: NEON
@ -160,3 +161,6 @@ index 34b4e3d46aab..ae055cdad8cf 100644
crc32_pmull_algs[0].update = crc32_pmull_update;
crc32_pmull_algs[1].update = crc32c_pmull_update;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 98313a22669a4dc95b20a2d09b91ccb788afb8b2 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/290] powerpc: Use generic rwsem on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=58d37daded0023f403aec29501462e8499eeb016
Subject: [PATCH 048/291] powerpc: Use generic rwsem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Use generic code which uses rtmutex
@ -27,3 +28,6 @@ index a80669209155..9952764db9c5 100644
config GENERIC_LOCKBREAK
bool
--
2.24.0

View File

@ -1,8 +1,9 @@
From 0575c26ddd4406cd80932c9fca520f4e602110cd 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/290] powerpc/kvm: Disable in-kernel MPIC emulation for
Subject: [PATCH 049/291] powerpc/kvm: Disable in-kernel MPIC emulation for
PREEMPT_RT_FULL
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98667cc1926223ba114f4e52611633d0d8f0af87
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -39,3 +40,6 @@ index 68a0e9d5b440..6f4d5d7615af 100644
select HAVE_KVM_IRQCHIP
select HAVE_KVM_IRQFD
select HAVE_KVM_IRQ_ROUTING
--
2.24.0

View File

@ -1,7 +1,8 @@
From 688d9558ce5aee4f904f63182e3b4d23bb4a9792 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/290] powerpc: Disable highmem on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=648dcdb872f08b4c6a613140a10ee3eb6df95ed6
Subject: [PATCH 050/291] powerpc: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The current highmem handling on -RT is not compatible and needs fixups.
@ -23,3 +24,6 @@ index 9952764db9c5..1563820a37e8 100644
source kernel/Kconfig.hz
--
2.24.0

View File

@ -1,7 +1,8 @@
From 0c1e53d4534612ac67956790bde4c6d4e9eb8981 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/290] mips: Disable highmem on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10a1793ef40f4036a0b0c4c51e9fcdc1899e64ba
Subject: [PATCH 051/291] mips: Disable highmem on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The current highmem handling on -RT is not compatible and needs fixups.
@ -11,10 +12,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 201caf226b47..bd268302efa4 100644
index a830a9701e50..3d5fae3891be 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2517,7 +2517,7 @@ config MIPS_CRC_SUPPORT
@@ -2518,7 +2518,7 @@ config MIPS_CRC_SUPPORT
#
config HIGHMEM
bool "High Memory Support"
@ -23,3 +24,6 @@ index 201caf226b47..bd268302efa4 100644
config CPU_SUPPORTS_HIGHMEM
bool
--
2.24.0

View File

@ -1,7 +1,8 @@
From 3f49b83521789612e3946f2e3ddfc7ec52abc6b0 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/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
Subject: [PATCH 052/291] x86: Use generic rwsem_spinlocks on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
@ -12,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 04a45d6d0167..1b05ae86bdde 100644
index e40ba59efe7f..f22e787329cf 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -264,8 +264,11 @@ config ARCH_MAY_HAVE_PC_FDC
@ -28,3 +29,6 @@ index 04a45d6d0167..1b05ae86bdde 100644
config GENERIC_CALIBRATE_DELAY
def_bool y
--
2.24.0

View File

@ -1,7 +1,8 @@
From 4f41629bce81abd28a76c4440368bd788b659e38 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/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
Subject: [PATCH 053/291] leds: trigger: disable CPU trigger on -RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
as it triggers:
|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141
@ -35,3 +36,6 @@ 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.24.0

View File

@ -1,7 +1,8 @@
From 2c79ea262098448777ae80d2fbba5ef53ee41eb4 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/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
Subject: [PATCH 054/291] cpufreq: drop K8's driver from beeing selected
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Ralf posted a picture of a backtrace from
@ -33,3 +34,6 @@ 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.24.0

View File

@ -1,10 +1,11 @@
From 2abf64d8df05eb498ac85316bbe4e0ded713eff2 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/290] md: disable bcache
Subject: [PATCH 055/291] md: disable bcache
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57bf213cf62320f7d35e01f133973d9f37d06f82
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
It uses anon semaphores
|drivers/md/bcache/request.c: In function cached_dev_write_complete:
@ -35,3 +36,6 @@ index f6e0a8b3a61e..18c03d79a442 100644
select CRC64
help
Allows a block device to be used as cache for other devices; uses
--
2.24.0

View File

@ -1,7 +1,8 @@
From 9dd14e0939b8782199db8b468b784df45d4c3f8f 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/290] efi: Disable runtime services on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9d785862624bbbe2fd77ed8c7e1026b21c498f0
Subject: [PATCH 056/291] efi: Disable runtime services on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Based on meassurements the EFI functions get_variable /
get_next_variable take up to 2us which looks okay.
@ -40,3 +41,6 @@ index 5db20908aa9c..1708505fdf5d 100644
static int __init setup_noefi(char *arg)
{
disable_runtime = true;
--
2.24.0

View File

@ -1,14 +1,13 @@
From 2633507842e7e7dd5c6b745727b4ec0d690ac274 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/290] printk: Add a printk kill switch
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d031b0863f46321ad8e8e7f1a8131c4703f9f006
Subject: [PATCH 057/291] printk: Add a printk kill switch
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
it does not dead-lock with the early printk code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[Aurelien Jarno: Backport to 4.19.87 due to context changes caused by
00988218f8cb2 ("printk: lock/unlock console only for new logbuf entries")]
---
include/linux/printk.h | 2 ++
kernel/printk/printk.c | 79 +++++++++++++++++++++++++++++++-----------
@ -32,7 +31,7 @@ index cf3eccfe1543..30ebf5f82a7c 100644
#ifdef CONFIG_PRINTK_NMI
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index d0d03223b45b..289605ff56e8 100644
index 845efadaf7ec..0214d876c22d 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -405,6 +405,58 @@ DEFINE_RAW_SPINLOCK(logbuf_lock);
@ -170,3 +169,6 @@ index 71381168dede..685443375dc0 100644
if (hardlockup_panic)
nmi_panic(regs, "Hard LOCKUP");
--
2.24.0

View File

@ -1,8 +1,9 @@
From 2f10ef0c470e409bfb0982641f133a396cd46281 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/290] printk: Add "force_early_printk" boot param to help
Subject: [PATCH 058/291] printk: Add "force_early_printk" boot param to help
with debugging
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e71d5b7d64fa1dd11f7ef2a2bd482f704d6de200
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Gives me an option to screw printk and actually see what the machine
says.
@ -16,7 +17,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 289605ff56e8..210cdac1458d 100644
index 0214d876c22d..9a7f259dbb20 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -435,6 +435,13 @@ asmlinkage void early_printk(const char *fmt, ...)
@ -33,3 +34,6 @@ index 289605ff56e8..210cdac1458d 100644
void printk_kill(void)
{
printk_killswitch = true;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 9e91087e1107b31abd5e3b5ce129e47a16253707 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/290] preempt: Provide preempt_*_(no)rt variants
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05ad3e257a527d9072919b02e0cff6078055eed0
Subject: [PATCH 059/291] preempt: Provide preempt_*_(no)rt variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
@ -47,3 +48,6 @@ index 3196d0e76719..f7a17fcc3fec 100644
#ifdef CONFIG_PREEMPT_NOTIFIERS
struct preempt_notifier;
--
2.24.0

View File

@ -1,8 +1,9 @@
From db36aad65079786bbb06ee45e5f5c34c02b3acaf 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/290] futex: workaround migrate_disable/enable in different
Subject: [PATCH 060/291] futex: workaround migrate_disable/enable in different
context
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5182d12b0ac95cf21c3206e06142566001edacc6
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
migrate_disable()/migrate_enable() takes a different path in atomic() vs
!atomic() context. These little hacks ensure that we don't underflow / overflow
@ -16,10 +17,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 19 insertions(+)
diff --git a/kernel/futex.c b/kernel/futex.c
index afdc5eadce6e..304f07d08c95 100644
index e75ad30aa7bc..5c8053098fc8 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2876,6 +2876,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
@@ -2879,6 +2879,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
* before __rt_mutex_start_proxy_lock() is done.
*/
raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
@ -34,7 +35,7 @@ index afdc5eadce6e..304f07d08c95 100644
spin_unlock(q.lock_ptr);
/*
* __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
@@ -2884,6 +2892,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
@@ -2887,6 +2895,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
*/
ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current);
raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock);
@ -42,7 +43,7 @@ index afdc5eadce6e..304f07d08c95 100644
if (ret) {
if (ret == 1)
@@ -3032,11 +3041,21 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
@@ -3035,11 +3044,21 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
* rt_waiter. Also see the WARN in wake_futex_pi().
*/
raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
@ -64,3 +65,6 @@ index afdc5eadce6e..304f07d08c95 100644
put_pi_state(pi_state);
/*
--
2.24.0

View File

@ -1,7 +1,8 @@
From 071d70cf7a6d5ebc7050308f88be8777ad38f69a 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/290] rt: Add local irq locks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed800ca05696e34346bf329c70ad735f9661075b
Subject: [PATCH 061/291] rt: Add local irq locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Introduce locallock. For !RT this maps to preempt_disable()/
local_irq_disable() so there is not much that changes. For RT this will
@ -335,3 +336,6 @@ index 70b7123f38c7..24421bf8c4b3 100644
/* minimum unit size, also is the maximum supported allocation size */
#define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
--
2.24.0

View File

@ -1,7 +1,8 @@
From a242fd05b7f4d53e53733c9055315c30c3433fb1 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/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
Subject: [PATCH 062/291] locallock: provide {get,put}_locked_ptr() variants
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Provide a set of locallocked accessors for pointers to per-CPU data;
this is useful for dynamically-allocated per-CPU regions, for example.
@ -43,3 +44,6 @@ index d658c2552601..921eab83cd34 100644
#define local_lock_cpu(lvar) get_cpu()
#define local_unlock_cpu(lvar) put_cpu()
--
2.24.0

View File

@ -1,7 +1,8 @@
From 8c311c3b11935f5963075e2c1ede0b92863cfcf1 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/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
Subject: [PATCH 063/291] mm/scatterlist: Do not disable irqs on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
For -RT it is enough to keep pagefault disabled (which is currently handled by
kmap_atomic()).
@ -24,3 +25,6 @@ index 8c3036c37ba0..336162c2813f 100644
kunmap_atomic(miter->addr);
} else
kunmap(miter->page);
--
2.24.0

View File

@ -1,7 +1,8 @@
From ebfdfb6456fcba5ed6d8dc35e0ca52db72a87cca 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/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
Subject: [PATCH 064/291] signal/x86: Delay calling signals in atomic
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
@ -94,10 +95,10 @@ index 038d0faaa1d5..c87c11bfd9d9 100644
size_t sas_ss_size;
unsigned int sas_ss_flags;
diff --git a/kernel/signal.c b/kernel/signal.c
index d5a9646b3538..56edb0580a3a 100644
index 6b9d4bbfa9df..3565221b4fac 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1268,8 +1268,8 @@ int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p,
@@ -1272,8 +1272,8 @@ int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p,
* We don't want to have recursive SIGSEGV's etc, for example,
* that is why we also clear SIGNAL_UNKILLABLE.
*/
@ -108,7 +109,7 @@ index d5a9646b3538..56edb0580a3a 100644
{
unsigned long int flags;
int ret, blocked, ignored;
@@ -1298,6 +1298,39 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
@@ -1302,6 +1302,39 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
return ret;
}
@ -148,3 +149,6 @@ index d5a9646b3538..56edb0580a3a 100644
/*
* Nuke all other threads in the group.
*/
--
2.24.0

View File

@ -1,7 +1,8 @@
From b86af89277597aa054eed1dc69417bc959f2b347 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/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
Subject: [PATCH 065/291] x86/signal: delay calling signals on 32bit
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
When running some ptrace single step tests on x86-32 machine, the below problem
is triggered:
@ -43,3 +44,6 @@ index fb0438d06ca7..c00e27af2205 100644
#define ARCH_RT_DELAYS_SIGNAL_SEND
#endif
--
2.24.0

View File

@ -1,7 +1,8 @@
From c0f5bfc27c440bc3c6cc4bc60045cd9c28d932ad 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/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
Subject: [PATCH 066/291] buffer_head: Replace bh_uptodate_lock for -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
@ -191,3 +192,6 @@ index 96225a77c112..8a1bcfb145d7 100644
/*
* macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
* and buffer_foo() functions.
--
2.24.0

View File

@ -1,8 +1,9 @@
From 52fddde4582134cacf5a692ab51f3d0a43de2efa 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/290] fs: jbd/jbd2: Make state lock and journal head lock
Subject: [PATCH 067/291] fs: jbd/jbd2: Make state lock and journal head lock
rt safe
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b440221d5e434ba95db2a0b09d00162e95b55d93
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
bit_spin_locks break under RT.
@ -44,7 +45,7 @@ index 8a1bcfb145d7..5869330d1f38 100644
}
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 1cf1b9b8e975..2e3266736094 100644
index 268f3000d1b3..8f5d6ecb802e 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)
@ -104,3 +105,6 @@ index 1cf1b9b8e975..2e3266736094 100644
}
#define J_ASSERT(assert) BUG_ON(!(assert))
--
2.24.0

View File

@ -1,7 +1,8 @@
From 0ce3eda31c573ee39d4b22db00e980f5b2463d15 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/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
Subject: [PATCH 068/291] list_bl: Make list head locking RT safe
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -115,3 +116,6 @@ index 3fc2cc57ba1b..69b659259bac 100644
}
static inline bool hlist_bl_is_locked(struct hlist_bl_head *b)
--
2.24.0

View File

@ -1,7 +1,8 @@
From 488f7a9c44a9ae28e258ca909a5d338820395943 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/290] list_bl: fixup bogus lockdep warning
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f7a92e93b3e1260267a4fbe03c549dbe23303fe
Subject: [PATCH 069/291] list_bl: fixup bogus lockdep warning
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
At first glance, the use of 'static inline' seems appropriate for
INIT_HLIST_BL_HEAD().
@ -98,3 +99,6 @@ index 69b659259bac..0b5de7d9ffcf 100644
static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
{
--
2.24.0

View File

@ -1,7 +1,8 @@
From 082d02b81690735ef8e3879a14bc3b2a01209aa1 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/290] genirq: Disable irqpoll on -rt
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=470aeaaf1d6efae4d4a409a9d8143c408474f8b7
Subject: [PATCH 070/291] genirq: Disable irqpoll on -rt
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Creates long latencies for no value
@ -37,3 +38,6 @@ index d867d6ddafdd..cd12ee86c01e 100644
irqfixup = 2;
printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
"enabled\n");
--
2.24.0

View File

@ -1,7 +1,8 @@
From a863959ff793c9eb01af152ae87968428df9cef1 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/290] genirq: Force interrupt thread on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e83f2ae9e4c5b28fb9364ca7ee72d3f721f7f4ef
Subject: [PATCH 071/291] genirq: Force interrupt thread on RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Force threaded_irqs and optimize the code (force_irqthreads) in regard
to this.
@ -48,3 +49,6 @@ index 23bcfa71077f..3c26d0708709 100644
#endif
static void __synchronize_hardirq(struct irq_desc *desc, bool sync_chip)
--
2.24.0

View File

@ -1,8 +1,9 @@
From 40ffd160bf0a9773c74fb394f24a3ff35c8d5c79 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/290] Split IRQ-off and zone->lock while freeing pages from
Subject: [PATCH 072/291] Split IRQ-off and zone->lock while freeing pages from
PCP list #1
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fdb74e76cbdf28ba0fc148ff245ebe35ffcb059
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
@ -17,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 52 insertions(+), 30 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 2d04bd2e1ced..332b48f38d1e 100644
index 74fb5c338e8f..3b51ad4a6089 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1095,7 +1095,7 @@ static inline void prefetch_buddy(struct page *page)
@ -111,7 +112,7 @@ index 2d04bd2e1ced..332b48f38d1e 100644
}
static void free_one_page(struct zone *zone,
@@ -2536,13 +2543,18 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
@@ -2544,13 +2551,18 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
{
unsigned long flags;
int to_drain, batch;
@ -131,7 +132,7 @@ index 2d04bd2e1ced..332b48f38d1e 100644
}
#endif
@@ -2558,14 +2570,21 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
@@ -2566,14 +2578,21 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
unsigned long flags;
struct per_cpu_pageset *pset;
struct per_cpu_pages *pcp;
@ -155,7 +156,7 @@ index 2d04bd2e1ced..332b48f38d1e 100644
}
/*
@@ -2787,7 +2806,10 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
@@ -2795,7 +2814,10 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
pcp->count++;
if (pcp->count >= pcp->high) {
unsigned long batch = READ_ONCE(pcp->batch);
@ -167,3 +168,6 @@ index 2d04bd2e1ced..332b48f38d1e 100644
}
}
--
2.24.0

View File

@ -1,8 +1,9 @@
From b1dd295e939a677f850e22b8baf141e609797430 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/290] Split IRQ-off and zone->lock while freeing pages from
Subject: [PATCH 073/291] Split IRQ-off and zone->lock while freeing pages from
PCP list #2
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4804f6aa4033e6fc037ec95843c4f4a7768b9d27
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
@ -17,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 50 insertions(+), 10 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 332b48f38d1e..55cee9a17a36 100644
index 3b51ad4a6089..49f7bb170b4d 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1105,8 +1105,8 @@ static inline void prefetch_buddy(struct page *page)
@ -59,7 +60,7 @@ index 332b48f38d1e..55cee9a17a36 100644
__free_one_page(page, page_to_pfn(page), zone, 0, mt);
trace_mm_page_pcpu_drain(page, 0, mt);
}
@@ -2554,7 +2569,7 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
@@ -2562,7 +2577,7 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
local_irq_restore(flags);
if (to_drain > 0)
@ -68,7 +69,7 @@ index 332b48f38d1e..55cee9a17a36 100644
}
#endif
@@ -2584,7 +2599,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
@@ -2592,7 +2607,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
local_irq_restore(flags);
if (count)
@ -77,7 +78,7 @@ index 332b48f38d1e..55cee9a17a36 100644
}
/*
@@ -2777,7 +2792,8 @@ static bool free_unref_page_prepare(struct page *page, unsigned long pfn)
@@ -2785,7 +2800,8 @@ static bool free_unref_page_prepare(struct page *page, unsigned long pfn)
return true;
}
@ -87,7 +88,7 @@ index 332b48f38d1e..55cee9a17a36 100644
{
struct zone *zone = page_zone(page);
struct per_cpu_pages *pcp;
@@ -2806,10 +2822,8 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
@@ -2814,10 +2830,8 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
pcp->count++;
if (pcp->count >= pcp->high) {
unsigned long batch = READ_ONCE(pcp->batch);
@ -99,7 +100,7 @@ index 332b48f38d1e..55cee9a17a36 100644
}
}
@@ -2820,13 +2834,17 @@ void free_unref_page(struct page *page)
@@ -2828,13 +2842,17 @@ void free_unref_page(struct page *page)
{
unsigned long flags;
unsigned long pfn = page_to_pfn(page);
@ -118,7 +119,7 @@ index 332b48f38d1e..55cee9a17a36 100644
}
/*
@@ -2837,6 +2855,11 @@ void free_unref_page_list(struct list_head *list)
@@ -2845,6 +2863,11 @@ void free_unref_page_list(struct list_head *list)
struct page *page, *next;
unsigned long flags, pfn;
int batch_count = 0;
@ -130,7 +131,7 @@ index 332b48f38d1e..55cee9a17a36 100644
/* Prepare pages for freeing */
list_for_each_entry_safe(page, next, list, lru) {
@@ -2849,10 +2872,12 @@ void free_unref_page_list(struct list_head *list)
@@ -2857,10 +2880,12 @@ void free_unref_page_list(struct list_head *list)
local_irq_save(flags);
list_for_each_entry_safe(page, next, list, lru) {
unsigned long pfn = page_private(page);
@ -144,7 +145,7 @@ index 332b48f38d1e..55cee9a17a36 100644
/*
* Guard against excessive IRQ disabled times when we get
@@ -2865,6 +2890,21 @@ void free_unref_page_list(struct list_head *list)
@@ -2873,6 +2898,21 @@ void free_unref_page_list(struct list_head *list)
}
}
local_irq_restore(flags);
@ -166,3 +167,6 @@ index 332b48f38d1e..55cee9a17a36 100644
}
/*
--
2.24.0

View File

@ -1,7 +1,8 @@
From 0109dfb313df01af85a47ff0105038b1e7ddb7df 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/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
Subject: [PATCH 074/291] 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.90-rt35.tar.xz
The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t
otherwise the interrupts won't be disabled on -RT. The locking rules remain
@ -613,3 +614,6 @@ index 9c3937c5ce38..ba20c68a9cfd 100644
}
for (i = 0; i < t.count; i++) {
--
2.24.0

View File

@ -1,8 +1,9 @@
From 19ad8a9e854096d3fac2791a2efea9224d34c773 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/290] mm/SLUB: delay giving back empty slubs to IRQ enabled
Subject: [PATCH 075/291] mm/SLUB: delay giving back empty slubs to IRQ enabled
regions
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89376b48dd9f6ddbfa127c973136e8308ea2f47d
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
__free_slab() is invoked with disabled interrupts which increases the
irq-off time while __free_pages() is doing the work.
@ -217,3 +218,6 @@ index ba20c68a9cfd..224663e20772 100644
if (debug_guardpage_minorder())
slub_max_order = 0;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 74ac2aa47d12cbb0d7bbb1cdc0ff04ea92341862 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/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
Subject: [PATCH 076/291] mm: page_alloc: rt-friendly per-cpu pages
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method.
@ -17,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 43 insertions(+), 20 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 55cee9a17a36..99b3861b1ef6 100644
index 49f7bb170b4d..bff6c04eb359 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -60,6 +60,7 @@
@ -60,7 +61,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
}
static void __init __free_pages_boot_core(struct page *page, unsigned int order)
@@ -2560,13 +2573,13 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
@@ -2568,13 +2581,13 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
int to_drain, batch;
LIST_HEAD(dst);
@ -76,7 +77,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
if (to_drain > 0)
free_pcppages_bulk(zone, &dst, false);
@@ -2588,7 +2601,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
@@ -2596,7 +2609,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
LIST_HEAD(dst);
int count;
@ -85,7 +86,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
pset = per_cpu_ptr(zone->pageset, cpu);
pcp = &pset->pcp;
@@ -2596,7 +2609,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
@@ -2604,7 +2617,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
if (count)
isolate_pcp_pages(count, pcp, &dst);
@ -94,7 +95,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
if (count)
free_pcppages_bulk(zone, &dst, false);
@@ -2634,6 +2647,7 @@ void drain_local_pages(struct zone *zone)
@@ -2642,6 +2655,7 @@ void drain_local_pages(struct zone *zone)
drain_pages(cpu);
}
@ -102,7 +103,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
static void drain_local_pages_wq(struct work_struct *work)
{
/*
@@ -2647,6 +2661,7 @@ static void drain_local_pages_wq(struct work_struct *work)
@@ -2655,6 +2669,7 @@ static void drain_local_pages_wq(struct work_struct *work)
drain_local_pages(NULL);
preempt_enable();
}
@ -110,7 +111,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
/*
* Spill all the per-cpu pages from all CPUs back into the buddy allocator.
@@ -2713,7 +2728,14 @@ void drain_all_pages(struct zone *zone)
@@ -2721,7 +2736,14 @@ void drain_all_pages(struct zone *zone)
else
cpumask_clear_cpu(cpu, &cpus_with_pcps);
}
@ -126,7 +127,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
for_each_cpu(cpu, &cpus_with_pcps) {
struct work_struct *work = per_cpu_ptr(&pcpu_drain, cpu);
INIT_WORK(work, drain_local_pages_wq);
@@ -2721,6 +2743,7 @@ void drain_all_pages(struct zone *zone)
@@ -2729,6 +2751,7 @@ void drain_all_pages(struct zone *zone)
}
for_each_cpu(cpu, &cpus_with_pcps)
flush_work(per_cpu_ptr(&pcpu_drain, cpu));
@ -134,7 +135,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
mutex_unlock(&pcpu_drain_mutex);
}
@@ -2840,9 +2863,9 @@ void free_unref_page(struct page *page)
@@ -2848,9 +2871,9 @@ void free_unref_page(struct page *page)
if (!free_unref_page_prepare(page, pfn))
return;
@ -146,7 +147,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
if (!list_empty(&dst))
free_pcppages_bulk(zone, &dst, false);
}
@@ -2869,7 +2892,7 @@ void free_unref_page_list(struct list_head *list)
@@ -2877,7 +2900,7 @@ void free_unref_page_list(struct list_head *list)
set_page_private(page, pfn);
}
@ -155,7 +156,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
list_for_each_entry_safe(page, next, list, lru) {
unsigned long pfn = page_private(page);
enum zone_type type;
@@ -2884,12 +2907,12 @@ void free_unref_page_list(struct list_head *list)
@@ -2892,12 +2915,12 @@ void free_unref_page_list(struct list_head *list)
* a large list of pages to free.
*/
if (++batch_count == SWAP_CLUSTER_MAX) {
@ -171,7 +172,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
for (i = 0; i < __MAX_NR_ZONES; ) {
struct page *page;
@@ -3038,7 +3061,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
@@ -3046,7 +3069,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
struct page *page;
unsigned long flags;
@ -180,7 +181,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
pcp = &this_cpu_ptr(zone->pageset)->pcp;
list = &pcp->lists[migratetype];
page = __rmqueue_pcplist(zone, migratetype, pcp, list);
@@ -3046,7 +3069,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
@@ -3054,7 +3077,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
__count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
zone_statistics(preferred_zone, zone);
}
@ -189,7 +190,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
return page;
}
@@ -3073,7 +3096,7 @@ struct page *rmqueue(struct zone *preferred_zone,
@@ -3081,7 +3104,7 @@ struct page *rmqueue(struct zone *preferred_zone,
* allocate greater than order-1 page units with __GFP_NOFAIL.
*/
WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1));
@ -198,7 +199,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
do {
page = NULL;
@@ -3093,14 +3116,14 @@ struct page *rmqueue(struct zone *preferred_zone,
@@ -3101,14 +3124,14 @@ struct page *rmqueue(struct zone *preferred_zone,
__count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
zone_statistics(preferred_zone, zone);
@ -215,7 +216,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
return NULL;
}
@@ -8096,7 +8119,7 @@ void zone_pcp_reset(struct zone *zone)
@@ -8099,7 +8122,7 @@ void zone_pcp_reset(struct zone *zone)
struct per_cpu_pageset *pset;
/* avoid races with drain_pages() */
@ -224,7 +225,7 @@ index 55cee9a17a36..99b3861b1ef6 100644
if (zone->pageset != &boot_pageset) {
for_each_online_cpu(cpu) {
pset = per_cpu_ptr(zone->pageset, cpu);
@@ -8105,7 +8128,7 @@ void zone_pcp_reset(struct zone *zone)
@@ -8108,7 +8131,7 @@ void zone_pcp_reset(struct zone *zone)
free_percpu(zone->pageset);
zone->pageset = &boot_pageset;
}
@ -233,3 +234,6 @@ index 55cee9a17a36..99b3861b1ef6 100644
}
#ifdef CONFIG_MEMORY_HOTREMOVE
--
2.24.0

View File

@ -1,7 +1,8 @@
From 82680c2474fe5d30728dcb7680d590e65182d84e 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/290] mm/swap: Convert to percpu locked
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22720b62b26a1291196199a2ac4f37ba1970d076
Subject: [PATCH 077/291] mm/swap: Convert to percpu locked
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Replace global locks (get_cpu + local_irq_save) with "local_locks()".
Currently there is one of for "rotate" and one for "swap".
@ -16,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
4 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 7bd0a6f2ac2b..e643672fa802 100644
index ee8f9f554a9e..2ad000e362bd 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -12,6 +12,7 @@
@ -55,10 +56,10 @@ index 5079ddbec8f9..c40d3a13cbbd 100644
cc->last_migrated_pfn = 0;
}
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 99b3861b1ef6..1679f5883307 100644
index bff6c04eb359..f7d30f995bc5 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -7207,8 +7207,9 @@ void __init free_area_init(unsigned long *zones_size)
@@ -7212,8 +7212,9 @@ void __init free_area_init(unsigned long *zones_size)
static int page_alloc_cpu_dead(unsigned int cpu)
{
@ -205,3 +206,6 @@ index 45fdbfb6b2a6..92f994b962f0 100644
}
#ifdef CONFIG_SMP
--
2.24.0

View File

@ -1,7 +1,8 @@
From 9f92e71858249e17821b12562d9a9436e59c78ba 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/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
Subject: [PATCH 078/291] mm: perform lru_add_drain_all() remotely
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -103,3 +104,6 @@ index 92f994b962f0..3885645a45ce 100644
mutex_unlock(&lock);
}
--
2.24.0

View File

@ -1,8 +1,9 @@
From c76d6094a239d12a17547e882af4b200f31c5a5c 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/290] mm/vmstat: Protect per cpu variables with preempt
Subject: [PATCH 079/291] mm/vmstat: Protect per cpu variables with preempt
disable on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b7191af05332f5fa21d4da8c3c4fb7c35bdb0fe
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -40,7 +41,7 @@ index f25cef84b41d..febee8649220 100644
static inline void count_vm_events(enum vm_event_item item, long delta)
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 4a387937f9f5..0cd11c5e3999 100644
index ce81b0a7d018..cfa2a3bbdf91 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -320,6 +320,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
@ -139,3 +140,6 @@ index 4a387937f9f5..0cd11c5e3999 100644
}
void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
--
2.24.0

View File

@ -1,8 +1,9 @@
From 78052a354c73655898ed1cefbe47eb18954eebf6 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/290] ARM: Initialize split page table locks for vector
Subject: [PATCH 080/291] ARM: Initialize split page table locks for vector
page
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f092992f9980fcf99ec12820e7350851848fef8a
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
@ -70,3 +71,6 @@ index 82ab015bf42b..8d3c7ce34c24 100644
#ifdef CONFIG_KUSER_HELPERS
/*
* The vectors page is always readable from user space for the
--
2.24.0

View File

@ -1,7 +1,8 @@
From e2165a1c6c5a4c2b80c3b5131bdd7c9531e5966d 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/290] mm: Enable SLUB for RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ee23601786b2fb75dfb6aaed6da438321511261
Subject: [PATCH 081/291] mm: Enable SLUB for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Avoid the memory allocation in IRQ section
@ -36,3 +37,6 @@ index 224663e20772..cbe47408c6eb 100644
}
/*
--
2.24.0

View File

@ -1,7 +1,8 @@
From df25287facb539725b686abab7eb72e03d137972 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/290] slub: Enable irqs for __GFP_WAIT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d2a7aef26031e05ab0f7d78fc15f838459aa348
Subject: [PATCH 082/291] slub: Enable irqs for __GFP_WAIT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
SYSTEM_RUNNING might be too late for enabling interrupts. Allocations
with GFP_WAIT can happen before that. So use this as an indicator.
@ -42,3 +43,6 @@ index cbe47408c6eb..81c32ceab228 100644
local_irq_disable();
if (!page)
return NULL;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 3f7490c09bf723709d2ab78d73e8af75d175d1f6 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/290] slub: Disable SLUB_CPU_PARTIAL
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31c858cb39a8bcd260d166bc3963e3dfe201c547
Subject: [PATCH 083/291] slub: Disable SLUB_CPU_PARTIAL
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915
|in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7
@ -48,3 +49,6 @@ index 61e8b531649b..b4e88fb19c26 100644
bool "SLUB per cpu partial cache"
help
Per cpu partial caches accellerate objects allocation and freeing
--
2.24.0

View File

@ -1,8 +1,9 @@
From 1465f1fb6c510e3b455896a89b990af4f7d31dd8 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/290] mm/memcontrol: Don't call schedule_work_on in
Subject: [PATCH 084/291] mm/memcontrol: Don't call schedule_work_on in
preemption disabled context
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5685864e74efa64dff382c12b2b36c2b7d27c2f
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The following trace is triggered when running ltp oom test cases:
@ -48,7 +49,7 @@ 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 65da189a433b..cc5172096d2d 100644
index 3a3d109dce21..cf9e81fb342d 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2082,7 +2082,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
@ -69,3 +70,6 @@ index 65da189a433b..cc5172096d2d 100644
mutex_unlock(&percpu_charge_mutex);
}
--
2.24.0

View File

@ -1,8 +1,9 @@
From 4e9211f677ea1a456883db3c665ffd31a8a974f2 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/290] mm/memcontrol: Replace local_irq_disable with local
Subject: [PATCH 085/291] mm/memcontrol: Replace local_irq_disable with local
locks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37c842416ddb1f501d2a36a2504945b5d79e4a5d
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks.
@ -13,7 +14,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 cc5172096d2d..90e67c468e76 100644
index cf9e81fb342d..421ac74450f6 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -69,6 +69,7 @@
@ -33,7 +34,7 @@ index cc5172096d2d..90e67c468e76 100644
/* Whether legacy memory+swap accounting is active */
static bool do_memsw_account(void)
{
@@ -4913,12 +4916,12 @@ static int mem_cgroup_move_account(struct page *page,
@@ -4922,12 +4925,12 @@ static int mem_cgroup_move_account(struct page *page,
ret = 0;
@ -48,7 +49,7 @@ index cc5172096d2d..90e67c468e76 100644
out_unlock:
unlock_page(page);
out:
@@ -6037,10 +6040,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
@@ -6046,10 +6049,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
commit_charge(page, memcg, lrucare);
@ -61,7 +62,7 @@ index cc5172096d2d..90e67c468e76 100644
if (do_memsw_account() && PageSwapCache(page)) {
swp_entry_t entry = { .val = page_private(page) };
@@ -6109,7 +6112,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
@@ -6118,7 +6121,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
memcg_oom_recover(ug->memcg);
}
@ -70,7 +71,7 @@ index cc5172096d2d..90e67c468e76 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);
@@ -6117,7 +6120,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
@@ -6126,7 +6129,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);
@ -79,7 +80,7 @@ index cc5172096d2d..90e67c468e76 100644
if (!mem_cgroup_is_root(ug->memcg))
css_put_many(&ug->memcg->css, nr_pages);
@@ -6280,10 +6283,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
@@ -6289,10 +6292,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
commit_charge(newpage, memcg, false);
@ -92,7 +93,7 @@ index cc5172096d2d..90e67c468e76 100644
}
DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key);
@@ -6475,6 +6478,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
@@ -6484,6 +6487,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;
@ -100,7 +101,7 @@ index cc5172096d2d..90e67c468e76 100644
VM_BUG_ON_PAGE(PageLRU(page), page);
VM_BUG_ON_PAGE(page_count(page), page);
@@ -6520,13 +6524,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
@@ -6529,13 +6533,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.
*/
@ -118,3 +119,6 @@ index cc5172096d2d..90e67c468e76 100644
}
/**
--
2.24.0

View File

@ -1,7 +1,8 @@
From b76cb69dc727feca28a95ed7912d3c1a32b7f9b3 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/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
Subject: [PATCH 086/291] 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.90-rt35.tar.xz
get_cpu_var() disables preemption and triggers a might_sleep() splat later.
This is replaced with get_locked_var().
@ -197,3 +198,6 @@ index 4b9063d12b93..1a2f6c13acbd 100644
migrate_read_unlock(zspage);
unpin_tag(handle);
--
2.24.0

View File

@ -1,8 +1,9 @@
From b12c6aa5ca0abacc6642ef5f9664a38eebc659e0 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/290] x86/mm/pat: disable preemption __split_large_page()
Subject: [PATCH 087/291] x86/mm/pat: disable preemption __split_large_page()
after spin_lock()
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bfec83b70be39a512d8519c2bb34f4cb620cb6b3
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a
warning if __flush_tlb_all() is invoked in preemptible context. On !RT
@ -56,3 +57,6 @@ index e2d4b25c7aa4..9626ebb9e3c8 100644
spin_unlock(&pgd_lock);
return 0;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 3bb3dc105ca3567ed9a3c0949c34212b6e1e29ab 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/290] radix-tree: use local locks
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b762851e97a0699769d8cac2a637edd30c800d1f
Subject: [PATCH 088/291] radix-tree: use local locks
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The preload functionality uses per-CPU variables and preempt-disable to
ensure that it does not switch CPUs during its usage. This patch adds
@ -18,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/include/linux/idr.h b/include/linux/idr.h
index 3ec8628ce17f..54af68158f7d 100644
index b6c6151c7446..81c9df5c04fa 100644
--- a/include/linux/idr.h
+++ b/include/linux/idr.h
@@ -169,10 +169,7 @@ static inline bool idr_is_empty(const struct idr *idr)
@ -59,7 +60,7 @@ index 34149e8b5f73..affb0fc4c5b6 100644
int radix_tree_split(struct radix_tree_root *, unsigned long index,
unsigned new_order);
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
index bc03ecc4dfd2..44257463f683 100644
index e5cab5c4e383..9309e813bc1f 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -38,7 +38,7 @@
@ -170,3 +171,6 @@ index bc03ecc4dfd2..44257463f683 100644
if (!this_cpu_read(ida_bitmap)) {
struct ida_bitmap *bitmap = kzalloc(sizeof(*bitmap), gfp);
--
2.24.0

View File

@ -1,7 +1,8 @@
From ae4363243810267b721cd1cc91172504af20f458 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/290] timers: Prepare for full preemption
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8b88eb0c9c0171975f889b404f3f0d5e8713e82
Subject: [PATCH 089/291] timers: Prepare for full preemption
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
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
@ -29,7 +30,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 a33c2c18628d..520640973942 100644
index e6022cc2605b..986ed04425be 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -498,11 +498,14 @@ void resched_cpu(int cpu)
@ -170,3 +171,6 @@ index ae64cb819a9a..9019c9caf146 100644
}
}
--
2.24.0

View File

@ -1,7 +1,8 @@
From 69f6cf117a94ffa2e96367a29529767dcb1d8e01 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/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
Subject: [PATCH 090/291] x86: kvm Require const tsc for RT
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Non constant TSC is a nightmare on bare metal already, but with
virtualization it becomes a complete disaster because the workarounds
@ -14,10 +15,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 6ae8a013af31..c936e1848f28 100644
index 353f63f3b262..2611898419ff 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6787,6 +6787,13 @@ int kvm_arch_init(void *opaque)
@@ -6832,6 +6832,13 @@ int kvm_arch_init(void *opaque)
goto out;
}
@ -31,3 +32,6 @@ index 6ae8a013af31..c936e1848f28 100644
r = kvm_mmu_module_init();
if (r)
goto out_free_percpu;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 841762dfdf68aeabfd6b0fa45b6337f55e632550 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/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
Subject: [PATCH 091/291] 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.90-rt35.tar.xz
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
@ -109,3 +110,6 @@ index 72db2e0ebced..77d4fb86d05b 100644
list_del_init(&stuser->list);
stuser_put(stuser);
}
--
2.24.0

View File

@ -1,10 +1,11 @@
From 4d037c94e1a96fbb44377bb71fb62678ddeadf5f 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/290] wait.h: include atomic.h
Subject: [PATCH 092/291] wait.h: include atomic.h
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a750424efdceb04843eb5c9be84b0e070985534
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
| CC init/main.o
|In file included from include/linux/mmzone.h:9:0,
@ -36,3 +37,6 @@ index ed7c122cb31f..2b5ef8e94d19 100644
typedef struct wait_queue_entry wait_queue_entry_t;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 678ffba561d271dc2b667925993a805e3e704fa6 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/290] work-simple: Simple work queue implemenation
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b23368647741af52610dd7e6e8955ef23eab50ea
Subject: [PATCH 093/291] work-simple: Simple work queue implemenation
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Provides a framework for enqueuing callbacks from irq context
PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.
@ -240,3 +241,6 @@ index 000000000000..a5b89fdacf19
+ mutex_unlock(&worker_mutex);
+}
+EXPORT_SYMBOL_GPL(swork_put);
--
2.24.0

View File

@ -1,8 +1,9 @@
From e630efe32f11a9b6bb1cd2125d72c2042aabdf79 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/290] work-simple: drop a shit statement in
Subject: [PATCH 094/291] work-simple: drop a shit statement in
SWORK_EVENT_PENDING
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4333ab9ff36a8ec80e8b72a146602c8bf41acf24
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Dan Carpenter reported
| smatch warnings:
@ -31,3 +32,6 @@ index a5b89fdacf19..c90d14b9b126 100644
static DEFINE_MUTEX(worker_mutex);
static struct sworker *glob_worker;
--
2.24.0

View File

@ -1,7 +1,8 @@
From 501d25c451ea4875bcaaf1e03db60549693b5b02 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/290] completion: Use simple wait queues
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98054900c031519e7190d077f9875ef459fcc8e7
Subject: [PATCH 095/291] completion: Use simple wait queues
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the
@ -319,10 +320,10 @@ index a1ad5b7d5521..755a58084978 100644
}
EXPORT_SYMBOL(completion_done);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 520640973942..ba6d51c7df61 100644
index 986ed04425be..584978640512 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7153,7 +7153,10 @@ void migrate_disable(void)
@@ -7154,7 +7154,10 @@ void migrate_disable(void)
return;
}
#ifdef CONFIG_SCHED_DEBUG
@ -334,7 +335,7 @@ index 520640973942..ba6d51c7df61 100644
#endif
if (p->migrate_disable) {
@@ -7183,7 +7186,10 @@ void migrate_enable(void)
@@ -7184,7 +7187,10 @@ void migrate_enable(void)
}
#ifdef CONFIG_SCHED_DEBUG
@ -385,3 +386,6 @@ index 66b59ac77c22..c7cb30cdd1b7 100644
{
wait->task = current;
if (list_empty(&wait->task_list))
--
2.24.0

View File

@ -1,7 +1,8 @@
From 9765896344d21aacd56cf3e8a1f2f1c1e30779cf 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/290] fs/aio: simple simple work
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=824fb4cfaff29a2b6013b74084736a71b3c3647a
Subject: [PATCH 096/291] fs/aio: simple simple work
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
@ -83,3 +84,6 @@ index 911e23087dfb..16dcf8521c2c 100644
static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
{
unsigned i, new_nr;
--
2.24.0

View File

@ -1,8 +1,9 @@
From 3b496e3467c3a76558a4d6695e60bc78481b30db 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/290] genirq: Do not invoke the affinity callback via a
Subject: [PATCH 097/291] genirq: Do not invoke the affinity callback via a
workqueue on RT
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59cce101e50e9b0f9d6b978848521f8dc629b260
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep()
@ -136,3 +137,6 @@ index 3c26d0708709..eadcbfbd434a 100644
kref_put(&old_notify->kref, old_notify->release);
}
--
2.24.0

View File

@ -1,8 +1,9 @@
From 46d2a1a8dce9bfd02328affe4407e51245bbf34d 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/290] time/hrtimer: avoid schedule_work() with interrupts
Subject: [PATCH 098/291] time/hrtimer: avoid schedule_work() with interrupts
disabled
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60f0f171fd7d0f16aef78b604efb7156d5d1ad68
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
The NOHZ code tries to schedule a workqueue with interrupts disabled.
Since this does not work -RT I am switching it to swork instead.
@ -54,3 +55,6 @@ index 9019c9caf146..3fab1c50bf1b 100644
int timer_migration_handler(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp,
loff_t *ppos)
--
2.24.0

View File

@ -1,8 +1,9 @@
From 60c6d506604f96849de575eab0339febb39c5058 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/290] hrtimer: consolidate hrtimer_init() +
Subject: [PATCH 099/291] hrtimer: consolidate hrtimer_init() +
hrtimer_init_sleeper() calls
Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=956094850303bfde3d1c8d990ce9a247053d2c63
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.90-rt35.tar.xz
hrtimer_init_sleeper() calls require a prior initialisation of the
hrtimer object with hrtimer_init(). Lets make the initialisation of
@ -125,10 +126,10 @@ index 2b5ef8e94d19..94bd2e841de6 100644
hrtimer_start_range_ns(&__t.timer, timeout, \
current->timer_slack_ns, \
diff --git a/kernel/futex.c b/kernel/futex.c
index 304f07d08c95..ccf933ac2997 100644
index 5c8053098fc8..23e1f8a478e8 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2701,10 +2701,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
@@ -2704,10 +2704,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
if (abs_time) {
to = &timeout;
@ -142,7 +143,7 @@ index 304f07d08c95..ccf933ac2997 100644
hrtimer_set_expires_range_ns(&to->timer, *abs_time,
current->timer_slack_ns);
}
@@ -2803,9 +2802,8 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
@@ -2806,9 +2805,8 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
if (time) {
to = &timeout;
@ -154,7 +155,7 @@ index 304f07d08c95..ccf933ac2997 100644
hrtimer_set_expires(&to->timer, *time);
}
@@ -3242,10 +3240,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
@@ -3245,10 +3243,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
if (abs_time) {
to = &timeout;
@ -284,3 +285,6 @@ index 092fa3d75b32..9d472d626aaa 100644
do {
set_current_state(TASK_INTERRUPTIBLE);
hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS);
--
2.24.0

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