diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 17:45:36 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 17:45:36 +0000 |
commit | 429d3efd5669e129a6168d62edb6832e36b7a2a0 (patch) | |
tree | 14b99403f823ded018ba76aa450e8687247796b8 /debian/patches-rt | |
parent | Merging upstream version 5.10.216. (diff) | |
download | linux-429d3efd5669e129a6168d62edb6832e36b7a2a0.tar.xz linux-429d3efd5669e129a6168d62edb6832e36b7a2a0.zip |
Adding debian version 5.10.216-1.debian/5.10.216-1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
324 files changed, 1959 insertions, 1958 deletions
diff --git a/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch b/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch index c161007b7..39112f0a2 100644 --- a/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch +++ b/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch @@ -1,8 +1,8 @@ -From 373cc1c1427a46b4bf77f0d782d8bd8b2d00bc54 Mon Sep 17 00:00:00 2001 +From f5fbf1dccda26971b16bafd3f861ce1f5956d7d7 Mon Sep 17 00:00:00 2001 From: Vitaly Wool <vitaly.wool@konsulko.com> Date: Mon, 14 Dec 2020 19:12:36 -0800 Subject: [PATCH 001/323] z3fold: remove preempt disabled sections for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace get_cpu_ptr() with migrate_disable()+this_cpu_ptr() so RT can take spinlocks that become sleeping locks. @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mm/z3fold.c b/mm/z3fold.c -index 912ac9a64a15..f3d875fcaeb7 100644 +index 912ac9a64a155..f3d875fcaeb77 100644 --- a/mm/z3fold.c +++ b/mm/z3fold.c @@ -623,14 +623,16 @@ static inline void add_to_unbuddied(struct z3fold_pool *pool, @@ -82,5 +82,5 @@ index 912ac9a64a15..f3d875fcaeb7 100644 if (!zhdr) { int cpu; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch b/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch index f68789cd5..a6827877c 100644 --- a/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch +++ b/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch @@ -1,8 +1,8 @@ -From 863bc087d69814dc4113ca9ec91ce1895b53480e Mon Sep 17 00:00:00 2001 +From 73242e5fc6930a7741cd1741bb1f1e2fb0ec998d Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:11:59 +0200 Subject: [PATCH 002/323] stop_machine: Add function and caller debug info -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Crashes in stop-machine are hard to connect to the calling code, add a little something to help with that. diff --git a/debian/patches-rt/0003-sched-Fix-balance_callback.patch b/debian/patches-rt/0003-sched-Fix-balance_callback.patch index 265608440..1d06d10ba 100644 --- a/debian/patches-rt/0003-sched-Fix-balance_callback.patch +++ b/debian/patches-rt/0003-sched-Fix-balance_callback.patch @@ -1,8 +1,8 @@ -From db31f287a66b122733214b4a2bac9d59a564b77d Mon Sep 17 00:00:00 2001 +From ed8a8090bdc9f07bb1e75558552361a3619536e6 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:00 +0200 Subject: [PATCH 003/323] sched: Fix balance_callback() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The intent of balance_callback() has always been to delay executing balancing operations until the end of the current rq->lock section. @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 78 insertions(+), 44 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 40f40f359c5d..ab8b7fd46334 100644 +index 40f40f359c5d5..ab8b7fd463344 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3511,6 +3511,69 @@ static inline void finish_task(struct task_struct *prev) @@ -217,7 +217,7 @@ index 40f40f359c5d..ab8b7fd46334 100644 return 0; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 8de07aba8bdd..fd71da3a4f0f 100644 +index 8de07aba8bdd4..fd71da3a4f0fc 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1225,6 +1225,9 @@ static inline void rq_pin_lock(struct rq *rq, struct rq_flags *rf) @@ -231,5 +231,5 @@ index 8de07aba8bdd..fd71da3a4f0f 100644 static inline void rq_unpin_lock(struct rq *rq, struct rq_flags *rf) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch b/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch index 6cb47e482..de11a6693 100644 --- a/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch +++ b/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch @@ -1,9 +1,9 @@ -From bc9c6ea411da55a929b5bc3663c0a89449613d47 Mon Sep 17 00:00:00 2001 +From 0a5c45b4979bae9726dab1a7887292224a911656 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:01 +0200 Subject: [PATCH 004/323] sched/hotplug: Ensure only per-cpu kthreads run during hotplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In preparation for migrate_disable(), make sure only per-cpu kthreads are allowed to run on !active CPUs. @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 118 insertions(+), 3 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index ab8b7fd46334..32c3acef5781 100644 +index ab8b7fd463344..32c3acef57811 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3535,8 +3535,10 @@ static inline struct callback_head *splice_balance_callbacks(struct rq *rq) @@ -203,7 +203,7 @@ index ab8b7fd46334..32c3acef5781 100644 return ret; } diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index fd71da3a4f0f..81dc4212423a 100644 +index fd71da3a4f0fc..81dc4212423a6 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -976,6 +976,7 @@ struct rq { @@ -240,5 +240,5 @@ index fd71da3a4f0f..81dc4212423a 100644 #define rcu_dereference_check_sched_domain(p) \ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch b/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch index abd6b3875..d94aa46d6 100644 --- a/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch +++ b/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch @@ -1,9 +1,9 @@ -From 94b59ab31222fc252603987e1ee316264426a015 Mon Sep 17 00:00:00 2001 +From 92645c89728680835a975aa06735a61a62f6c329 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 23 Oct 2020 12:12:02 +0200 Subject: [PATCH 005/323] sched/core: Wait for tasks being pushed away on hotplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT kernels need to ensure that all tasks which are not per CPU kthreads have left the outgoing CPU to guarantee that no tasks are force migrated @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 32c3acef5781..b902755615d7 100644 +index 32c3acef57811..b902755615d71 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6896,8 +6896,21 @@ static void balance_push(struct rq *rq) @@ -105,7 +105,7 @@ index 32c3acef5781..b902755615d7 100644 hrtick_rq_init(rq); atomic_set(&rq->nr_iowait, 0); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 81dc4212423a..a72464d370cd 100644 +index 81dc4212423a6..a72464d370cd1 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1007,6 +1007,10 @@ struct rq { @@ -120,5 +120,5 @@ index 81dc4212423a..a72464d370cd 100644 #ifdef CONFIG_IRQ_TIME_ACCOUNTING -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch b/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch index 7eb185ce2..3bd95073d 100644 --- a/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch +++ b/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch @@ -1,8 +1,8 @@ -From e3372f0d43a35f1070d1689e6aa1f84d6cd9784b Mon Sep 17 00:00:00 2001 +From 35c61b1ed625ce00add22bcd647544d9565ffd62 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:03 +0200 Subject: [PATCH 006/323] workqueue: Manually break affinity on hotplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Don't rely on the scheduler to force break affinity for us -- it will stop doing that for per-cpu-kthreads. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 63140e4dd5df..7c14773dc4c4 100644 +index 63140e4dd5dfc..7c14773dc4c40 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4941,6 +4941,10 @@ static void unbind_workers(int cpu) @@ -30,5 +30,5 @@ index 63140e4dd5df..7c14773dc4c4 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch b/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch index 606e32fa1..875c471de 100644 --- a/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch +++ b/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch @@ -1,9 +1,9 @@ -From 61ebefbbf2500f6ade2182806061526bbde76a28 Mon Sep 17 00:00:00 2001 +From 9ee7caf54f5b5b01b798b7fbd08dc2f25c662438 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 23 Oct 2020 12:12:04 +0200 Subject: [PATCH 007/323] sched/hotplug: Consolidate task migration on CPU unplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With the new mechanism which kicks tasks off the outgoing CPU at the end of schedule() the situation on an outgoing CPU right before the stopper thread @@ -39,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 46 insertions(+), 120 deletions(-) diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h -index f5a5df3a8cfd..daf39c04a552 100644 +index f5a5df3a8cfd1..daf39c04a552a 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -155,6 +155,7 @@ enum cpuhp_state { @@ -51,7 +51,7 @@ index f5a5df3a8cfd..daf39c04a552 100644 CPUHP_AP_X86_VDSO_VMA_ONLINE, CPUHP_AP_IRQ_AFFINITY_ONLINE, diff --git a/include/linux/sched/hotplug.h b/include/linux/sched/hotplug.h -index 9a62ffdd296f..412cdaba33eb 100644 +index 9a62ffdd296f0..412cdaba33eb4 100644 --- a/include/linux/sched/hotplug.h +++ b/include/linux/sched/hotplug.h @@ -11,8 +11,10 @@ extern int sched_cpu_activate(unsigned int cpu); @@ -66,7 +66,7 @@ index 9a62ffdd296f..412cdaba33eb 100644 #endif diff --git a/kernel/cpu.c b/kernel/cpu.c -index abf717c4f57c..f8280edb679f 100644 +index abf717c4f57c2..f8280edb679f4 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -1674,7 +1674,7 @@ static struct cpuhp_step cpuhp_hp_states[] = { @@ -93,7 +93,7 @@ index abf717c4f57c..f8280edb679f 100644 [CPUHP_AP_SMPBOOT_THREADS] = { .name = "smpboot/threads:online", diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index b902755615d7..a26a82c3e939 100644 +index b902755615d71..a26a82c3e939a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6741,120 +6741,6 @@ void idle_task_exit(void) @@ -279,5 +279,5 @@ index b902755615d7..a26a82c3e939 100644 rq_unlock_irqrestore(rq, &rf); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch b/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch index 6c09cbe86..b6dfad2a5 100644 --- a/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch +++ b/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch @@ -1,8 +1,8 @@ -From 36d2d778f786cb7fd55c549911a6055d6b6f40ef Mon Sep 17 00:00:00 2001 +From dadea36aec2c8d22d9a76383d64e71e9a9f0b33d Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:05 +0200 Subject: [PATCH 008/323] sched: Fix hotplug vs CPU bandwidth control -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since we now migrate tasks away before DYING, we should also move bandwidth unthrottle, otherwise we can gain tasks from unthrottle @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index a26a82c3e939..c5d5576c67fb 100644 +index a26a82c3e939a..c5d5576c67fb6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6979,6 +6979,8 @@ int sched_cpu_activate(unsigned int cpu) @@ -64,7 +64,7 @@ index a26a82c3e939..c5d5576c67fb 100644 rq_unlock_irqrestore(rq, &rf); diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index d91295d3059f..af8569dbdc9c 100644 +index d91295d3059f7..af8569dbdc9c1 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -566,7 +566,7 @@ static int push_dl_task(struct rq *rq); @@ -77,7 +77,7 @@ index d91295d3059f..af8569dbdc9c 100644 static DEFINE_PER_CPU(struct callback_head, dl_push_head); diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index f690f901b6cc..fdcce04913db 100644 +index 1289991c970e1..32ef35af8f309 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -270,7 +270,7 @@ static void pull_rt_task(struct rq *this_rq); @@ -90,5 +90,5 @@ index f690f901b6cc..fdcce04913db 100644 static inline int rt_overloaded(struct rq *rq) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch b/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch index 24fc3200e..2acfa5e71 100644 --- a/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch +++ b/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch @@ -1,8 +1,8 @@ -From 1125b34b63aa303af592b0ea5be730dc92ce6d53 Mon Sep 17 00:00:00 2001 +From 786f651c60c96b8b31ae64a4f01af3bb9e1a32ba Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:06 +0200 Subject: [PATCH 009/323] sched: Massage set_cpus_allowed() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Thread a u32 flags word through the *set_cpus_allowed*() callchain. This will allow adding behavioural tweaks for future users. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c5d5576c67fb..569cc5e48e68 100644 +index c5d5576c67fb6..569cc5e48e681 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1838,13 +1838,14 @@ static int migration_cpu_stop(void *data) @@ -123,7 +123,7 @@ index c5d5576c67fb..569cc5e48e68 100644 /* * We're having a chicken and egg problem, even though we are diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index af8569dbdc9c..5566f157640b 100644 +index af8569dbdc9c1..5566f157640b7 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2311,7 +2311,8 @@ static void task_woken_dl(struct rq *rq, struct task_struct *p) @@ -146,7 +146,7 @@ index af8569dbdc9c..5566f157640b 100644 /* Assumes rq->lock is held */ diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index a72464d370cd..f0f396cc1bee 100644 +index a72464d370cd1..f0f396cc1bee6 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1818,7 +1818,8 @@ struct sched_class { @@ -171,5 +171,5 @@ index a72464d370cd..f0f396cc1bee 100644 #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0010-sched-Add-migrate_disable.patch b/debian/patches-rt/0010-sched-Add-migrate_disable.patch index d0ea31279..e8ff7eed1 100644 --- a/debian/patches-rt/0010-sched-Add-migrate_disable.patch +++ b/debian/patches-rt/0010-sched-Add-migrate_disable.patch @@ -1,8 +1,8 @@ -From e9f7c2225ee3e1ce9317762393618c1c81a8febe Mon Sep 17 00:00:00 2001 +From 3cf19c15a535037d72750850355628790cfb36d4 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:07 +0200 Subject: [PATCH 010/323] sched: Add migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add the base migrate_disable() support (under protest). @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 183 insertions(+), 8 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 7d9c1c0e149c..97ba7c920653 100644 +index 7d9c1c0e149c0..97ba7c920653d 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -322,6 +322,69 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier, @@ -105,7 +105,7 @@ index 7d9c1c0e149c..97ba7c920653 100644 + #endif /* __LINUX_PREEMPT_H */ diff --git a/include/linux/sched.h b/include/linux/sched.h -index aa015416c569..76907e9876d5 100644 +index aa015416c5693..76907e9876d55 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -726,6 +726,9 @@ struct task_struct { @@ -119,7 +119,7 @@ index aa015416c569..76907e9876d5 100644 #ifdef CONFIG_PREEMPT_RCU int rcu_read_lock_nesting; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 569cc5e48e68..5c9db4b2b6ec 100644 +index 569cc5e48e681..5c9db4b2b6ec7 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1710,6 +1710,61 @@ void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) @@ -313,7 +313,7 @@ index 569cc5e48e68..5c9db4b2b6ec 100644 trace_sched_switch(preempt, prev, next); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index f0f396cc1bee..f3109adda484 100644 +index f0f396cc1bee6..f3109adda484e 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1906,14 +1906,16 @@ static inline bool sched_fair_runnable(struct rq *rq) @@ -336,7 +336,7 @@ index f0f396cc1bee..f3109adda484 100644 #endif diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c -index 2916606a9333..dbb96ebf661f 100644 +index 2916606a93337..dbb96ebf661fd 100644 --- a/lib/smp_processor_id.c +++ b/lib/smp_processor_id.c @@ -26,6 +26,11 @@ unsigned int check_preemption_disabled(const char *what1, const char *what2) @@ -352,5 +352,5 @@ index 2916606a9333..dbb96ebf661f 100644 * It is valid to assume CPU-locality during early bootup: */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch b/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch index d89f86138..6d66a950a 100644 --- a/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch +++ b/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch @@ -1,9 +1,9 @@ -From f6fcadc60ec427b9eeb4b734b77b7b110c050b83 Mon Sep 17 00:00:00 2001 +From 2536c8f77652b826f44567321626bced09bea197 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:08 +0200 Subject: [PATCH 011/323] sched: Fix migrate_disable() vs set_cpus_allowed_ptr() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Concurrent migrate_disable() and set_cpus_allowed_ptr() has interesting features. We rely on set_cpus_allowed_ptr() to not return @@ -44,7 +44,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 205 insertions(+), 30 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 76907e9876d5..5b5c194f5a62 100644 +index 76907e9876d55..5b5c194f5a62d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -726,6 +726,7 @@ struct task_struct { @@ -56,7 +56,7 @@ index 76907e9876d5..5b5c194f5a62 100644 int migration_disabled; #endif diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 5c9db4b2b6ec..3af7c42896c9 100644 +index 5c9db4b2b6ec7..3af7c42896c92 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1746,15 +1746,26 @@ void migrate_enable(void) @@ -366,5 +366,5 @@ index 5c9db4b2b6ec..3af7c42896c9 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch b/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch index e89668431..3030b7de8 100644 --- a/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch +++ b/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch @@ -1,9 +1,9 @@ -From 02829fffd43c5fe3e617d07e0a94d5164324449b Mon Sep 17 00:00:00 2001 +From a6bc815b2b9ae11ce4cfbf7fb6832500e7d07cf3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 23 Oct 2020 12:12:09 +0200 Subject: [PATCH 012/323] sched/core: Make migrate disable and CPU hotplug cooperative -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On CPU unplug tasks which are in a migrate disabled region cannot be pushed to a different CPU until they returned to migrateable state. @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3af7c42896c9..2517a003295b 100644 +index 3af7c42896c92..2517a003295b9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1735,10 +1735,17 @@ static void migrate_disable_switch(struct rq *rq, struct task_struct *p) @@ -118,7 +118,7 @@ index 3af7c42896c9..2517a003295b 100644 calc_load_migrate(rq); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index f3109adda484..8237c9ab2bb8 100644 +index f3109adda484e..8237c9ab2bb86 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1057,6 +1057,10 @@ struct rq { @@ -133,5 +133,5 @@ index f3109adda484..8237c9ab2bb8 100644 #ifdef CONFIG_FAIR_GROUP_SCHED -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch b/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch index b190e58d4..057f066e4 100644 --- a/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch +++ b/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch @@ -1,8 +1,8 @@ -From 0d3b4a8d9391d1eb1efb998bfcaff013a01466bf Mon Sep 17 00:00:00 2001 +From 1493a1a2699ab8802f0f6fd30b47b19b966c3d0b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:10 +0200 Subject: [PATCH 013/323] sched,rt: Use cpumask_any*_distribute() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace a bunch of cpumask_any*() instances with cpumask_any*_distribute(), by injecting this little bit of random in @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h -index f0d895d6ac39..383684e30f12 100644 +index f0d895d6ac39f..383684e30f123 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -199,6 +199,11 @@ static inline int cpumask_any_and_distribute(const struct cpumask *src1p, @@ -43,7 +43,7 @@ index f0d895d6ac39..383684e30f12 100644 /** * for_each_cpu - iterate over every cpu in a mask diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 5566f157640b..e64d378e4e87 100644 +index 5566f157640b7..e64d378e4e875 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2012,8 +2012,8 @@ static int find_later_rq(struct task_struct *task) @@ -67,7 +67,7 @@ index 5566f157640b..e64d378e4e87 100644 return cpu; diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index fdcce04913db..695526a54a89 100644 +index 32ef35af8f309..1c3b9cf014a82 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1766,8 +1766,8 @@ static int find_lowest_rq(struct task_struct *task) @@ -91,7 +91,7 @@ index fdcce04913db..695526a54a89 100644 return cpu; diff --git a/lib/cpumask.c b/lib/cpumask.c -index fb22fb266f93..c3c76b833384 100644 +index fb22fb266f937..c3c76b8333846 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -261,3 +261,21 @@ int cpumask_any_and_distribute(const struct cpumask *src1p, @@ -117,5 +117,5 @@ index fb22fb266f93..c3c76b833384 100644 +} +EXPORT_SYMBOL(cpumask_any_distribute); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch b/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch index c2817a0b7..518d35cb4 100644 --- a/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch +++ b/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch @@ -1,8 +1,8 @@ -From 75c028b5537f7205cfe5aecf8cf6bb61ef1428f6 Mon Sep 17 00:00:00 2001 +From 4c5447499a3b2c8a792a6dcd84c66eecad4b2906 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:11 +0200 Subject: [PATCH 014/323] sched,rt: Use the full cpumask for balancing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz We want migrate_disable() tasks to get PULLs in order for them to PUSH away the higher priority task. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c -index 8cb06c8c7eb1..ceb03d76c0cc 100644 +index 8cb06c8c7eb11..ceb03d76c0ccd 100644 --- a/kernel/sched/cpudeadline.c +++ b/kernel/sched/cpudeadline.c @@ -120,7 +120,7 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p, @@ -39,7 +39,7 @@ index 8cb06c8c7eb1..ceb03d76c0cc 100644 if (later_mask) cpumask_set_cpu(best_cpu, later_mask); diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c -index 0033731a0797..11c4df2010de 100644 +index 0033731a07976..11c4df2010de5 100644 --- a/kernel/sched/cpupri.c +++ b/kernel/sched/cpupri.c @@ -73,11 +73,11 @@ static inline int __cpupri_find(struct cpupri *cp, struct task_struct *p, @@ -57,7 +57,7 @@ index 0033731a0797..11c4df2010de 100644 /* * We have to ensure that we have at least one bit diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index e64d378e4e87..94977a6ced8b 100644 +index e64d378e4e875..94977a6ced8b8 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1922,7 +1922,7 @@ static void task_fork_dl(struct task_struct *p) @@ -79,7 +79,7 @@ index e64d378e4e87..94977a6ced8b 100644 !dl_task(task) || !task_on_rq_queued(task))) { diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index 695526a54a89..f91339c0dee8 100644 +index 1c3b9cf014a82..95c07ef87ce17 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1672,7 +1672,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) @@ -101,5 +101,5 @@ index 695526a54a89..f91339c0dee8 100644 !rt_task(task) || !task_on_rq_queued(task))) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch b/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch index 05030516b..db126bb82 100644 --- a/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch +++ b/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch @@ -1,8 +1,8 @@ -From c0e34a5ef4e854220a216e934ab90f04d4432bdd Mon Sep 17 00:00:00 2001 +From 08be58930a1822de1d0df49597950a0a0f43d407 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:12 +0200 Subject: [PATCH 015/323] sched, lockdep: Annotate ->pi_lock recursion -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There's a valid ->pi_lock recursion issue where the actual PI code tries to wake up the stop task. Make lockdep aware so it doesn't @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 15 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 2517a003295b..abbf01f77a76 100644 +index 2517a003295b9..abbf01f77a76f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2670,6 +2670,7 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) @@ -48,5 +48,5 @@ index 2517a003295b..abbf01f77a76 100644 cpu_rq(cpu)->stop = stop; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch b/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch index b665e6d22..36a08d203 100644 --- a/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch +++ b/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch @@ -1,8 +1,8 @@ -From 8121011ded919f172bbbc7f5c095ca29d83a5aed Mon Sep 17 00:00:00 2001 +From 482622f4a87970b97449709db1b848c96f971fed Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:13 +0200 Subject: [PATCH 016/323] sched: Fix migrate_disable() vs rt/dl balancing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In order to minimize the interference of migrate_disable() on lower priority tasks, which can be deprived of runtime due to being stuck @@ -35,7 +35,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 6 files changed, 186 insertions(+), 48 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 97ba7c920653..8b43922e65df 100644 +index 97ba7c920653d..8b43922e65dfe 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -325,24 +325,28 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier, @@ -86,7 +86,7 @@ index 97ba7c920653..8b43922e65df 100644 * * The reason we have it anyway. diff --git a/include/linux/sched.h b/include/linux/sched.h -index 5b5c194f5a62..7ca1f3e740dd 100644 +index 5b5c194f5a62d..7ca1f3e740ddd 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -728,8 +728,9 @@ struct task_struct { @@ -101,7 +101,7 @@ index 5b5c194f5a62..7ca1f3e740dd 100644 #ifdef CONFIG_PREEMPT_RCU int rcu_read_lock_nesting; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index abbf01f77a76..452fc1dfb143 100644 +index abbf01f77a76f..452fc1dfb1434 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1777,11 +1777,6 @@ void migrate_enable(void) @@ -214,7 +214,7 @@ index abbf01f77a76..452fc1dfb143 100644 { return false; diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 94977a6ced8b..7cf3248894a9 100644 +index 94977a6ced8b8..7cf3248894a98 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2139,6 +2139,9 @@ static int push_dl_task(struct rq *rq) @@ -287,7 +287,7 @@ index 94977a6ced8b..7cf3248894a9 100644 .task_tick = task_tick_dl, diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index f91339c0dee8..c25e35f41555 100644 +index 95c07ef87ce17..c916dbc2a0165 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1873,7 +1873,7 @@ static struct task_struct *pick_next_pushable_task(struct rq *rq) @@ -427,7 +427,7 @@ index f91339c0dee8..c25e35f41555 100644 .task_tick = task_tick_rt, diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 8237c9ab2bb8..69ef7cac3d29 100644 +index 8237c9ab2bb86..69ef7cac3d296 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1061,6 +1061,8 @@ struct rq { @@ -491,5 +491,5 @@ index 8237c9ab2bb8..69ef7cac3d29 100644 #ifdef CONFIG_CPU_IDLE -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch b/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch index 44d87463d..bb31f0017 100644 --- a/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch +++ b/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch @@ -1,9 +1,9 @@ -From e8ed7f739c2f8113927b0b3489bc357c36e27040 Mon Sep 17 00:00:00 2001 +From 107d3592a1c9a7ad71756a29d2cc0d7192498c43 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:14 +0200 Subject: [PATCH 017/323] sched/proc: Print accurate cpumask vs migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Ensure /proc/*/status doesn't print 'random' cpumasks due to migrate_disable(). @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/proc/array.c b/fs/proc/array.c -index 18a4588c35be..decaa7768044 100644 +index 18a4588c35be6..decaa77680448 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -384,9 +384,9 @@ static inline void task_context_switch_counts(struct seq_file *m, @@ -31,5 +31,5 @@ index 18a4588c35be..decaa7768044 100644 static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch b/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch index 0f315ce9d..a5348b9d7 100644 --- a/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch +++ b/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch @@ -1,8 +1,8 @@ -From 8b4906578ce683b9bce7df984b4179519152345f Mon Sep 17 00:00:00 2001 +From 8a324e6097c095eff3039bfe9806cdc4c23d6002 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 23 Oct 2020 12:12:15 +0200 Subject: [PATCH 018/323] sched: Add migrate_disable() tracepoints -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz XXX write a tracer: @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h -index c96a4337afe6..e48f584abf5f 100644 +index c96a4337afe6c..e48f584abf5ff 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -650,6 +650,18 @@ DECLARE_TRACE(sched_update_nr_running_tp, @@ -46,7 +46,7 @@ index c96a4337afe6..e48f584abf5f 100644 /* This part must be outside protection */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 452fc1dfb143..b5f35b512577 100644 +index 452fc1dfb1434..b5f35b5125777 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1742,6 +1742,8 @@ void migrate_disable(void) @@ -68,7 +68,7 @@ index 452fc1dfb143..b5f35b512577 100644 EXPORT_SYMBOL_GPL(migrate_enable); diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 7cf3248894a9..fcf546cd2eac 100644 +index 7cf3248894a98..fcf546cd2eac6 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2282,6 +2282,7 @@ static void pull_dl_task(struct rq *this_rq) @@ -80,7 +80,7 @@ index 7cf3248894a9..fcf546cd2eac 100644 } else { deactivate_task(src_rq, p, 0); diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index c25e35f41555..c5038d680c2c 100644 +index c916dbc2a0165..5dc1ee8dcec2d 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1891,7 +1891,12 @@ static int push_rt_task(struct rq *rq, bool pull) @@ -106,5 +106,5 @@ index c25e35f41555..c5038d680c2c 100644 } else { deactivate_task(src_rq, p, 0); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch b/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch index ca7d5923b..12660758a 100644 --- a/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch +++ b/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch @@ -1,9 +1,9 @@ -From 5857482efa6b272402feb4b063c4273e70dd67fb Mon Sep 17 00:00:00 2001 +From e02ab370de4119b778b775141dcef7a34103d54f Mon Sep 17 00:00:00 2001 From: Valentin Schneider <valentin.schneider@arm.com> Date: Fri, 23 Oct 2020 12:12:16 +0200 Subject: [PATCH 019/323] sched: Deny self-issued __set_cpus_allowed_ptr() when migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz migrate_disable(); set_cpus_allowed_ptr(current, {something excluding task_cpu(current)}); @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index b5f35b512577..3b7bb01eecc0 100644 +index b5f35b5125777..3b7bb01eecc03 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2254,8 +2254,17 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, @@ -42,5 +42,5 @@ index b5f35b512577..3b7bb01eecc0 100644 /* * Picking a ~random cpu helps in cases where we are changing affinity -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0020-sched-Comment-affine_move_task.patch b/debian/patches-rt/0020-sched-Comment-affine_move_task.patch index ce16fe3bc..5e1531d41 100644 --- a/debian/patches-rt/0020-sched-Comment-affine_move_task.patch +++ b/debian/patches-rt/0020-sched-Comment-affine_move_task.patch @@ -1,8 +1,8 @@ -From ef79ed54f47d3ce342809e4914f4d9cf400f1ae0 Mon Sep 17 00:00:00 2001 +From b0d2b09cd94c8e7dde6b99f4eab69e5530984018 Mon Sep 17 00:00:00 2001 From: Valentin Schneider <valentin.schneider@arm.com> Date: Fri, 23 Oct 2020 12:12:17 +0200 Subject: [PATCH 020/323] sched: Comment affine_move_task() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3b7bb01eecc0..565d8011c832 100644 +index 3b7bb01eecc03..565d8011c832f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2094,7 +2094,75 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) @@ -126,5 +126,5 @@ index 3b7bb01eecc0..565d8011c832 100644 return 0; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch b/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch index bc78d7729..713ff4847 100644 --- a/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch +++ b/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch @@ -1,8 +1,8 @@ -From 9a34ae4ec3b4af5cc98c8405ea590096a1380af9 Mon Sep 17 00:00:00 2001 +From a72c480240c6f7cf35fd4cab5093beff1f6e3ee8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 9 Nov 2020 15:54:03 +0100 Subject: [PATCH 021/323] sched: Unlock the rq in affine_move_task() error path -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Unlock the rq if returned early in the error path. @@ -14,7 +14,7 @@ Link: https://lkml.kernel.org/r/20201106203921.GA48461@zipoli.concurrent-rt.com 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 565d8011c832..d12d91510789 100644 +index 565d8011c832f..d12d91510789a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2228,8 +2228,10 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag @@ -30,5 +30,5 @@ index 565d8011c832..d12d91510789 100644 if (flags & SCA_MIGRATE_ENABLE) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch b/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch index 6f1a0cb21..cde6f8d8a 100644 --- a/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch +++ b/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch @@ -1,8 +1,8 @@ -From 09d09da2b8c97fd09f50deb278f9d4a25b99ad55 Mon Sep 17 00:00:00 2001 +From 9c88a058fa61bf6670f75282f373f885f0d8be52 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 17 Nov 2020 12:14:51 +0100 Subject: [PATCH 022/323] sched: Fix migration_cpu_stop() WARN -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Oleksandr reported hitting the WARN in the 'task_rq(p) != rq' branch of migration_cpu_stop(). Valentin noted that using cpu_of(rq) in that @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index d12d91510789..7d67a0e03f9a 100644 +index d12d91510789a..7d67a0e03f9a1 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1929,7 +1929,7 @@ static int migration_cpu_stop(void *data) @@ -43,5 +43,5 @@ index d12d91510789..7d67a0e03f9a 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch b/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch index 19fcddc66..3dff09ef0 100644 --- a/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch +++ b/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch @@ -1,9 +1,9 @@ -From 5188e4c01f37c8c179cf88261297d546f5d2502e Mon Sep 17 00:00:00 2001 +From 73d693a1b61142541d8fa93f71d0768409641af4 Mon Sep 17 00:00:00 2001 From: Valentin Schneider <valentin.schneider@arm.com> Date: Fri, 13 Nov 2020 11:24:14 +0000 Subject: [PATCH 023/323] sched/core: Add missing completion for affine_move_task() waiters -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Qian reported that some fuzzer issuing sched_setaffinity() ends up stuck on a wait_for_completion(). The problematic pattern seems to be: @@ -44,7 +44,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 7d67a0e03f9a..c1e52319669d 100644 +index 7d67a0e03f9a1..c1e52319669dd 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1941,7 +1941,7 @@ static int migration_cpu_stop(void *data) @@ -75,5 +75,5 @@ index 7d67a0e03f9a..c1e52319669d 100644 * When this was migrate_enable() but we no longer have an * @pending, a concurrent SCA 'fixed' things and we should be -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch b/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch index ba252d03e..5676c2e37 100644 --- a/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch +++ b/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch @@ -1,8 +1,8 @@ -From 44027cc10df8025d820ea864076dae75fb26626d Mon Sep 17 00:00:00 2001 +From 6a52ed73ef5ae504fab5e4ff9d68d2f8d13a3d71 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:13 +0100 Subject: [PATCH 024/323] mm/highmem: Un-EXPORT __kmap_atomic_idx() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Nothing in modules can use that. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 deletions(-) diff --git a/mm/highmem.c b/mm/highmem.c -index 1352a27951e3..6abfd762eee7 100644 +index 1352a27951e3b..6abfd762eee73 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -108,8 +108,6 @@ static inline wait_queue_head_t *get_pkmap_wait_queue_head(unsigned int color) @@ -29,5 +29,5 @@ index 1352a27951e3..6abfd762eee7 100644 { struct zone *zone; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0025-highmem-Remove-unused-functions.patch b/debian/patches-rt/0025-highmem-Remove-unused-functions.patch index 55deed269..b69dfd239 100644 --- a/debian/patches-rt/0025-highmem-Remove-unused-functions.patch +++ b/debian/patches-rt/0025-highmem-Remove-unused-functions.patch @@ -1,8 +1,8 @@ -From 2060c9ea726ebd649d8d2e596fa2acebef644cd8 Mon Sep 17 00:00:00 2001 +From 6506b24171031c92ab1326b4b974b0fbaf4e5cee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:14 +0100 Subject: [PATCH 025/323] highmem: Remove unused functions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Nothing uses totalhigh_pages_dec() and totalhigh_pages_set(). @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 10 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index b25df1f8d48d..3297bfca78ed 100644 +index b25df1f8d48d3..3297bfca78edd 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -104,21 +104,11 @@ static inline void totalhigh_pages_inc(void) @@ -39,5 +39,5 @@ index b25df1f8d48d..3297bfca78ed 100644 struct page *kmap_to_page(void *addr); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch b/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch index 3cbd4847e..9a9f5d502 100644 --- a/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch +++ b/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch @@ -1,8 +1,8 @@ -From 280d9322736bea3870ae507592e1d2880bff8bd9 Mon Sep 17 00:00:00 2001 +From 022ceb6e24d7538354fab528ef2634b8eee93fdf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:15 +0100 Subject: [PATCH 026/323] fs: Remove asm/kmap_types.h includes -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Historical leftovers from the time where kmap() had fixed slots. @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 2 deletions(-) diff --git a/fs/aio.c b/fs/aio.c -index 5934ea84b499..c90e045a37bc 100644 +index 93b6bbf01d715..43315af1c83ac 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -43,7 +43,6 @@ @@ -34,7 +34,7 @@ index 5934ea84b499..c90e045a37bc 100644 #include <linux/nospec.h> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h -index 67831868ef0d..17c920aa6bc2 100644 +index 3ddb09f2b1685..ba39097c44a71 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -17,7 +17,6 @@ @@ -46,5 +46,5 @@ index 67831868ef0d..17c920aa6bc2 100644 #include <linux/pagemap.h> #include <linux/btrfs.h> -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch b/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch index bcf3a9b1f..47c3e61be 100644 --- a/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch +++ b/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch @@ -1,8 +1,8 @@ -From 61e1ac8c3bd29dec41ae2f631bb142e26b790de2 Mon Sep 17 00:00:00 2001 +From 9ecea255e4a77ea3c29037da0a6446d6b006d9e6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:16 +0100 Subject: [PATCH 027/323] sh/highmem: Remove all traces of unused cruft -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz For whatever reasons SH has highmem bits all over the place but does not enable it via Kconfig. Remove the bitrot. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/sh/include/asm/kmap_types.h diff --git a/arch/sh/include/asm/fixmap.h b/arch/sh/include/asm/fixmap.h -index f38adc189b83..b07fbc7f7bc6 100644 +index f38adc189b832..b07fbc7f7bc6a 100644 --- a/arch/sh/include/asm/fixmap.h +++ b/arch/sh/include/asm/fixmap.h @@ -13,9 +13,6 @@ @@ -44,7 +44,7 @@ index f38adc189b83..b07fbc7f7bc6 100644 * FIX_IOREMAP entries are useful for mapping physical address diff --git a/arch/sh/include/asm/kmap_types.h b/arch/sh/include/asm/kmap_types.h deleted file mode 100644 -index b78107f923dd..000000000000 +index b78107f923dd3..0000000000000 --- a/arch/sh/include/asm/kmap_types.h +++ /dev/null @@ -1,15 +0,0 @@ @@ -64,7 +64,7 @@ index b78107f923dd..000000000000 - -#endif diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c -index 3348e0c4d769..0db6919af8d3 100644 +index 3348e0c4d7698..0db6919af8d32 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c @@ -362,9 +362,6 @@ void __init mem_init(void) @@ -90,5 +90,5 @@ index 3348e0c4d769..0db6919af8d3 100644 (VMALLOC_END - VMALLOC_START) >> 20, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch b/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch index bb5d5f717..a641053b5 100644 --- a/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch +++ b/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch @@ -1,8 +1,8 @@ -From 5ed7d8c8905e639e711f1a21e5f978fc21585f8c Mon Sep 17 00:00:00 2001 +From 0294b3a702b2b9aea24f2e7b5ee766bc4ea65a68 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:17 +0100 Subject: [PATCH 028/323] asm-generic: Provide kmap_size.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmap_types.h is a misnomer because the old atomic MAP based array does not exist anymore and the whole indirection of architectures including @@ -36,7 +36,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> create mode 100644 include/asm-generic/kmap_size.h diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild -index d1300c6e0a47..3114a6da7e56 100644 +index d1300c6e0a471..3114a6da7e561 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild @@ -31,6 +31,7 @@ mandatory-y += irq_regs.h @@ -49,7 +49,7 @@ index d1300c6e0a47..3114a6da7e56 100644 mandatory-y += local.h diff --git a/include/asm-generic/kmap_size.h b/include/asm-generic/kmap_size.h new file mode 100644 -index 000000000000..9d6c7786a645 +index 0000000000000..9d6c7786a645f --- /dev/null +++ b/include/asm-generic/kmap_size.h @@ -0,0 +1,12 @@ @@ -66,5 +66,5 @@ index 000000000000..9d6c7786a645 + +#endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch b/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch index 828708904..5b1d99dee 100644 --- a/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch +++ b/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch @@ -1,8 +1,8 @@ -From 4e1b14787f7a2c71a9347db23c402f5dbe2da206 Mon Sep 17 00:00:00 2001 +From 64953b0dd3343f0296a25b10d108692ab140a56c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:18 +0100 Subject: [PATCH 029/323] highmem: Provide generic variant of kmap_atomic* -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The kmap_atomic* interfaces in all architectures are pretty much the same except for post map operations (flush) and pre- and post unmap operations. @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 211 insertions(+), 18 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index 3297bfca78ed..14d5b4020c8c 100644 +index 3297bfca78edd..14d5b4020c8ca 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -31,9 +31,16 @@ static inline void invalidate_kernel_vmap_range(void *vaddr, int size) @@ -164,7 +164,7 @@ index 3297bfca78ed..14d5b4020c8c 100644 #ifndef clear_user_highpage static inline void clear_user_highpage(struct page *page, unsigned long vaddr) diff --git a/mm/Kconfig b/mm/Kconfig -index 390165ffbb0f..8c49d09da214 100644 +index 390165ffbb0fc..8c49d09da2141 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -859,4 +859,7 @@ config ARCH_HAS_HUGEPD @@ -176,7 +176,7 @@ index 390165ffbb0f..8c49d09da214 100644 + endmenu diff --git a/mm/highmem.c b/mm/highmem.c -index 6abfd762eee7..bb4ce13ee7e7 100644 +index 6abfd762eee73..bb4ce13ee7e77 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -31,9 +31,11 @@ @@ -342,5 +342,5 @@ index 6abfd762eee7..bb4ce13ee7e7 100644 #if defined(HASHED_PAGE_VIRTUAL) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch b/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch index 139157832..d3351a68c 100644 --- a/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch +++ b/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch @@ -1,8 +1,8 @@ -From 4c9348bc5b225c2de1552b059787335345d30d2c Mon Sep 17 00:00:00 2001 +From e5a80ff0a9d48da992d62b6e25b25eb255b4c20e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:19 +0100 Subject: [PATCH 030/323] highmem: Make DEBUG_HIGHMEM functional -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz For some obscure reason when CONFIG_DEBUG_HIGHMEM is enabled the stack depth is increased from 20 to 41. But the only thing DEBUG_HIGHMEM does is @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mm/highmem.c b/mm/highmem.c -index bb4ce13ee7e7..67d2d5983cb0 100644 +index bb4ce13ee7e77..67d2d5983cb06 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -376,9 +376,19 @@ EXPORT_SYMBOL(kunmap_high); @@ -57,5 +57,5 @@ index bb4ce13ee7e7..67d2d5983cb0 100644 BUG_ON(idx < 0); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch b/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch index d381e36e5..2565d6f48 100644 --- a/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch +++ b/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch @@ -1,9 +1,9 @@ -From a6456b1e46c0a3b8ad0a9dd3afaeb69c037ad289 Mon Sep 17 00:00:00 2001 +From 2da90b707245685363c7adcdef8b86137e6a639b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:20 +0100 Subject: [PATCH 031/323] x86/mm/highmem: Use generic kmap atomic implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Convert X86 to the generic kmap atomic implementation and make the iomap_atomic() naming convention consistent while at it. @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/x86/include/asm/kmap_types.h diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 6dc670e36393..54e5284a6ae1 100644 +index 9b3fa05e46226..59db07b61c0f8 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -15,6 +15,7 @@ config X86_32 @@ -40,7 +40,7 @@ index 6dc670e36393..54e5284a6ae1 100644 select OLD_SIGACTION select GENERIC_VDSO_32 diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h -index 77217bd292bd..8eba66a33e39 100644 +index 77217bd292bd5..8eba66a33e397 100644 --- a/arch/x86/include/asm/fixmap.h +++ b/arch/x86/include/asm/fixmap.h @@ -31,7 +31,7 @@ @@ -70,7 +70,7 @@ index 77217bd292bd..8eba66a33e39 100644 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h -index 0f420b24e0fc..032e020853aa 100644 +index 0f420b24e0fcb..032e020853aa6 100644 --- a/arch/x86/include/asm/highmem.h +++ b/arch/x86/include/asm/highmem.h @@ -23,7 +23,6 @@ @@ -103,7 +103,7 @@ index 0f420b24e0fc..032e020853aa 100644 unsigned long end_pfn); diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h -index bacf68c4d70e..0be7a30fd6bc 100644 +index bacf68c4d70e6..0be7a30fd6bc1 100644 --- a/arch/x86/include/asm/iomap.h +++ b/arch/x86/include/asm/iomap.h @@ -9,19 +9,21 @@ @@ -138,7 +138,7 @@ index bacf68c4d70e..0be7a30fd6bc 100644 #endif /* _ASM_X86_IOMAP_H */ diff --git a/arch/x86/include/asm/kmap_types.h b/arch/x86/include/asm/kmap_types.h deleted file mode 100644 -index 04ab8266e347..000000000000 +index 04ab8266e347c..0000000000000 --- a/arch/x86/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -156,7 +156,7 @@ index 04ab8266e347..000000000000 - -#endif /* _ASM_X86_KMAP_TYPES_H */ diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h -index 903d71884fa2..130f428b0cc8 100644 +index 903d71884fa25..130f428b0cc8d 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -41,7 +41,6 @@ @@ -168,7 +168,7 @@ index 903d71884fa2..130f428b0cc8 100644 #include <asm/nospec-branch.h> diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c -index 075fe51317b0..2c54b76d8f84 100644 +index 075fe51317b0f..2c54b76d8f849 100644 --- a/arch/x86/mm/highmem_32.c +++ b/arch/x86/mm/highmem_32.c @@ -4,65 +4,6 @@ @@ -238,7 +238,7 @@ index 075fe51317b0..2c54b76d8f84 100644 { struct zone *zone; diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c -index 7c055259de3a..da31c2635ee4 100644 +index 7c055259de3a6..da31c2635ee43 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -394,19 +394,6 @@ kernel_physical_mapping_init(unsigned long start, @@ -271,7 +271,7 @@ index 7c055259de3a..da31c2635ee4 100644 * NOTE: at this point the bootmem allocator is fully available. */ diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c -index f60398aeb644..e0a40d7cc66c 100644 +index f60398aeb6445..e0a40d7cc66c8 100644 --- a/arch/x86/mm/iomap_32.c +++ b/arch/x86/mm/iomap_32.c @@ -44,28 +44,7 @@ void iomap_free(resource_size_t base, unsigned long size) @@ -346,7 +346,7 @@ index f60398aeb644..e0a40d7cc66c 100644 -EXPORT_SYMBOL_GPL(iounmap_atomic); +EXPORT_SYMBOL_GPL(iomap_atomic_pfn_prot); diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index 14d5b4020c8c..fbede783dc34 100644 +index 14d5b4020c8ca..fbede783dc341 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -217,7 +217,7 @@ static inline void __kunmap_atomic(void *addr) @@ -359,7 +359,7 @@ index 14d5b4020c8c..fbede783dc34 100644 DECLARE_PER_CPU(int, __kmap_atomic_idx); diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index c75e4d3d8833..3b0940be72e9 100644 +index c75e4d3d8833f..3b0940be72e96 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -69,7 +69,7 @@ io_mapping_map_atomic_wc(struct io_mapping *mapping, @@ -372,7 +372,7 @@ index c75e4d3d8833..3b0940be72e9 100644 static inline void diff --git a/mm/highmem.c b/mm/highmem.c -index 67d2d5983cb0..77677c6844f7 100644 +index 67d2d5983cb06..77677c6844f73 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -32,7 +32,7 @@ @@ -385,5 +385,5 @@ index 67d2d5983cb0..77677c6844f7 100644 #endif #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch b/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch index 581f1da69..455a72539 100644 --- a/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch +++ b/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch @@ -1,9 +1,9 @@ -From 7eeaddc0ba0792dd0d8a1f5f167ff44230b77855 Mon Sep 17 00:00:00 2001 +From a971420d2c9f51a81d50f4b89aed96c9300f322f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:21 +0100 Subject: [PATCH 032/323] arc/mm/highmem: Use generic kmap atomic implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Adopt the map ordering to match the other architectures and the generic code. Also make the maximum entries limited and not dependend on the number @@ -43,7 +43,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/arc/include/asm/kmap_types.h diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig -index 0a89cc9def65..d8804001d550 100644 +index 0a89cc9def651..d8804001d5507 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -507,6 +507,7 @@ config LINUX_RAM_BASE @@ -55,7 +55,7 @@ index 0a89cc9def65..d8804001d550 100644 With ARC 2G:2G address split, only upper 2G is directly addressable by kernel. Enable this to potentially allow access to rest of 2G and PAE diff --git a/arch/arc/include/asm/highmem.h b/arch/arc/include/asm/highmem.h -index 6e5eafb3afdd..a6b8e2c352c4 100644 +index 6e5eafb3afdd4..a6b8e2c352c44 100644 --- a/arch/arc/include/asm/highmem.h +++ b/arch/arc/include/asm/highmem.h @@ -9,17 +9,29 @@ @@ -110,7 +110,7 @@ index 6e5eafb3afdd..a6b8e2c352c4 100644 #endif diff --git a/arch/arc/include/asm/kmap_types.h b/arch/arc/include/asm/kmap_types.h deleted file mode 100644 -index fecf7851ec32..000000000000 +index fecf7851ec322..0000000000000 --- a/arch/arc/include/asm/kmap_types.h +++ /dev/null @@ -1,14 +0,0 @@ @@ -129,7 +129,7 @@ index fecf7851ec32..000000000000 - */ -#endif diff --git a/arch/arc/mm/highmem.c b/arch/arc/mm/highmem.c -index 1b9f473c6369..c79912a6b196 100644 +index 1b9f473c63693..c79912a6b1961 100644 --- a/arch/arc/mm/highmem.c +++ b/arch/arc/mm/highmem.c @@ -36,9 +36,8 @@ @@ -208,5 +208,5 @@ index 1b9f473c6369..c79912a6b196 100644 + alloc_kmap_pgtable(FIXMAP_BASE); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch index 7f4d188e7..6a84bd8a4 100644 --- a/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From 007968641a299ffd9fd631d7f67fc119aaf9ac5d Mon Sep 17 00:00:00 2001 +From c5690ad4aba59626108d65a45b07ce12027d864c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:22 +0100 Subject: [PATCH 033/323] ARM: highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture. @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/arm/mm/highmem.c diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 335308aff6ce..c01251683018 100644 +index 335308aff6ce0..c01251683018d 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1497,6 +1497,7 @@ config HAVE_ARCH_PFN_VALID @@ -35,7 +35,7 @@ index 335308aff6ce..c01251683018 100644 The address space of ARM processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address diff --git a/arch/arm/include/asm/fixmap.h b/arch/arm/include/asm/fixmap.h -index 9575b404019c..707068f852c2 100644 +index 9575b404019c9..707068f852c27 100644 --- a/arch/arm/include/asm/fixmap.h +++ b/arch/arm/include/asm/fixmap.h @@ -7,14 +7,14 @@ @@ -56,7 +56,7 @@ index 9575b404019c..707068f852c2 100644 /* Support writing RO kernel text via kprobes, jump labels, etc. */ FIX_TEXT_POKE0, diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h -index 31811be38d78..b22dffa8c7eb 100644 +index 31811be38d781..b22dffa8c7eb9 100644 --- a/arch/arm/include/asm/highmem.h +++ b/arch/arm/include/asm/highmem.h @@ -2,7 +2,8 @@ @@ -113,7 +113,7 @@ index 31811be38d78..b22dffa8c7eb 100644 #endif diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h deleted file mode 100644 -index 5590940ee43d..000000000000 +index 5590940ee43d7..0000000000000 --- a/arch/arm/include/asm/kmap_types.h +++ /dev/null @@ -1,10 +0,0 @@ @@ -128,7 +128,7 @@ index 5590940ee43d..000000000000 - -#endif diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile -index 7cb1699fbfc4..c4ce477c5261 100644 +index 7cb1699fbfc4f..c4ce477c52611 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile @@ -19,7 +19,6 @@ obj-$(CONFIG_MODULES) += proc-syms.o @@ -141,7 +141,7 @@ index 7cb1699fbfc4..c4ce477c5261 100644 diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c deleted file mode 100644 -index 187fab227b50..000000000000 +index 187fab227b509..0000000000000 --- a/arch/arm/mm/highmem.c +++ /dev/null @@ -1,121 +0,0 @@ @@ -267,5 +267,5 @@ index 187fab227b50..000000000000 - return (void *)vaddr; -} -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch index 667836a1e..4c5c4600d 100644 --- a/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From 3af9ca89d4398239a71471cffb488e3104990e23 Mon Sep 17 00:00:00 2001 +From 0e38df09c184ce7c455dcb4103bc3785bb15d55c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:23 +0100 Subject: [PATCH 034/323] csky/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 8 insertions(+), 78 deletions(-) diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig -index 7bf0a617e94c..c9f2533cc53d 100644 +index 7bf0a617e94c3..c9f2533cc53db 100644 --- a/arch/csky/Kconfig +++ b/arch/csky/Kconfig @@ -286,6 +286,7 @@ config NR_CPUS @@ -29,7 +29,7 @@ index 7bf0a617e94c..c9f2533cc53d 100644 config FORCE_MAX_ZONEORDER diff --git a/arch/csky/include/asm/fixmap.h b/arch/csky/include/asm/fixmap.h -index 81f9477d5330..4b589cc20900 100644 +index 81f9477d5330c..4b589cc209000 100644 --- a/arch/csky/include/asm/fixmap.h +++ b/arch/csky/include/asm/fixmap.h @@ -8,7 +8,7 @@ @@ -51,7 +51,7 @@ index 81f9477d5330..4b589cc20900 100644 __end_of_fixed_addresses }; diff --git a/arch/csky/include/asm/highmem.h b/arch/csky/include/asm/highmem.h -index 14645e3d5cd5..1f4ed3f4c0d9 100644 +index 14645e3d5cd52..1f4ed3f4c0d9b 100644 --- a/arch/csky/include/asm/highmem.h +++ b/arch/csky/include/asm/highmem.h @@ -9,7 +9,7 @@ @@ -78,7 +78,7 @@ index 14645e3d5cd5..1f4ed3f4c0d9 100644 #endif /* __KERNEL__ */ diff --git a/arch/csky/mm/highmem.c b/arch/csky/mm/highmem.c -index 89c10800a002..4161df3c6c15 100644 +index 89c10800a002e..4161df3c6c152 100644 --- a/arch/csky/mm/highmem.c +++ b/arch/csky/mm/highmem.c @@ -9,8 +9,6 @@ @@ -175,5 +175,5 @@ index 89c10800a002..4161df3c6c15 100644 - kmap_pte = pte_offset_kernel((pmd_t *)pgd_offset_k(vaddr), vaddr); -} -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch index 80bd103c5..64a7c4855 100644 --- a/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From bfdad55346f7206cf980bbd6cbc264082c54ae0c Mon Sep 17 00:00:00 2001 +From a8c434c04173397c5a97268fc1fd1b65ecde9736 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:24 +0100 Subject: [PATCH 035/323] microblaze/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture. @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/microblaze/mm/highmem.c diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig -index 33925ffed68f..7f6ca0ab4f81 100644 +index 33925ffed68fd..7f6ca0ab4f81f 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -155,6 +155,7 @@ config XILINX_UNCACHED_SHADOW @@ -32,7 +32,7 @@ index 33925ffed68f..7f6ca0ab4f81 100644 The address space of Microblaze processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address diff --git a/arch/microblaze/include/asm/fixmap.h b/arch/microblaze/include/asm/fixmap.h -index 0379ce5229e3..e6e9288bff76 100644 +index 0379ce5229e3a..e6e9288bff761 100644 --- a/arch/microblaze/include/asm/fixmap.h +++ b/arch/microblaze/include/asm/fixmap.h @@ -20,7 +20,7 @@ @@ -54,7 +54,7 @@ index 0379ce5229e3..e6e9288bff76 100644 __end_of_fixed_addresses }; diff --git a/arch/microblaze/include/asm/highmem.h b/arch/microblaze/include/asm/highmem.h -index 284ca8fb54c1..4418633fb163 100644 +index 284ca8fb54c1d..4418633fb1632 100644 --- a/arch/microblaze/include/asm/highmem.h +++ b/arch/microblaze/include/asm/highmem.h @@ -25,7 +25,6 @@ @@ -78,7 +78,7 @@ index 284ca8fb54c1..4418633fb163 100644 #endif /* _ASM_HIGHMEM_H */ diff --git a/arch/microblaze/mm/Makefile b/arch/microblaze/mm/Makefile -index 1b16875cea70..8ced71100047 100644 +index 1b16875cea704..8ced711000471 100644 --- a/arch/microblaze/mm/Makefile +++ b/arch/microblaze/mm/Makefile @@ -6,4 +6,3 @@ @@ -88,7 +88,7 @@ index 1b16875cea70..8ced71100047 100644 -obj-$(CONFIG_HIGHMEM) += highmem.o diff --git a/arch/microblaze/mm/highmem.c b/arch/microblaze/mm/highmem.c deleted file mode 100644 -index 92e0890416c9..000000000000 +index 92e0890416c91..0000000000000 --- a/arch/microblaze/mm/highmem.c +++ /dev/null @@ -1,78 +0,0 @@ @@ -171,7 +171,7 @@ index 92e0890416c9..000000000000 -} -EXPORT_SYMBOL(kunmap_atomic_high); diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c -index 45da639bd22c..1f4b5b34e600 100644 +index 45da639bd22ca..1f4b5b34e6004 100644 --- a/arch/microblaze/mm/init.c +++ b/arch/microblaze/mm/init.c @@ -49,17 +49,11 @@ unsigned long lowmem_size; @@ -193,5 +193,5 @@ index 45da639bd22c..1f4b5b34e600 100644 static void highmem_setup(void) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch index 998662451..2733ceeee 100644 --- a/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From 5ff7160041ca1461c70a70237f3c6a4b09d54472 Mon Sep 17 00:00:00 2001 +From 4b7084ee83429925ffc66523229bbe655dd93168 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:25 +0100 Subject: [PATCH 036/323] mips/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -21,10 +21,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/mips/include/asm/kmap_types.h diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig -index 18ebacf29889..0e02b2e6ee06 100644 +index 57839f63074f7..b725f4799a398 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2733,6 +2733,7 @@ config WAR_MIPS34K_MISSED_ITLB +@@ -2731,6 +2731,7 @@ config WAR_MIPS34K_MISSED_ITLB config HIGHMEM bool "High Memory Support" depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA @@ -33,7 +33,7 @@ index 18ebacf29889..0e02b2e6ee06 100644 config CPU_SUPPORTS_HIGHMEM bool diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h -index 743535be7528..beea14761cef 100644 +index 743535be7528c..beea14761cef0 100644 --- a/arch/mips/include/asm/fixmap.h +++ b/arch/mips/include/asm/fixmap.h @@ -17,7 +17,7 @@ @@ -55,7 +55,7 @@ index 743535be7528..beea14761cef 100644 __end_of_fixed_addresses }; diff --git a/arch/mips/include/asm/highmem.h b/arch/mips/include/asm/highmem.h -index 9f021cf51aa7..1716181ea66d 100644 +index 9f021cf51aa71..1716181ea66dd 100644 --- a/arch/mips/include/asm/highmem.h +++ b/arch/mips/include/asm/highmem.h @@ -24,7 +24,7 @@ @@ -83,7 +83,7 @@ index 9f021cf51aa7..1716181ea66d 100644 diff --git a/arch/mips/include/asm/kmap_types.h b/arch/mips/include/asm/kmap_types.h deleted file mode 100644 -index 16665dc2431b..000000000000 +index 16665dc2431b6..0000000000000 --- a/arch/mips/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -101,7 +101,7 @@ index 16665dc2431b..000000000000 - -#endif diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c -index 5fec7f45d79a..57e2f08f00d0 100644 +index 5fec7f45d79a8..57e2f08f00d0c 100644 --- a/arch/mips/mm/highmem.c +++ b/arch/mips/mm/highmem.c @@ -8,8 +8,6 @@ @@ -193,7 +193,7 @@ index 5fec7f45d79a..57e2f08f00d0 100644 - kmap_pte = virt_to_kpte(kmap_vstart); -} diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c -index 07e84a774938..bc80893e5c0f 100644 +index 32e7b869a2910..f0fcf36dd70b9 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c @@ -36,7 +36,6 @@ @@ -215,5 +215,5 @@ index 07e84a774938..bc80893e5c0f 100644 max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN; #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch index 08d1dc198..f077ae32f 100644 --- a/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From bc36ab505c69bbf7d37b57cb983ca97b198c44df Mon Sep 17 00:00:00 2001 +From a7653826d1027195159b44c0adb9ce9b5493d9fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:26 +0100 Subject: [PATCH 037/323] nds32/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The mapping code is odd and looks broken. See FIXME in the comment. @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/nds32/mm/highmem.c diff --git a/arch/nds32/Kconfig.cpu b/arch/nds32/Kconfig.cpu -index f88a12fdf0f3..c10759952485 100644 +index f88a12fdf0f35..c107599524855 100644 --- a/arch/nds32/Kconfig.cpu +++ b/arch/nds32/Kconfig.cpu @@ -157,6 +157,7 @@ config HW_SUPPORT_UNALIGNMENT_ACCESS @@ -35,7 +35,7 @@ index f88a12fdf0f3..c10759952485 100644 The address space of Andes processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address diff --git a/arch/nds32/include/asm/fixmap.h b/arch/nds32/include/asm/fixmap.h -index 5a4bf11e5800..2fa09a2de428 100644 +index 5a4bf11e58003..2fa09a2de4281 100644 --- a/arch/nds32/include/asm/fixmap.h +++ b/arch/nds32/include/asm/fixmap.h @@ -6,7 +6,7 @@ @@ -57,7 +57,7 @@ index 5a4bf11e5800..2fa09a2de428 100644 FIX_EARLYCON_MEM_BASE, __end_of_fixed_addresses diff --git a/arch/nds32/include/asm/highmem.h b/arch/nds32/include/asm/highmem.h -index fe986d0e6e3f..16159a8716f2 100644 +index fe986d0e6e3ff..16159a8716f22 100644 --- a/arch/nds32/include/asm/highmem.h +++ b/arch/nds32/include/asm/highmem.h @@ -5,7 +5,6 @@ @@ -97,7 +97,7 @@ index fe986d0e6e3f..16159a8716f2 100644 #endif diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile -index 897ecaf5cf54..14fb2e8eb036 100644 +index 897ecaf5cf54b..14fb2e8eb0368 100644 --- a/arch/nds32/mm/Makefile +++ b/arch/nds32/mm/Makefile @@ -3,7 +3,6 @@ obj-y := extable.o tlb.o fault.o init.o mmap.o \ @@ -110,7 +110,7 @@ index 897ecaf5cf54..14fb2e8eb036 100644 CFLAGS_REMOVE_proc.o = $(CC_FLAGS_FTRACE) diff --git a/arch/nds32/mm/highmem.c b/arch/nds32/mm/highmem.c deleted file mode 100644 -index 4284cd59e21a..000000000000 +index 4284cd59e21ad..0000000000000 --- a/arch/nds32/mm/highmem.c +++ /dev/null @@ -1,48 +0,0 @@ @@ -163,5 +163,5 @@ index 4284cd59e21a..000000000000 -} -EXPORT_SYMBOL(kunmap_atomic_high); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch index 92e962c1f..c62228e1e 100644 --- a/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From 6d7d749a6b27ada63e8be5d1903d336538b40702 Mon Sep 17 00:00:00 2001 +From b055e7a673bff3e7c73b15d091b281e8f7846f3b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:27 +0100 Subject: [PATCH 038/323] powerpc/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/powerpc/mm/highmem.c diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig -index 78dd6be8b31d..b3ab6c2d9f66 100644 +index 78dd6be8b31dd..b3ab6c2d9f66c 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -410,6 +410,7 @@ menu "Kernel options" @@ -37,7 +37,7 @@ index 78dd6be8b31d..b3ab6c2d9f66 100644 source "kernel/Kconfig.hz" diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h -index 897cc68758d4..a832aeafe560 100644 +index 897cc68758d44..a832aeafe5601 100644 --- a/arch/powerpc/include/asm/fixmap.h +++ b/arch/powerpc/include/asm/fixmap.h @@ -20,7 +20,7 @@ @@ -59,7 +59,7 @@ index 897cc68758d4..a832aeafe560 100644 #ifdef CONFIG_PPC_8xx /* For IMMR we need an aligned 512K area */ diff --git a/arch/powerpc/include/asm/highmem.h b/arch/powerpc/include/asm/highmem.h -index 104026f7d6bc..80a5ae771c65 100644 +index 104026f7d6bc2..80a5ae771c653 100644 --- a/arch/powerpc/include/asm/highmem.h +++ b/arch/powerpc/include/asm/highmem.h @@ -24,12 +24,10 @@ @@ -89,7 +89,7 @@ index 104026f7d6bc..80a5ae771c65 100644 #endif /* _ASM_HIGHMEM_H */ diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h deleted file mode 100644 -index c8fa182d48c8..000000000000 +index c8fa182d48c8e..0000000000000 --- a/arch/powerpc/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -107,7 +107,7 @@ index c8fa182d48c8..000000000000 -#endif /* __KERNEL__ */ -#endif /* _ASM_POWERPC_KMAP_TYPES_H */ diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile -index 55b4a8bd408a..3b4e9e4e25ea 100644 +index 55b4a8bd408ab..3b4e9e4e25eaa 100644 --- a/arch/powerpc/mm/Makefile +++ b/arch/powerpc/mm/Makefile @@ -16,7 +16,6 @@ obj-$(CONFIG_NEED_MULTIPLE_NODES) += numa.o @@ -120,7 +120,7 @@ index 55b4a8bd408a..3b4e9e4e25ea 100644 obj-$(CONFIG_KASAN) += kasan/ diff --git a/arch/powerpc/mm/highmem.c b/arch/powerpc/mm/highmem.c deleted file mode 100644 -index 624b4438aff9..000000000000 +index 624b4438aff9d..0000000000000 --- a/arch/powerpc/mm/highmem.c +++ /dev/null @@ -1,67 +0,0 @@ @@ -192,7 +192,7 @@ index 624b4438aff9..000000000000 -} -EXPORT_SYMBOL(kunmap_atomic_high); diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c -index 08e3422eb792..1faa0789871d 100644 +index 08e3422eb7926..1faa0789871d5 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -63,11 +63,6 @@ @@ -217,5 +217,5 @@ index 08e3422eb792..1faa0789871d 100644 printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%llx\n", -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch index 5ac60d218..04ed25343 100644 --- a/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From 859a29e0206dcd137ea0db376a846246f1071bfb Mon Sep 17 00:00:00 2001 +From 7e2669a664ce1a4269d1a0d68adb58865b822174 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:28 +0100 Subject: [PATCH 039/323] sparc/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 arch/sparc/mm/highmem.c diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig -index 7e2ce4c8d657..1a6e4b187861 100644 +index 7e2ce4c8d6571..1a6e4b1878617 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -140,6 +140,7 @@ config MMU @@ -35,7 +35,7 @@ index 7e2ce4c8d657..1a6e4b187861 100644 config ZONE_DMA bool diff --git a/arch/sparc/include/asm/highmem.h b/arch/sparc/include/asm/highmem.h -index 6c35f0d27ee1..875116209ec1 100644 +index 6c35f0d27ee1a..875116209ec14 100644 --- a/arch/sparc/include/asm/highmem.h +++ b/arch/sparc/include/asm/highmem.h @@ -24,7 +24,6 @@ @@ -69,7 +69,7 @@ index 6c35f0d27ee1..875116209ec1 100644 #endif /* _ASM_HIGHMEM_H */ diff --git a/arch/sparc/include/asm/kmap_types.h b/arch/sparc/include/asm/kmap_types.h deleted file mode 100644 -index 55a99b6bd91e..000000000000 +index 55a99b6bd91e0..0000000000000 --- a/arch/sparc/include/asm/kmap_types.h +++ /dev/null @@ -1,11 +0,0 @@ @@ -85,7 +85,7 @@ index 55a99b6bd91e..000000000000 - -#endif diff --git a/arch/sparc/include/asm/vaddrs.h b/arch/sparc/include/asm/vaddrs.h -index 84d054b07a6f..4fec0341e2a8 100644 +index 84d054b07a6ff..4fec0341e2a81 100644 --- a/arch/sparc/include/asm/vaddrs.h +++ b/arch/sparc/include/asm/vaddrs.h @@ -32,13 +32,13 @@ @@ -105,7 +105,7 @@ index 84d054b07a6f..4fec0341e2a8 100644 __end_of_fixed_addresses }; diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile -index b078205b70e0..68db1f859b02 100644 +index b078205b70e0b..68db1f859b028 100644 --- a/arch/sparc/mm/Makefile +++ b/arch/sparc/mm/Makefile @@ -15,6 +15,3 @@ obj-$(CONFIG_SPARC32) += leon_mm.o @@ -117,7 +117,7 @@ index b078205b70e0..68db1f859b02 100644 -obj-$(CONFIG_HIGHMEM) += highmem.o diff --git a/arch/sparc/mm/highmem.c b/arch/sparc/mm/highmem.c deleted file mode 100644 -index 8f2a2afb048a..000000000000 +index 8f2a2afb048a2..0000000000000 --- a/arch/sparc/mm/highmem.c +++ /dev/null @@ -1,115 +0,0 @@ @@ -237,7 +237,7 @@ index 8f2a2afb048a..000000000000 -} -EXPORT_SYMBOL(kunmap_atomic_high); diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c -index 0070f8b9a753..a03caa5f6628 100644 +index 0070f8b9a753a..a03caa5f6628d 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c @@ -971,8 +971,6 @@ void __init srmmu_paging_init(void) @@ -250,5 +250,5 @@ index 0070f8b9a753..a03caa5f6628 100644 unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0 }; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch b/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch index c17ef447f..6ce044a6b 100644 --- a/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch +++ b/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch @@ -1,8 +1,8 @@ -From 716b526a73eff1c6b44a898c5e66ee2569f7280d Mon Sep 17 00:00:00 2001 +From 23574f6f7745b0cb224deea5cc7f455538f31fe3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:29 +0100 Subject: [PATCH 040/323] xtensa/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 18 insertions(+), 45 deletions(-) diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig -index 87e08ad38ea7..03cbf6b53622 100644 +index 87e08ad38ea71..03cbf6b536220 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -666,6 +666,7 @@ endchoice @@ -31,7 +31,7 @@ index 87e08ad38ea7..03cbf6b53622 100644 Linux can use the full amount of RAM in the system by default. However, the default MMUv2 setup only maps the diff --git a/arch/xtensa/include/asm/fixmap.h b/arch/xtensa/include/asm/fixmap.h -index a06ffb0c61c7..92049b61c351 100644 +index a06ffb0c61c77..92049b61c3511 100644 --- a/arch/xtensa/include/asm/fixmap.h +++ b/arch/xtensa/include/asm/fixmap.h @@ -16,7 +16,7 @@ @@ -53,7 +53,7 @@ index a06ffb0c61c7..92049b61c351 100644 __end_of_fixed_addresses }; diff --git a/arch/xtensa/include/asm/highmem.h b/arch/xtensa/include/asm/highmem.h -index eac503215f17..0fc3b1cebc56 100644 +index eac503215f178..0fc3b1cebc56a 100644 --- a/arch/xtensa/include/asm/highmem.h +++ b/arch/xtensa/include/asm/highmem.h @@ -16,9 +16,8 @@ @@ -84,7 +84,7 @@ index eac503215f17..0fc3b1cebc56 100644 #endif diff --git a/arch/xtensa/mm/highmem.c b/arch/xtensa/mm/highmem.c -index 673196fe862e..0735ca5e8f86 100644 +index 673196fe862ef..0735ca5e8f869 100644 --- a/arch/xtensa/mm/highmem.c +++ b/arch/xtensa/mm/highmem.c @@ -12,8 +12,6 @@ @@ -162,5 +162,5 @@ index 673196fe862e..0735ca5e8f86 100644 kmap_waitqueues_init(); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch b/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch index d492fb27f..28472a543 100644 --- a/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch +++ b/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch @@ -1,8 +1,8 @@ -From 78d1ee2f2f990b4876ce2e64c637a660911a903d Mon Sep 17 00:00:00 2001 +From b9284006af4b038b143935e33d9d29e6060a278b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:30 +0100 Subject: [PATCH 041/323] highmem: Get rid of kmap_types.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The header is not longer used and on alpha, ia64, openrisc, parisc and um it was completely unused anyway as these architectures have no highmem @@ -30,7 +30,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/arch/alpha/include/asm/kmap_types.h b/arch/alpha/include/asm/kmap_types.h deleted file mode 100644 -index 651714b45729..000000000000 +index 651714b45729a..0000000000000 --- a/arch/alpha/include/asm/kmap_types.h +++ /dev/null @@ -1,15 +0,0 @@ @@ -51,7 +51,7 @@ index 651714b45729..000000000000 -#endif diff --git a/arch/ia64/include/asm/kmap_types.h b/arch/ia64/include/asm/kmap_types.h deleted file mode 100644 -index 5c268cf7c2bd..000000000000 +index 5c268cf7c2bd5..0000000000000 --- a/arch/ia64/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -69,7 +69,7 @@ index 5c268cf7c2bd..000000000000 - -#endif /* _ASM_IA64_KMAP_TYPES_H */ diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c -index 5e88c351e6a4..f3fa02b8838a 100644 +index 5e88c351e6a45..f3fa02b8838af 100644 --- a/arch/openrisc/mm/init.c +++ b/arch/openrisc/mm/init.c @@ -33,7 +33,6 @@ @@ -81,7 +81,7 @@ index 5e88c351e6a4..f3fa02b8838a 100644 #include <asm/tlbflush.h> #include <asm/sections.h> diff --git a/arch/openrisc/mm/ioremap.c b/arch/openrisc/mm/ioremap.c -index a978590d802d..5aed97a18bac 100644 +index a978590d802d0..5aed97a18bac9 100644 --- a/arch/openrisc/mm/ioremap.c +++ b/arch/openrisc/mm/ioremap.c @@ -15,7 +15,6 @@ @@ -94,7 +94,7 @@ index a978590d802d..5aed97a18bac 100644 #include <linux/sched.h> diff --git a/arch/parisc/include/asm/kmap_types.h b/arch/parisc/include/asm/kmap_types.h deleted file mode 100644 -index 3e70b5cd1123..000000000000 +index 3e70b5cd11231..0000000000000 --- a/arch/parisc/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -112,7 +112,7 @@ index 3e70b5cd1123..000000000000 - -#endif diff --git a/arch/um/include/asm/fixmap.h b/arch/um/include/asm/fixmap.h -index 2c697a145ac1..2efac5827188 100644 +index 2c697a145ac1b..2efac58271880 100644 --- a/arch/um/include/asm/fixmap.h +++ b/arch/um/include/asm/fixmap.h @@ -3,7 +3,6 @@ @@ -125,7 +125,7 @@ index 2c697a145ac1..2efac5827188 100644 #include <linux/threads.h> diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h deleted file mode 100644 -index b0bd12de1d23..000000000000 +index b0bd12de1d23c..0000000000000 --- a/arch/um/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -143,7 +143,7 @@ index b0bd12de1d23..000000000000 - -#endif diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild -index 3114a6da7e56..267f6dfb8960 100644 +index 3114a6da7e561..267f6dfb8960b 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild @@ -30,7 +30,6 @@ mandatory-y += irq.h @@ -156,7 +156,7 @@ index 3114a6da7e56..267f6dfb8960 100644 mandatory-y += linkage.h diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h deleted file mode 100644 -index 9f95b7b63d19..000000000000 +index 9f95b7b63d192..0000000000000 --- a/include/asm-generic/kmap_types.h +++ /dev/null @@ -1,11 +0,0 @@ @@ -172,7 +172,7 @@ index 9f95b7b63d19..000000000000 - -#endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index fbede783dc34..a5ce45dceae0 100644 +index fbede783dc341..a5ce45dceae0f 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -29,8 +29,6 @@ static inline void invalidate_kernel_vmap_range(void *vaddr, int size) @@ -185,5 +185,5 @@ index fbede783dc34..a5ce45dceae0 100644 * Outside of CONFIG_HIGHMEM to support X86 32bit iomap_atomic() cruft. */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch b/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch index 112ed0a87..d9574c955 100644 --- a/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch +++ b/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch @@ -1,8 +1,8 @@ -From 2840eec439f3e1788047259d10994b555020de40 Mon Sep 17 00:00:00 2001 +From 4e0de4d5db14ba816eba9381e9ffc96b664e1d21 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:31 +0100 Subject: [PATCH 042/323] mm/highmem: Remove the old kmap_atomic cruft -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz All users gone. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 5 insertions(+), 65 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index a5ce45dceae0..e632774cce87 100644 +index a5ce45dceae0f..e632774cce872 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -86,31 +86,16 @@ static inline void kunmap(struct page *page) @@ -110,7 +110,7 @@ index a5ce45dceae0..e632774cce87 100644 /* * Prevent people trying to call kunmap_atomic() as if it were kunmap() diff --git a/mm/highmem.c b/mm/highmem.c -index 77677c6844f7..499dfafd36b7 100644 +index 77677c6844f73..499dfafd36b79 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -31,12 +31,6 @@ @@ -135,5 +135,5 @@ index 77677c6844f7..499dfafd36b7 100644 # define arch_kmap_local_pre_unmap(vaddr) do { } while (0) #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch b/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch index 08ec0b108..1ee5b56f2 100644 --- a/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch +++ b/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch @@ -1,8 +1,8 @@ -From d1b454a9410a5cb2d9dcd0ef4bc330d04847f302 Mon Sep 17 00:00:00 2001 +From f91009f26945cd1e4bcce25b5a6db9660067856a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:32 +0100 Subject: [PATCH 043/323] io-mapping: Cleanup atomic iomap -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Switch the atomic iomap implementation over to kmap_local and stick the preempt/pagefault mechanics into the generic code similar to the @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h -index 0be7a30fd6bc..e2de092fc38c 100644 +index 0be7a30fd6bc1..e2de092fc38cb 100644 --- a/arch/x86/include/asm/iomap.h +++ b/arch/x86/include/asm/iomap.h @@ -13,14 +13,7 @@ @@ -39,7 +39,7 @@ index 0be7a30fd6bc..e2de092fc38c 100644 int iomap_create_wc(resource_size_t base, unsigned long size, pgprot_t *prot); diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c -index e0a40d7cc66c..9aaa756ddf21 100644 +index e0a40d7cc66c8..9aaa756ddf219 100644 --- a/arch/x86/mm/iomap_32.c +++ b/arch/x86/mm/iomap_32.c @@ -44,7 +44,7 @@ void iomap_free(resource_size_t base, unsigned long size) @@ -62,7 +62,7 @@ index e0a40d7cc66c..9aaa756ddf21 100644 -EXPORT_SYMBOL_GPL(iomap_atomic_pfn_prot); +EXPORT_SYMBOL_GPL(__iomap_local_pfn_prot); diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index 3b0940be72e9..60e7c83e4904 100644 +index 3b0940be72e96..60e7c83e49047 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -69,13 +69,17 @@ io_mapping_map_atomic_wc(struct io_mapping *mapping, @@ -86,5 +86,5 @@ index 3b0940be72e9..60e7c83e4904 100644 static inline void __iomem * -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch b/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch index 4ea660fff..57b62e988 100644 --- a/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch +++ b/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch @@ -1,8 +1,8 @@ -From edd5c644d78fbd912f6386c97ed2b4eaf2b58b47 Mon Sep 17 00:00:00 2001 +From d45aad297835562a9e75b5d26f4d8b5c5b6a00ad Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:33 +0100 Subject: [PATCH 044/323] Documentation/io-mapping: Remove outdated blurb -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The implementation details in the documentation are outdated and not really helpful. Remove them. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 22 deletions(-) diff --git a/Documentation/driver-api/io-mapping.rst b/Documentation/driver-api/io-mapping.rst -index a966239f04e4..e33b88268554 100644 +index a966239f04e48..e33b88268554b 100644 --- a/Documentation/driver-api/io-mapping.rst +++ b/Documentation/driver-api/io-mapping.rst @@ -73,25 +73,3 @@ for pages mapped with io_mapping_map_wc. @@ -44,5 +44,5 @@ index a966239f04e4..e33b88268554 100644 -performs an IPI to inform all processors about the new mapping. This results -in a significant performance penalty. -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch b/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch index 723dd45e7..6ccdfc1b7 100644 --- a/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch +++ b/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch @@ -1,8 +1,8 @@ -From e9f16e3d48ba9b1d37ae050de3e84e147133b84c Mon Sep 17 00:00:00 2001 +From ec6851b3e03ba777e3527ccb486213f068873699 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:34 +0100 Subject: [PATCH 045/323] highmem: High implementation details and document API -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Move the gory details of kmap & al into a private header and only document the interfaces which are usable by drivers. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h new file mode 100644 -index 000000000000..6ceed907b14e +index 0000000000000..6ceed907b14e2 --- /dev/null +++ b/include/linux/highmem-internal.h @@ -0,0 +1,174 @@ @@ -197,7 +197,7 @@ index 000000000000..6ceed907b14e + +#endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index e632774cce87..5c888525b4c5 100644 +index e632774cce872..5c888525b4c58 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -11,199 +11,125 @@ @@ -497,7 +497,7 @@ index e632774cce87..5c888525b4c5 100644 /* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */ #ifndef clear_user_highpage diff --git a/mm/highmem.c b/mm/highmem.c -index 499dfafd36b7..54bd233846c9 100644 +index 499dfafd36b79..54bd233846c90 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -104,7 +104,7 @@ static inline wait_queue_head_t *get_pkmap_wait_queue_head(unsigned int color) @@ -540,5 +540,5 @@ index 499dfafd36b7..54bd233846c9 100644 lock_kmap(); flush_all_zero_pkmaps(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch b/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch index ed3660a63..c5b422016 100644 --- a/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch +++ b/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch @@ -1,9 +1,9 @@ -From 2a81a49976b336ce93ef823a5db96ce960096478 Mon Sep 17 00:00:00 2001 +From 0b1707c24dd0c148748dc77607d7be60b1e89a67 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:35 +0100 Subject: [PATCH 046/323] sched: Make migrate_disable/enable() independent of RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Now that the scheduler can deal with migrate disable properly, there is no real compelling reason to make it only available for RT. @@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 6 files changed, 56 insertions(+), 56 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index cdd6ed5bbcf2..55d48d5627c7 100644 +index cdd6ed5bbcf20..55d48d5627c71 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -207,6 +207,7 @@ extern int _cond_resched(void); @@ -91,7 +91,7 @@ index cdd6ed5bbcf2..55d48d5627c7 100644 * abs - return absolute value of an argument * @x: the value. If it is unsigned type, it is converted to signed type first. diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 8b43922e65df..6df63cbe8bb0 100644 +index 8b43922e65dfe..6df63cbe8bb04 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -322,7 +322,7 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier, @@ -150,7 +150,7 @@ index 8b43922e65df..6df63cbe8bb0 100644 #endif /* __LINUX_PREEMPT_H */ diff --git a/include/linux/sched.h b/include/linux/sched.h -index 7ca1f3e740dd..bff48e9f32db 100644 +index 7ca1f3e740ddd..bff48e9f32db5 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -727,7 +727,7 @@ struct task_struct { @@ -163,7 +163,7 @@ index 7ca1f3e740dd..bff48e9f32db 100644 #endif unsigned short migration_flags; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c1e52319669d..8a6135a0b2ee 100644 +index c1e52319669dd..8a6135a0b2ee8 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1710,8 +1710,6 @@ void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) @@ -254,7 +254,7 @@ index c1e52319669d..8a6135a0b2ee 100644 #ifdef CONFIG_MAGIC_SYSRQ diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 69ef7cac3d29..c26b1c7009f4 100644 +index 69ef7cac3d296..c26b1c7009f45 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1058,7 +1058,7 @@ struct rq { @@ -276,7 +276,7 @@ index 69ef7cac3d29..c26b1c7009f4 100644 #else return false; diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c -index dbb96ebf661f..0c0c42b14370 100644 +index dbb96ebf661fd..0c0c42b143704 100644 --- a/lib/smp_processor_id.c +++ b/lib/smp_processor_id.c @@ -26,7 +26,7 @@ unsigned int check_preemption_disabled(const char *what1, const char *what2) @@ -289,5 +289,5 @@ index dbb96ebf661f..0c0c42b14370 100644 goto out; #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch b/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch index ecd08de62..f09a2fc17 100644 --- a/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch +++ b/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch @@ -1,8 +1,8 @@ -From 7aa261f53a405c0862f4857b46ef3344bbe6385f Mon Sep 17 00:00:00 2001 +From a527bfab6dff28043adab743a6cd53e5edbc3f7f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:36 +0100 Subject: [PATCH 047/323] sched: highmem: Store local kmaps in task struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Instead of storing the map per CPU provide and use per task storage. That prepares for local kmaps which are preemptible. @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 6 files changed, 129 insertions(+), 10 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index 6ceed907b14e..c5a22177db85 100644 +index 6ceed907b14e2..c5a22177db85b 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -9,6 +9,16 @@ @@ -52,7 +52,7 @@ index 6ceed907b14e..c5a22177db85 100644 #ifdef CONFIG_HIGHMEM diff --git a/include/linux/sched.h b/include/linux/sched.h -index bff48e9f32db..82de1ab42497 100644 +index bff48e9f32db5..82de1ab424976 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -34,6 +34,7 @@ @@ -86,7 +86,7 @@ index bff48e9f32db..82de1ab42497 100644 unsigned long task_state_change; #endif diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index 09f58853f692..e6a66de1202a 100644 +index 09f58853f6927..e6a66de1202af 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -2,6 +2,7 @@ @@ -106,7 +106,7 @@ index 09f58853f692..e6a66de1202a 100644 lockdep_sys_exit(); } diff --git a/kernel/fork.c b/kernel/fork.c -index 633b0af1d1a7..32b9d7205ac1 100644 +index 633b0af1d1a73..32b9d7205ac1b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -942,6 +942,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -118,7 +118,7 @@ index 633b0af1d1a7..32b9d7205ac1 100644 #ifdef CONFIG_FAULT_INJECTION tsk->fail_nth = 0; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 8a6135a0b2ee..390b51366f5e 100644 +index 8a6135a0b2ee8..390b51366f5ef 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4092,6 +4092,22 @@ static inline void finish_lock_switch(struct rq *rq) @@ -161,7 +161,7 @@ index 8a6135a0b2ee..390b51366f5e 100644 fire_sched_in_preempt_notifiers(current); /* diff --git a/mm/highmem.c b/mm/highmem.c -index 54bd233846c9..d7a1c80001d0 100644 +index 54bd233846c90..d7a1c80001d02 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -365,8 +365,6 @@ EXPORT_SYMBOL(kunmap_high); @@ -305,5 +305,5 @@ index 54bd233846c9..d7a1c80001d0 100644 #if defined(HASHED_PAGE_VIRTUAL) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch b/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch index aa15ab4ec..6da17988e 100644 --- a/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch +++ b/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch @@ -1,8 +1,8 @@ -From 452c4c8536ea017ed0f82287834e7cfa2f751488 Mon Sep 17 00:00:00 2001 +From 6a7f5fb7836ec39356bb78e261f3e3a8cf173e26 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:37 +0100 Subject: [PATCH 048/323] mm/highmem: Provide kmap_local* -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Now that the kmap atomic index is stored in task struct provide a preemptible variant. On context switch the maps of an outgoing task are @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 81 insertions(+), 16 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index c5a22177db85..1bbe96dc8be6 100644 +index c5a22177db85b..1bbe96dc8be65 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -68,6 +68,26 @@ static inline void kmap_flush_unused(void) @@ -99,7 +99,7 @@ index c5a22177db85..1bbe96dc8be6 100644 + #endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index 5c888525b4c5..7a3c6d4b79d8 100644 +index 5c888525b4c58..7a3c6d4b79d82 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -60,24 +60,22 @@ static inline struct page *kmap_to_page(void *addr); @@ -179,7 +179,7 @@ index 5c888525b4c5..7a3c6d4b79d8 100644 /* Highmem related interfaces for management code */ diff --git a/mm/highmem.c b/mm/highmem.c -index d7a1c80001d0..8db577e5290c 100644 +index d7a1c80001d02..8db577e5290cc 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -450,6 +450,11 @@ void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t prot) @@ -203,5 +203,5 @@ index d7a1c80001d0..8db577e5290c 100644 EXPORT_SYMBOL(kunmap_local_indexed); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch b/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch index 1419b16fb..c95c40e78 100644 --- a/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch +++ b/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch @@ -1,8 +1,8 @@ -From 223ef1707ad3b008f96df3f4d263d2cdeed3ef65 Mon Sep 17 00:00:00 2001 +From 0e6f15d2a0edd6864ee345a84b16620f75f91bb6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:38 +0100 Subject: [PATCH 049/323] io-mapping: Provide iomap_local variant -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Similar to kmap local provide a iomap local variant which only disables migration, but neither disables pagefaults nor preemption. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 73 insertions(+), 31 deletions(-) diff --git a/Documentation/driver-api/io-mapping.rst b/Documentation/driver-api/io-mapping.rst -index e33b88268554..a0cfb15988df 100644 +index e33b88268554b..a0cfb15988dfc 100644 --- a/Documentation/driver-api/io-mapping.rst +++ b/Documentation/driver-api/io-mapping.rst @@ -20,55 +20,71 @@ A mapping object is created during driver initialization using:: @@ -120,7 +120,7 @@ index e33b88268554..a0cfb15988df 100644 At driver close time, the io_mapping object must be freed:: diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index 60e7c83e4904..c093e81310a9 100644 +index 60e7c83e49047..c093e81310a9b 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -82,6 +82,21 @@ io_mapping_unmap_atomic(void __iomem *vaddr) @@ -175,5 +175,5 @@ index 60e7c83e4904..c093e81310a9 100644 static inline struct io_mapping * io_mapping_create_wc(resource_size_t base, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch b/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch index 6f57ef059..641af91b4 100644 --- a/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch +++ b/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch @@ -1,8 +1,8 @@ -From 9d9dd47b77d859a1261ac0dc98d94018bb5bb6a0 Mon Sep 17 00:00:00 2001 +From 6109dda978382498ad58575b6ca7290347da1a74 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:39 +0100 Subject: [PATCH 050/323] x86/crashdump/32: Simplify copy_oldmem_page() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace kmap_atomic_pfn() with kmap_local_pfn() which is preemptible and can take page faults. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 10 insertions(+), 38 deletions(-) diff --git a/arch/x86/kernel/crash_dump_32.c b/arch/x86/kernel/crash_dump_32.c -index 33ee47670b99..5fcac46aaf6b 100644 +index 33ee47670b993..5fcac46aaf6b1 100644 --- a/arch/x86/kernel/crash_dump_32.c +++ b/arch/x86/kernel/crash_dump_32.c @@ -13,8 +13,6 @@ @@ -95,5 +95,5 @@ index 33ee47670b99..5fcac46aaf6b 100644 } -arch_initcall(kdump_buf_page_init); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch b/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch index 837a4a04e..615fa149a 100644 --- a/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch +++ b/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch @@ -1,8 +1,8 @@ -From 1aeac707162ce43fc0ae9c45df5a8a4535de2332 Mon Sep 17 00:00:00 2001 +From 64d0e583ec61d4eea2d55644654a33fdb13144b7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:40 +0100 Subject: [PATCH 051/323] mips/crashdump: Simplify copy_oldmem_page() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace kmap_atomic_pfn() with kmap_local_pfn() which is preemptible and can take page faults. @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/arch/mips/kernel/crash_dump.c b/arch/mips/kernel/crash_dump.c -index 01b2bd95ba1f..9aba83e1eeb4 100644 +index 01b2bd95ba1f7..9aba83e1eeb4e 100644 --- a/arch/mips/kernel/crash_dump.c +++ b/arch/mips/kernel/crash_dump.c @@ -5,8 +5,6 @@ @@ -91,5 +91,5 @@ index 01b2bd95ba1f..9aba83e1eeb4 100644 -} -arch_initcall(kdump_buf_page_init); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch b/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch index ba46ccc69..3cef9e7bb 100644 --- a/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch +++ b/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch @@ -1,8 +1,8 @@ -From d74735ac58543c778598c75bccd45aa527acf03c Mon Sep 17 00:00:00 2001 +From 7663b6728057abea9f61b19e5e04e7246d76cf85 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:41 +0100 Subject: [PATCH 052/323] ARM: mm: Replace kmap_atomic_pfn() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no requirement to disable pagefaults and preemption for these cache management mappings. @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c -index 5c1b7a7b9af6..87328766e910 100644 +index 5c1b7a7b9af63..87328766e9102 100644 --- a/arch/arm/mm/cache-feroceon-l2.c +++ b/arch/arm/mm/cache-feroceon-l2.c @@ -49,9 +49,9 @@ static inline unsigned long l2_get_va(unsigned long paddr) @@ -45,7 +45,7 @@ index 5c1b7a7b9af6..87328766e910 100644 } diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c -index d20d7af02d10..0e0a3abd8174 100644 +index d20d7af02d10f..0e0a3abd81743 100644 --- a/arch/arm/mm/cache-xsc3l2.c +++ b/arch/arm/mm/cache-xsc3l2.c @@ -59,7 +59,7 @@ static inline void l2_unmap_va(unsigned long va) @@ -67,5 +67,5 @@ index d20d7af02d10..0e0a3abd8174 100644 return va + (pa_offset >> (32 - PAGE_SHIFT)); #else -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch b/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch index a43566a1c..9c3d829a5 100644 --- a/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch +++ b/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch @@ -1,8 +1,8 @@ -From 766aabba108ec5697bed86d6ec633151b7f3618e Mon Sep 17 00:00:00 2001 +From 096cf71d9a07e3810a1d2094ba9b6cc413176a7a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:42 +0100 Subject: [PATCH 053/323] highmem: Remove kmap_atomic_pfn() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No more users. @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 12 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index 1bbe96dc8be6..3590af5aad96 100644 +index 1bbe96dc8be65..3590af5aad96c 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -100,13 +100,6 @@ static inline void *kmap_atomic(struct page *page) @@ -43,5 +43,5 @@ index 1bbe96dc8be6..3590af5aad96 100644 { #ifdef ARCH_HAS_FLUSH_ON_KUNMAP -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch b/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch index 3043aa642..cb9667f47 100644 --- a/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch +++ b/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch @@ -1,8 +1,8 @@ -From 818c332a89ac4310c59f7ad122bdb4a6e0aac518 Mon Sep 17 00:00:00 2001 +From cd9f2293478040e4ee9bb03a5f1bfbc60fe45fa5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:43 +0100 Subject: [PATCH 054/323] drm/ttm: Replace kmap_atomic() usage -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no reason to disable pagefaults and preemption as a side effect of kmap_atomic_prot(). @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c -index 1968df9743fc..79b9c883431a 100644 +index 1968df9743fcb..79b9c883431ad 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -181,13 +181,15 @@ static int ttm_copy_io_ttm_page(struct ttm_tt *ttm, void *src, @@ -70,5 +70,5 @@ index 1968df9743fc..79b9c883431a 100644 return 0; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch b/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch index 613e94a91..d4565dcf9 100644 --- a/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch +++ b/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch @@ -1,8 +1,8 @@ -From 3c21a2a16d681c2be78f257f660f1c8c1b50f7c3 Mon Sep 17 00:00:00 2001 +From 52dc70863ec4a1890efdac04a1684ade2ed9c18c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:44 +0100 Subject: [PATCH 055/323] drm/vmgfx: Replace kmap_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no reason to disable pagefaults and preemption as a side effect of kmap_atomic_prot(). @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c -index e8d66182cd7b..71dba228f68e 100644 +index ea2f2f937eb30..592c2a73fdfda 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c @@ -375,12 +375,12 @@ static int vmw_bo_cpu_blit_line(struct vmw_bo_blit_line_data *d, @@ -100,5 +100,5 @@ index e8d66182cd7b..71dba228f68e 100644 return ret; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch b/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch index f9038b30b..71bbfd051 100644 --- a/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch +++ b/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch @@ -1,8 +1,8 @@ -From acac3af33fa7522e3be0f030ec1d80cca2cf215d Mon Sep 17 00:00:00 2001 +From e6d38c3b5927e3f9fc1eed3a8f9aa9bbe7f31d81 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:45 +0100 Subject: [PATCH 056/323] highmem: Remove kmap_atomic_prot() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No more users. @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index 3590af5aad96..bd15bf9164c2 100644 +index 3590af5aad96c..bd15bf9164c23 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -88,16 +88,11 @@ static inline void __kunmap_local(void *vaddr) @@ -48,5 +48,5 @@ index 3590af5aad96..bd15bf9164c2 100644 { #ifdef ARCH_HAS_FLUSH_ON_KUNMAP -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch b/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch index 3d78f15fd..2147f446c 100644 --- a/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch +++ b/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch @@ -1,8 +1,8 @@ -From 2c90fccccea4cffb6ab5cd779da693cfe82194b8 Mon Sep 17 00:00:00 2001 +From 33e14567739465b7abb6bf6c2094cb8f8ad666e4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:46 +0100 Subject: [PATCH 057/323] drm/qxl: Replace io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz None of these mapping requires the side effect of disabling pagefaults and preemption. @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_image.c b/drivers/gpu/drm/qxl/qxl_image.c -index 60ab7151b84d..93f92ccd42e5 100644 +index 60ab7151b84dc..93f92ccd42e58 100644 --- a/drivers/gpu/drm/qxl/qxl_image.c +++ b/drivers/gpu/drm/qxl/qxl_image.c @@ -124,12 +124,12 @@ qxl_image_init_helper(struct qxl_device *qdev, @@ -105,10 +105,10 @@ index 60ab7151b84d..93f92ccd42e5 100644 return 0; } diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c -index 5cea6eea72ab..785023081b79 100644 +index 9a02c48714007..758c484c7986f 100644 --- a/drivers/gpu/drm/qxl/qxl_ioctl.c +++ b/drivers/gpu/drm/qxl/qxl_ioctl.c -@@ -89,11 +89,11 @@ apply_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) +@@ -88,11 +88,11 @@ apply_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) { void *reloc_page; @@ -122,7 +122,7 @@ index 5cea6eea72ab..785023081b79 100644 } static void -@@ -105,9 +105,9 @@ apply_surf_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) +@@ -104,9 +104,9 @@ apply_surf_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) if (info->src_bo && !info->src_bo->is_primary) id = info->src_bo->surface_id; @@ -134,7 +134,7 @@ index 5cea6eea72ab..785023081b79 100644 } /* return holding the reference to this object */ -@@ -149,7 +149,6 @@ static int qxl_process_single_command(struct qxl_device *qdev, +@@ -148,7 +148,6 @@ static int qxl_process_single_command(struct qxl_device *qdev, struct qxl_bo *cmd_bo; void *fb_cmd; int i, ret, num_relocs; @@ -142,7 +142,7 @@ index 5cea6eea72ab..785023081b79 100644 switch (cmd->type) { case QXL_CMD_DRAW: -@@ -185,21 +184,21 @@ static int qxl_process_single_command(struct qxl_device *qdev, +@@ -184,21 +183,21 @@ static int qxl_process_single_command(struct qxl_device *qdev, goto out_free_reloc; /* TODO copy slow path code from i915 */ @@ -174,7 +174,7 @@ index 5cea6eea72ab..785023081b79 100644 } diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c -index 544a9e4df2a8..5ee5171d46ef 100644 +index 544a9e4df2a86..5ee5171d46ef8 100644 --- a/drivers/gpu/drm/qxl/qxl_object.c +++ b/drivers/gpu/drm/qxl/qxl_object.c @@ -173,8 +173,8 @@ int qxl_bo_kmap(struct qxl_bo *bo, void **ptr) @@ -216,7 +216,7 @@ index 544a9e4df2a8..5ee5171d46ef 100644 fallback: qxl_bo_kunmap(bo); diff --git a/drivers/gpu/drm/qxl/qxl_object.h b/drivers/gpu/drm/qxl/qxl_object.h -index 5762ea40d047..6ae89b1b36f4 100644 +index 5762ea40d047c..6ae89b1b36f47 100644 --- a/drivers/gpu/drm/qxl/qxl_object.h +++ b/drivers/gpu/drm/qxl/qxl_object.h @@ -89,8 +89,8 @@ extern int qxl_bo_create(struct qxl_device *qdev, @@ -231,7 +231,7 @@ index 5762ea40d047..6ae89b1b36f4 100644 extern void qxl_bo_unref(struct qxl_bo **bo); extern int qxl_bo_pin(struct qxl_bo *bo); diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c -index b2a475a0ca4a..b665a33b449b 100644 +index b2a475a0ca4aa..b665a33b449b4 100644 --- a/drivers/gpu/drm/qxl/qxl_release.c +++ b/drivers/gpu/drm/qxl/qxl_release.c @@ -414,7 +414,7 @@ union qxl_release_info *qxl_release_map(struct qxl_device *qdev, @@ -253,5 +253,5 @@ index b2a475a0ca4a..b665a33b449b 100644 void qxl_release_fence_buffer_objects(struct qxl_release *release) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch b/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch index 1fbd4e19c..fc8b61d24 100644 --- a/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch +++ b/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch @@ -1,9 +1,9 @@ -From fa246d15bcd167ad99886a776912530c0ca8d6a7 Mon Sep 17 00:00:00 2001 +From 4ebf134545d871b6bce1ec4ad00a0f99d94a47ee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:47 +0100 Subject: [PATCH 058/323] drm/nouveau/device: Replace io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Neither fbmem_peek() nor fbmem_poke() require to disable pagefaults and preemption as a side effect of io_mapping_map_atomic_wc(). @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h -index 6c5bbff12eb4..411f91ee20fa 100644 +index 6c5bbff12eb49..411f91ee20fa6 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h @@ -60,19 +60,19 @@ fbmem_fini(struct io_mapping *fb) @@ -50,5 +50,5 @@ index 6c5bbff12eb4..411f91ee20fa 100644 static inline bool -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch b/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch index 91fbfdde2..7526ddaa2 100644 --- a/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch +++ b/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch @@ -1,8 +1,8 @@ -From 012c96110910f68af41e3914aabb92283a885215 Mon Sep 17 00:00:00 2001 +From 632f2178ce5513881a1ea38b20b62704d79c38e8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:48 +0100 Subject: [PATCH 059/323] drm/i915: Replace io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz None of these mapping requires the side effect of disabling pagefaults and preemption. @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 22 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c -index 0c083af5a59d..2abf043d3d9d 100644 +index 0c083af5a59d5..2abf043d3d9d3 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c @@ -1080,7 +1080,7 @@ static void reloc_cache_reset(struct reloc_cache *cache, struct i915_execbuffer @@ -60,7 +60,7 @@ index 0c083af5a59d..2abf043d3d9d 100644 cache->vaddr = (unsigned long)vaddr; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 58276694c848..88944c3b1bc8 100644 +index 58276694c848d..88944c3b1bc8a 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -355,22 +355,15 @@ gtt_user_read(struct io_mapping *mapping, @@ -122,7 +122,7 @@ index 58276694c848..88944c3b1bc8 100644 /** diff --git a/drivers/gpu/drm/i915/selftests/i915_gem.c b/drivers/gpu/drm/i915/selftests/i915_gem.c -index 412e21604a05..432493183d20 100644 +index 412e21604a050..432493183d209 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem.c @@ -57,12 +57,12 @@ static void trash_stolen(struct drm_i915_private *i915) @@ -141,7 +141,7 @@ index 412e21604a05..432493183d20 100644 ggtt->vm.clear_range(&ggtt->vm, slot, PAGE_SIZE); diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c -index 65e28c4cd4ce..ca483285f267 100644 +index 65e28c4cd4ce5..ca483285f267c 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c @@ -1201,9 +1201,9 @@ static int igt_ggtt_page(void *arg) @@ -169,5 +169,5 @@ index 65e28c4cd4ce..ca483285f267 100644 if (val != n) { pr_err("insert page failed: found %d, expected %d\n", -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch b/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch index f8374350f..81e320867 100644 --- a/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch +++ b/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch @@ -1,8 +1,8 @@ -From 925f92c53f78436e9242942d1a31a1ecc61ba740 Mon Sep 17 00:00:00 2001 +From 8a390f6d3dc23e6f4f5113b1a6c5e3d2350d1c4d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 3 Nov 2020 10:27:49 +0100 Subject: [PATCH 060/323] io-mapping: Remove io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No more users. Get rid of it and remove the traces in documentation. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 9 insertions(+), 55 deletions(-) diff --git a/Documentation/driver-api/io-mapping.rst b/Documentation/driver-api/io-mapping.rst -index a0cfb15988df..a7830c59481f 100644 +index a0cfb15988dfc..a7830c59481f6 100644 --- a/Documentation/driver-api/io-mapping.rst +++ b/Documentation/driver-api/io-mapping.rst @@ -21,19 +21,15 @@ mappable, while 'size' indicates how large a mapping region to @@ -76,7 +76,7 @@ index a0cfb15988df..a7830c59481f 100644 The mappings are released with:: diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index c093e81310a9..4bb8223f2f82 100644 +index c093e81310a9b..4bb8223f2f822 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -60,28 +60,7 @@ io_mapping_fini(struct io_mapping *mapping) @@ -136,5 +136,5 @@ index c093e81310a9..4bb8223f2f82 100644 io_mapping_map_local_wc(struct io_mapping *mapping, unsigned long offset) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch b/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch index 5970ff263..a08fe6f47 100644 --- a/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch +++ b/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch @@ -1,9 +1,9 @@ -From 3df53841fc978eae47eb80dbb4ccaefa880589a7 Mon Sep 17 00:00:00 2001 +From f70839221e9cac6f0e4b3a990bd1f5105a9e62f9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Nov 2020 11:59:32 +0100 Subject: [PATCH 061/323] mm/highmem: Take kmap_high_get() properly into account -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kunmap_local() warns when the virtual address to unmap is below PAGE_OFFSET. This is correct except for the case that the mapping was @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/mm/highmem.c b/mm/highmem.c -index 8db577e5290c..72b9a2d95c72 100644 +index 8db577e5290cc..72b9a2d95c72a 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -422,12 +422,15 @@ static inline void *arch_kmap_local_high_get(struct page *page) @@ -68,5 +68,5 @@ index 8db577e5290c..72b9a2d95c72 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch b/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch index cecb34498..c86edbe0f 100644 --- a/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch +++ b/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch @@ -1,9 +1,9 @@ -From 09d7bcb6eee1e7c9351535a20f60929daca8632d Mon Sep 17 00:00:00 2001 +From 4a710599720e4ca33cf2161432d93605dd091b8c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 30 Oct 2020 13:59:06 +0100 Subject: [PATCH 062/323] highmem: Don't disable preemption on RT in kmap_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disabling preemption makes it impossible to acquire sleeping locks within kmap_atomic() section. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index bd15bf9164c2..f9bc6acd3679 100644 +index bd15bf9164c23..f9bc6acd36798 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -90,7 +90,10 @@ static inline void __kunmap_local(void *vaddr) @@ -67,5 +67,5 @@ index bd15bf9164c2..f9bc6acd3679 100644 static inline unsigned int nr_free_highpages(void) { return 0; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch b/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch index 8623209ab..df22c6219 100644 --- a/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch +++ b/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch @@ -1,9 +1,9 @@ -From f7d87d26b4c9bfd083484542889f392867c1c85b Mon Sep 17 00:00:00 2001 +From 8178f88788d35aa8b2543c5a696a206383ee3629 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 4 Dec 2020 20:13:54 +0100 Subject: [PATCH 063/323] blk-mq: Don't complete on a remote CPU in force threaded mode -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With force threaded interrupts enabled, raising softirq from an SMP function call will always result in waking the ksoftirqd thread. This is @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 8 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c -index e153a36c9ba3..cc41373cf346 100644 +index a7a31d7090aed..b7f3b0c218051 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -652,6 +652,14 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq) @@ -44,5 +44,5 @@ index e153a36c9ba3..cc41373cf346 100644 /* same CPU or cache domain? Complete locally */ if (cpu == rq->mq_ctx->cpu || -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch b/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch index 92574e87b..85d1855b0 100644 --- a/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch +++ b/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch @@ -1,9 +1,9 @@ -From 4397e4a75ac6456a0dd8cf0a99c8250845b022d6 Mon Sep 17 00:00:00 2001 +From 406da46979d4375933da7a3a41f74ba3fa5b095b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 23 Jan 2021 21:10:26 +0100 Subject: [PATCH 064/323] blk-mq: Always complete remote completions requests in softirq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Controllers with multiple queues have their IRQ-handelers pinned to a CPU. The core shouldn't need to complete the request on a remote CPU. @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c -index cc41373cf346..87b8377a74fc 100644 +index b7f3b0c218051..a7ca0a1fae234 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -630,19 +630,7 @@ static void __blk_mq_complete_request_remote(void *data) @@ -45,5 +45,5 @@ index cc41373cf346..87b8377a74fc 100644 static inline bool blk_mq_complete_need_ipi(struct request *rq) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch b/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch index b7faea536..bc6547583 100644 --- a/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch +++ b/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch @@ -1,8 +1,8 @@ -From a958b1b96b5419f3d9372de0c7851daae941bf47 Mon Sep 17 00:00:00 2001 +From a2abe33e6803f3fba8f21af9bed0e6e7b5ad5dd3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 23 Jan 2021 21:10:27 +0100 Subject: [PATCH 065/323] blk-mq: Use llist_head for blk_cpu_done -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With llist_head it is possible to avoid the locking (the irq-off region) when items are added. This makes it possible to add items on a remote @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 44 insertions(+), 59 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c -index 87b8377a74fc..a6618bf45992 100644 +index a7ca0a1fae234..927b1dc3476a2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -41,7 +41,7 @@ @@ -174,7 +174,7 @@ index 87b8377a74fc..a6618bf45992 100644 } EXPORT_SYMBOL_GPL(blk_mq_complete_request_remote); -@@ -3980,7 +3965,7 @@ static int __init blk_mq_init(void) +@@ -3996,7 +3981,7 @@ static int __init blk_mq_init(void) int i; for_each_possible_cpu(i) @@ -184,7 +184,7 @@ index 87b8377a74fc..a6618bf45992 100644 cpuhp_setup_state_nocalls(CPUHP_BLOCK_SOFTIRQ_DEAD, diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h -index 98fdf5a31fd6..b35193aec5e3 100644 +index a47e1aebaff24..fddff5d85d1eb 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -161,7 +161,7 @@ struct request { @@ -197,5 +197,5 @@ index 98fdf5a31fd6..b35193aec5e3 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch b/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch index e52831303..a2b79ba5b 100644 --- a/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch +++ b/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch @@ -1,9 +1,9 @@ -From 11e632bdd63b66d70c365424a1ceb502cb0c02ef Mon Sep 17 00:00:00 2001 +From 21c3e4938cd11adb1a04e8b4070359638699d523 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 28 Oct 2020 18:55:27 +0100 Subject: [PATCH 066/323] lib/test_lockup: Minimum fix to get it compiled on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On PREEMPT_RT the locks are quite different so they can't be tested as it is done below. The alternative is test for the waitlock within @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 16 insertions(+) diff --git a/lib/test_lockup.c b/lib/test_lockup.c -index 78a630bbd03d..d27a80502204 100644 +index 78a630bbd03df..d27a80502204b 100644 --- a/lib/test_lockup.c +++ b/lib/test_lockup.c @@ -485,6 +485,21 @@ static int __init test_lockup_init(void) @@ -61,5 +61,5 @@ index 78a630bbd03d..d27a80502204 100644 if ((wait_state != TASK_RUNNING || -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch b/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch index 01c62e677..bcdfda2d5 100644 --- a/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch +++ b/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch @@ -1,9 +1,9 @@ -From a7d720657001cb31fc09699861f12726418a4bf8 Mon Sep 17 00:00:00 2001 +From af116ecf443ae48632323179dbb878c0aa24f656 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 2 Nov 2020 14:14:24 +0100 Subject: [PATCH 067/323] timers: Don't block on ->expiry_lock for TIMER_IRQSAFE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT does not spin and wait until a running timer completes its callback but instead it blocks on a sleeping lock to prevent a deadlock. @@ -29,10 +29,10 @@ Cc: stable-rt@vger.kernel.org 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index e87e638c31bd..a4fdc7cfb723 100644 +index c135cefa44ac0..68246a8c31bc2 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1287,7 +1287,7 @@ static void del_timer_wait_running(struct timer_list *timer) +@@ -1316,7 +1316,7 @@ static void del_timer_wait_running(struct timer_list *timer) u32 tf; tf = READ_ONCE(timer->flags); @@ -41,7 +41,7 @@ index e87e638c31bd..a4fdc7cfb723 100644 struct timer_base *base = get_timer_base(tf); /* -@@ -1371,6 +1371,13 @@ int del_timer_sync(struct timer_list *timer) +@@ -1402,6 +1402,13 @@ int timer_delete_sync(struct timer_list *timer) */ WARN_ON(in_irq() && !(timer->flags & TIMER_IRQSAFE)); @@ -56,5 +56,5 @@ index e87e638c31bd..a4fdc7cfb723 100644 ret = try_to_del_timer_sync(timer); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch b/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch index ee2883f8e..1defd136e 100644 --- a/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch +++ b/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch @@ -1,9 +1,9 @@ -From b0fd4a90cb328b61c6fe14df3a7fc4a79745fd2f Mon Sep 17 00:00:00 2001 +From 6e0c55ee6312997c4a21e3605b678aba3ab705bb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 9 Nov 2020 21:30:41 +0100 Subject: [PATCH 068/323] kthread: Move prio/affinite change into the newly created thread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With enabled threaded interrupts the nouveau driver reported the following: @@ -34,7 +34,7 @@ Link: https://lkml.kernel.org/r/a23a826af7c108ea5651e73b8fbae5e653f16e86.camel@g 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/kthread.c b/kernel/kthread.c -index 508fe5278285..3ce6a31db7b4 100644 +index 508fe52782857..3ce6a31db7b4b 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -264,6 +264,7 @@ EXPORT_SYMBOL_GPL(kthread_parkme); @@ -82,5 +82,5 @@ index 508fe5278285..3ce6a31db7b4 100644 kfree(create); return task; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch b/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch index f09b701ab..4d954f0be 100644 --- a/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch +++ b/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch @@ -1,9 +1,9 @@ -From 617294b2f33cec584f48c12d914fcc982f317be5 Mon Sep 17 00:00:00 2001 +From 5558737650676f84517f9e74d08d9d3d2eff18e9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 9 Nov 2020 23:32:39 +0100 Subject: [PATCH 069/323] genirq: Move prio assignment into the newly created thread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With enabled threaded interrupts the nouveau driver reported the following: @@ -37,7 +37,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index 0159925054fa..5ec167fb77b9 100644 +index 0159925054faa..5ec167fb77b91 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -1201,6 +1201,8 @@ static int irq_thread(void *data) @@ -59,5 +59,5 @@ index 0159925054fa..5ec167fb77b9 100644 * We keep the reference to the task struct even if * the thread dies to avoid that the interrupt code -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch b/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch index 74ee5109b..dd84563bb 100644 --- a/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch +++ b/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch @@ -1,8 +1,8 @@ -From f603fbc6eaf37d836e3498b47cef43965730bcda Mon Sep 17 00:00:00 2001 +From 32461195bc594e55e965d4a2cfe6cfa47789b4cf Mon Sep 17 00:00:00 2001 From: Valentin Schneider <valentin.schneider@arm.com> Date: Sun, 22 Nov 2020 20:19:04 +0000 Subject: [PATCH 070/323] notifier: Make atomic_notifiers use raw_spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Booting a recent PREEMPT_RT kernel (v5.10-rc3-rt7-rebase) on my arm64 Juno leads to the idle task blocking on an RT sleeping spinlock down some @@ -57,7 +57,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/linux/notifier.h b/include/linux/notifier.h -index 2fb373a5c1ed..723bc2df6388 100644 +index 2fb373a5c1ede..723bc2df63882 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h @@ -58,7 +58,7 @@ struct notifier_block { @@ -88,7 +88,7 @@ index 2fb373a5c1ed..723bc2df6388 100644 #define BLOCKING_NOTIFIER_INIT(name) { \ .rwsem = __RWSEM_INITIALIZER((name).rwsem), \ diff --git a/kernel/notifier.c b/kernel/notifier.c -index 1b019cbca594..c20782f07643 100644 +index 1b019cbca594a..c20782f076432 100644 --- a/kernel/notifier.c +++ b/kernel/notifier.c @@ -142,9 +142,9 @@ int atomic_notifier_chain_register(struct atomic_notifier_head *nh, @@ -128,5 +128,5 @@ index 1b019cbca594..c20782f07643 100644 return ret; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch b/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch index c6be2d81c..c941190cd 100644 --- a/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch +++ b/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From b9c110646f281f521cc06039710f979b363478b9 Mon Sep 17 00:00:00 2001 +From 8d47e3c87b296c500277a63f5c9f116f98546822 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 15 Dec 2020 15:16:45 +0100 Subject: [PATCH 071/323] rcu: Make RCU_BOOST default on CONFIG_PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On PREEMPT_RT kernels, RCU callbacks are deferred to the `rcuc' kthread. This can stall RCU grace periods due to lengthy preemption not only of RCU @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig -index cd6e11403f1b..0c71197857f6 100644 +index cd6e11403f1b1..0c71197857f68 100644 --- a/kernel/rcu/Kconfig +++ b/kernel/rcu/Kconfig @@ -189,8 +189,8 @@ config RCU_FAST_NO_HZ @@ -37,5 +37,5 @@ index cd6e11403f1b..0c71197857f6 100644 This option boosts the priority of preempted RCU readers that block the current preemptible RCU grace period for too long. -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch b/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch index 2c85d9dd0..5130eaa8e 100644 --- a/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch +++ b/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From 8cc685c333f0deef6d724211a7f0ff37648d24c7 Mon Sep 17 00:00:00 2001 +From a1fecefde7a9b478af909cc31e07521c4dd721a9 Mon Sep 17 00:00:00 2001 From: Scott Wood <swood@redhat.com> Date: Tue, 15 Dec 2020 15:16:46 +0100 Subject: [PATCH 072/323] rcu: Unconditionally use rcuc threads on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT systems have long used the rcutree.use_softirq kernel boot parameter to avoid use of RCU_SOFTIRQ handlers, which can disrupt @@ -31,10 +31,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index f1f7c068cf65..c2afb3304825 100644 +index 8e4882bb8cf85..2af46bc4c8e2a 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4191,6 +4191,10 @@ +@@ -4212,6 +4212,10 @@ value, meaning that RCU_SOFTIRQ is used by default. Specify rcutree.use_softirq=0 to use rcuc kthreads. @@ -46,7 +46,7 @@ index f1f7c068cf65..c2afb3304825 100644 Disable autobalancing of the rcu_node combining tree. This is used by rcutorture, and might diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c -index 06bfe61d3cd3..39b3b56ad92d 100644 +index 06bfe61d3cd38..39b3b56ad92dd 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -101,8 +101,10 @@ static struct rcu_state rcu_state = { @@ -62,5 +62,5 @@ index 06bfe61d3cd3..39b3b56ad92d 100644 static bool rcu_fanout_exact; module_param(rcu_fanout_exact, bool, 0444); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch b/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch index ec9afba35..107a4e589 100644 --- a/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch +++ b/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch @@ -1,9 +1,9 @@ -From be1e6f72a91c1c6b65594bba32401b029c7699b8 Mon Sep 17 00:00:00 2001 +From 621ec5f2aa6e10ac89c4c569ecb3918ea918d5ed Mon Sep 17 00:00:00 2001 From: Julia Cartwright <julia@ni.com> Date: Tue, 15 Dec 2020 15:16:47 +0100 Subject: [PATCH 073/323] rcu: Enable rcu_normal_after_boot unconditionally for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Expedited RCU grace periods send IPIs to all non-idle CPUs, and thus can disrupt time-critical code in real-time applications. However, there @@ -34,10 +34,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index c2afb3304825..23fd09f5351d 100644 +index 2af46bc4c8e2a..0a6d76815ed29 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4573,6 +4573,13 @@ +@@ -4594,6 +4594,13 @@ only normal grace-period primitives. No effect on CONFIG_TINY_RCU kernels. @@ -52,7 +52,7 @@ index c2afb3304825..23fd09f5351d 100644 Set time in jiffies during which RCU tasks will avoid sending IPIs, starting with the beginning diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c -index 849f0aa99333..dd94a602a6d2 100644 +index 849f0aa99333b..dd94a602a6d25 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c @@ -56,8 +56,10 @@ @@ -68,5 +68,5 @@ index 849f0aa99333..dd94a602a6d2 100644 #ifdef CONFIG_DEBUG_LOCK_ALLOC -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch b/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch index 81d863443..560679407 100644 --- a/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch +++ b/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch @@ -1,9 +1,9 @@ -From 98e9f8e6202660f2965bc68d54447861280e81b9 Mon Sep 17 00:00:00 2001 +From 68384a4ccf89614ab955a578ac06c3bcd87bf2fa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 15 Dec 2020 15:16:48 +0100 Subject: [PATCH 074/323] doc: Update RCU's requirements page about the PREEMPT_RT wiki. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The PREEMPT_RT wiki moved from kernel.org to the Linux Foundation wiki. The kernel.org wiki is read only. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst b/Documentation/RCU/Design/Requirements/Requirements.rst -index 1ae79a10a8de..0f7e0237ea14 100644 +index 1ae79a10a8de6..0f7e0237ea14f 100644 --- a/Documentation/RCU/Design/Requirements/Requirements.rst +++ b/Documentation/RCU/Design/Requirements/Requirements.rst @@ -2289,7 +2289,7 @@ decides to throw at it. @@ -31,5 +31,5 @@ index 1ae79a10a8de..0f7e0237ea14 100644 approach of disabling preemption across RCU read-side critical sections is inappropriate. Kernels built with ``CONFIG_PREEMPT=y`` therefore use -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch b/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch index 3ddcf14fa..5f8efab84 100644 --- a/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch +++ b/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch @@ -1,8 +1,8 @@ -From d9780d88d268b12562427ef709de6ab2b8c85188 Mon Sep 17 00:00:00 2001 +From 30c918c7605e000af86edbc9da15cb28ef2dbf9e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 15 Dec 2020 15:16:49 +0100 Subject: [PATCH 075/323] doc: Use CONFIG_PREEMPTION -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz CONFIG_PREEMPTION is selected by CONFIG_PREEMPT and by CONFIG_PREEMPT_RT. Both PREEMPT and PREEMPT_RT require the same functionality which today @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst b/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst -index 72f0f6fbd53c..6f89cf1e567d 100644 +index 72f0f6fbd53c0..6f89cf1e567d0 100644 --- a/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst +++ b/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst @@ -38,7 +38,7 @@ sections. @@ -46,7 +46,7 @@ index 72f0f6fbd53c..6f89cf1e567d 100644 shown in the following diagram: diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst b/Documentation/RCU/Design/Requirements/Requirements.rst -index 0f7e0237ea14..17d38480ef5c 100644 +index 0f7e0237ea14f..17d38480ef5c5 100644 --- a/Documentation/RCU/Design/Requirements/Requirements.rst +++ b/Documentation/RCU/Design/Requirements/Requirements.rst @@ -78,7 +78,7 @@ RCU treats a nested set as one big RCU read-side critical section. @@ -141,7 +141,7 @@ index 0f7e0237ea14..17d38480ef5c 100644 for voluntary context switches. diff --git a/Documentation/RCU/checklist.rst b/Documentation/RCU/checklist.rst -index 2efed9926c3f..7ed4956043bd 100644 +index 2efed9926c3f9..7ed4956043bd9 100644 --- a/Documentation/RCU/checklist.rst +++ b/Documentation/RCU/checklist.rst @@ -214,7 +214,7 @@ over a rather long period of time, but improvements are always welcome! @@ -154,7 +154,7 @@ index 2efed9926c3f..7ed4956043bd 100644 then the corresponding readers my use rcu_read_lock() and rcu_read_unlock(), rcu_read_lock_bh() and rcu_read_unlock_bh(), diff --git a/Documentation/RCU/rcubarrier.rst b/Documentation/RCU/rcubarrier.rst -index f64f4413a47c..3b4a24877496 100644 +index f64f4413a47c4..3b4a248774961 100644 --- a/Documentation/RCU/rcubarrier.rst +++ b/Documentation/RCU/rcubarrier.rst @@ -9,7 +9,7 @@ RCU (read-copy update) is a synchronization mechanism that can be thought @@ -180,7 +180,7 @@ index f64f4413a47c..3b4a24877496 100644 Therefore, on_each_cpu() disables preemption across its call to smp_call_function() and also across the local call to diff --git a/Documentation/RCU/stallwarn.rst b/Documentation/RCU/stallwarn.rst -index c9ab6af4d3be..e97d1b4876ef 100644 +index c9ab6af4d3be9..e97d1b4876ef4 100644 --- a/Documentation/RCU/stallwarn.rst +++ b/Documentation/RCU/stallwarn.rst @@ -25,7 +25,7 @@ warnings: @@ -202,7 +202,7 @@ index c9ab6af4d3be..e97d1b4876ef 100644 read-side critical section. This is especially damaging if that low-priority task is not permitted to run on any other CPU, diff --git a/Documentation/RCU/whatisRCU.rst b/Documentation/RCU/whatisRCU.rst -index fb3ff76c3e73..3b2b1479fd0f 100644 +index fb3ff76c3e737..3b2b1479fd0f7 100644 --- a/Documentation/RCU/whatisRCU.rst +++ b/Documentation/RCU/whatisRCU.rst @@ -684,7 +684,7 @@ Quick Quiz #1: @@ -246,5 +246,5 @@ index fb3ff76c3e73..3b2b1479fd0f 100644 read-side critical sections. It also permits spinlocks blocking while in RCU read-side critical -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch b/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch index 8cd083750..8b89a55ed 100644 --- a/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch +++ b/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch @@ -1,11 +1,11 @@ -From 1ab76ef52a7db4158a5d86604c2a318cfe847e9d Mon Sep 17 00:00:00 2001 +From a740baf29593f6257f2b1790a1f659514167e2da Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 3 Feb 2021 11:05:23 -0500 Subject: [PATCH 076/323] tracing: Merge irqflags + preempt counter. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The state of the interrupts (irqflags) and the preemption counter are both passed down to tracing_generic_entry_update(). Only one bit of @@ -79,7 +79,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 17 files changed, 286 insertions(+), 307 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index f7ed0471d5a8..2a98c40526a0 100644 +index f7ed0471d5a85..2a98c40526a0a 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -152,17 +152,29 @@ enum print_line_t { @@ -128,7 +128,7 @@ index f7ed0471d5a8..2a98c40526a0 100644 }; diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c -index ab912cc60760..a95a2027eefd 100644 +index ab912cc60760a..a95a2027eefda 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c @@ -72,17 +72,17 @@ static void trace_note(struct blk_trace *bt, pid_t pid, int action, @@ -195,10 +195,10 @@ index ab912cc60760..a95a2027eefd 100644 } } diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 4e0411b19ef9..376eb8a1c913 100644 +index 22e1e57118698..348cbbb9a39b5 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -176,7 +176,7 @@ static union trace_eval_map_item *trace_eval_maps; +@@ -177,7 +177,7 @@ static union trace_eval_map_item *trace_eval_maps; int tracing_set_tracer(struct trace_array *tr, const char *buf); static void ftrace_trace_userstack(struct trace_array *tr, struct trace_buffer *buffer, @@ -207,7 +207,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 #define MAX_TRACER_SIZE 100 static char bootup_tracer_buf[MAX_TRACER_SIZE] __initdata; -@@ -909,23 +909,23 @@ static inline void trace_access_lock_init(void) +@@ -910,23 +910,23 @@ static inline void trace_access_lock_init(void) #ifdef CONFIG_STACKTRACE static void __ftrace_trace_stack(struct trace_buffer *buffer, @@ -239,7 +239,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 { } -@@ -933,24 +933,24 @@ static inline void ftrace_trace_stack(struct trace_array *tr, +@@ -934,24 +934,24 @@ static inline void ftrace_trace_stack(struct trace_array *tr, static __always_inline void trace_event_setup(struct ring_buffer_event *event, @@ -268,7 +268,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 return event; } -@@ -1011,25 +1011,22 @@ int __trace_puts(unsigned long ip, const char *str, int size) +@@ -1012,25 +1012,22 @@ int __trace_puts(unsigned long ip, const char *str, int size) struct ring_buffer_event *event; struct trace_buffer *buffer; struct print_entry *entry; @@ -298,7 +298,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) { size = 0; goto out; -@@ -1048,7 +1045,7 @@ int __trace_puts(unsigned long ip, const char *str, int size) +@@ -1049,7 +1046,7 @@ int __trace_puts(unsigned long ip, const char *str, int size) entry->buf[size] = '\0'; __buffer_unlock_commit(buffer, event); @@ -307,7 +307,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 out: ring_buffer_nest_end(buffer); return size; -@@ -1065,25 +1062,22 @@ int __trace_bputs(unsigned long ip, const char *str) +@@ -1066,25 +1063,22 @@ int __trace_bputs(unsigned long ip, const char *str) struct ring_buffer_event *event; struct trace_buffer *buffer; struct bputs_entry *entry; @@ -336,7 +336,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) goto out; -@@ -1092,7 +1086,7 @@ int __trace_bputs(unsigned long ip, const char *str) +@@ -1093,7 +1087,7 @@ int __trace_bputs(unsigned long ip, const char *str) entry->str = str; __buffer_unlock_commit(buffer, event); @@ -345,7 +345,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 ret = 1; out: -@@ -2581,36 +2575,69 @@ enum print_line_t trace_handle_return(struct trace_seq *s) +@@ -2609,36 +2603,69 @@ enum print_line_t trace_handle_return(struct trace_seq *s) } EXPORT_SYMBOL_GPL(trace_handle_return); @@ -433,7 +433,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } DEFINE_PER_CPU(struct ring_buffer_event *, trace_buffered_event); -@@ -2729,7 +2756,7 @@ struct ring_buffer_event * +@@ -2757,7 +2784,7 @@ struct ring_buffer_event * trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, struct trace_event_file *trace_file, int type, unsigned long len, @@ -442,7 +442,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 { struct ring_buffer_event *entry; int val; -@@ -2742,7 +2769,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, +@@ -2770,7 +2797,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, /* Try to use the per cpu buffer first */ val = this_cpu_inc_return(trace_buffered_event_cnt); if ((len < (PAGE_SIZE - sizeof(*entry) - sizeof(entry->array[0]))) && val == 1) { @@ -451,7 +451,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 entry->array[0] = len; return entry; } -@@ -2750,7 +2777,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, +@@ -2778,7 +2805,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, } entry = __trace_buffer_lock_reserve(*current_rb, @@ -460,7 +460,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 /* * If tracing is off, but we have triggers enabled * we still need to look at the event data. Use the temp_buffer -@@ -2759,8 +2786,8 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, +@@ -2787,8 +2814,8 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, */ if (!entry && trace_file->flags & EVENT_FILE_FL_TRIGGER_COND) { *current_rb = temp_buffer; @@ -471,7 +471,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } return entry; } -@@ -2846,7 +2873,7 @@ void trace_event_buffer_commit(struct trace_event_buffer *fbuffer) +@@ -2874,7 +2901,7 @@ void trace_event_buffer_commit(struct trace_event_buffer *fbuffer) ftrace_exports(fbuffer->event, TRACE_EXPORT_EVENT); event_trigger_unlock_commit_regs(fbuffer->trace_file, fbuffer->buffer, fbuffer->event, fbuffer->entry, @@ -480,7 +480,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } EXPORT_SYMBOL_GPL(trace_event_buffer_commit); -@@ -2862,7 +2889,7 @@ EXPORT_SYMBOL_GPL(trace_event_buffer_commit); +@@ -2890,7 +2917,7 @@ EXPORT_SYMBOL_GPL(trace_event_buffer_commit); void trace_buffer_unlock_commit_regs(struct trace_array *tr, struct trace_buffer *buffer, struct ring_buffer_event *event, @@ -489,7 +489,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 struct pt_regs *regs) { __buffer_unlock_commit(buffer, event); -@@ -2873,8 +2900,8 @@ void trace_buffer_unlock_commit_regs(struct trace_array *tr, +@@ -2901,8 +2928,8 @@ void trace_buffer_unlock_commit_regs(struct trace_array *tr, * and mmiotrace, but that's ok if they lose a function or * two. They are not that meaningful. */ @@ -500,7 +500,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } /* -@@ -2888,9 +2915,8 @@ trace_buffer_unlock_commit_nostack(struct trace_buffer *buffer, +@@ -2916,9 +2943,8 @@ trace_buffer_unlock_commit_nostack(struct trace_buffer *buffer, } void @@ -512,7 +512,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 { struct trace_event_call *call = &event_function; struct trace_buffer *buffer = tr->array_buffer.buffer; -@@ -2898,7 +2924,7 @@ trace_function(struct trace_array *tr, +@@ -2926,7 +2952,7 @@ trace_function(struct trace_array *tr, struct ftrace_entry *entry; event = __trace_buffer_lock_reserve(buffer, TRACE_FN, sizeof(*entry), @@ -521,7 +521,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) return; entry = ring_buffer_event_data(event); -@@ -2932,8 +2958,8 @@ static DEFINE_PER_CPU(struct ftrace_stacks, ftrace_stacks); +@@ -2960,8 +2986,8 @@ static DEFINE_PER_CPU(struct ftrace_stacks, ftrace_stacks); static DEFINE_PER_CPU(int, ftrace_stack_reserve); static void __ftrace_trace_stack(struct trace_buffer *buffer, @@ -532,7 +532,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 { struct trace_event_call *call = &event_kernel_stack; struct ring_buffer_event *event; -@@ -2981,7 +3007,7 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, +@@ -3009,7 +3035,7 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, size = nr_entries * sizeof(unsigned long); event = __trace_buffer_lock_reserve(buffer, TRACE_STACK, (sizeof(*entry) - sizeof(entry->caller)) + size, @@ -541,7 +541,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) goto out; entry = ring_buffer_event_data(event); -@@ -3002,22 +3028,22 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, +@@ -3030,22 +3056,22 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, static inline void ftrace_trace_stack(struct trace_array *tr, struct trace_buffer *buffer, @@ -570,7 +570,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 return; } -@@ -3031,7 +3057,7 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, +@@ -3059,7 +3085,7 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, return; rcu_irq_enter_irqson(); @@ -579,7 +579,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 rcu_irq_exit_irqson(); } -@@ -3041,19 +3067,15 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, +@@ -3069,19 +3095,15 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, */ void trace_dump_stack(int skip) { @@ -600,7 +600,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } EXPORT_SYMBOL_GPL(trace_dump_stack); -@@ -3062,7 +3084,7 @@ static DEFINE_PER_CPU(int, user_stack_count); +@@ -3090,7 +3112,7 @@ static DEFINE_PER_CPU(int, user_stack_count); static void ftrace_trace_userstack(struct trace_array *tr, @@ -609,7 +609,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 { struct trace_event_call *call = &event_user_stack; struct ring_buffer_event *event; -@@ -3089,7 +3111,7 @@ ftrace_trace_userstack(struct trace_array *tr, +@@ -3117,7 +3139,7 @@ ftrace_trace_userstack(struct trace_array *tr, __this_cpu_inc(user_stack_count); event = __trace_buffer_lock_reserve(buffer, TRACE_USER_STACK, @@ -618,7 +618,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) goto out_drop_count; entry = ring_buffer_event_data(event); -@@ -3109,7 +3131,7 @@ ftrace_trace_userstack(struct trace_array *tr, +@@ -3137,7 +3159,7 @@ ftrace_trace_userstack(struct trace_array *tr, #else /* CONFIG_USER_STACKTRACE_SUPPORT */ static void ftrace_trace_userstack(struct trace_array *tr, struct trace_buffer *buffer, @@ -627,7 +627,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 { } #endif /* !CONFIG_USER_STACKTRACE_SUPPORT */ -@@ -3239,9 +3261,9 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3267,9 +3289,9 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) struct trace_buffer *buffer; struct trace_array *tr = &global_trace; struct bprint_entry *entry; @@ -639,7 +639,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (unlikely(tracing_selftest_running || tracing_disabled)) return 0; -@@ -3249,7 +3271,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3277,7 +3299,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) /* Don't pollute graph traces with trace_vprintk internals */ pause_graph_tracing(); @@ -648,7 +648,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 preempt_disable_notrace(); tbuffer = get_trace_buf(); -@@ -3263,12 +3285,11 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3291,12 +3313,11 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0) goto out_put; @@ -662,7 +662,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) goto out; entry = ring_buffer_event_data(event); -@@ -3278,7 +3299,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3306,7 +3327,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) memcpy(entry->buf, tbuffer, sizeof(u32) * len); if (!call_filter_check_discard(call, entry, buffer, event)) { __buffer_unlock_commit(buffer, event); @@ -671,7 +671,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } out: -@@ -3301,9 +3322,9 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3329,9 +3350,9 @@ __trace_array_vprintk(struct trace_buffer *buffer, { struct trace_event_call *call = &event_print; struct ring_buffer_event *event; @@ -683,7 +683,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 char *tbuffer; if (tracing_disabled || tracing_selftest_running) -@@ -3312,7 +3333,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3340,7 +3361,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, /* Don't pollute graph traces with trace_vprintk internals */ pause_graph_tracing(); @@ -692,7 +692,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 preempt_disable_notrace(); -@@ -3324,11 +3345,10 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3352,11 +3373,10 @@ __trace_array_vprintk(struct trace_buffer *buffer, len = vscnprintf(tbuffer, TRACE_BUF_SIZE, fmt, args); @@ -705,7 +705,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (!event) goto out; entry = ring_buffer_event_data(event); -@@ -3337,7 +3357,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3365,7 +3385,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, memcpy(&entry->buf, tbuffer, len + 1); if (!call_filter_check_discard(call, entry, buffer, event)) { __buffer_unlock_commit(buffer, event); @@ -714,7 +714,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 } out: -@@ -6831,7 +6851,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, +@@ -6851,7 +6871,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, enum event_trigger_type tt = ETT_NONE; struct trace_buffer *buffer; struct print_entry *entry; @@ -722,7 +722,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 ssize_t written; int size; int len; -@@ -6851,7 +6870,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, +@@ -6871,7 +6890,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, BUILD_BUG_ON(TRACE_BUF_SIZE >= PAGE_SIZE); @@ -730,7 +730,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 size = sizeof(*entry) + cnt + 2; /* add '\0' and possible '\n' */ /* If less than "<faulted>", then make sure we can still add that */ -@@ -6860,7 +6878,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, +@@ -6880,7 +6898,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, buffer = tr->array_buffer.buffer; event = __trace_buffer_lock_reserve(buffer, TRACE_PRINT, size, @@ -739,7 +739,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 if (unlikely(!event)) /* Ring buffer disabled, return as if not open for write */ return -EBADF; -@@ -6912,7 +6930,6 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, +@@ -6932,7 +6950,6 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, struct ring_buffer_event *event; struct trace_buffer *buffer; struct raw_data_entry *entry; @@ -747,7 +747,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 ssize_t written; int size; int len; -@@ -6934,14 +6951,13 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, +@@ -6954,14 +6971,13 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, BUILD_BUG_ON(TRACE_BUF_SIZE >= PAGE_SIZE); @@ -764,7 +764,7 @@ index 4e0411b19ef9..376eb8a1c913 100644 /* Ring buffer disabled, return as if not open for write */ return -EBADF; diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h -index 7c90872f2435..27ed42bccd7f 100644 +index 7c90872f2435d..27ed42bccd7f7 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -750,8 +750,7 @@ struct ring_buffer_event * @@ -891,7 +891,7 @@ index 7c90872f2435..27ed42bccd7f 100644 if (tt) event_triggers_post_call(file, tt); diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c -index eff099123aa2..e47fdb4c92fb 100644 +index eff099123aa27..e47fdb4c92fbc 100644 --- a/kernel/trace/trace_branch.c +++ b/kernel/trace/trace_branch.c @@ -37,7 +37,7 @@ probe_likely_condition(struct ftrace_likely_data *f, int val, int expect) @@ -917,7 +917,7 @@ index eff099123aa2..e47fdb4c92fb 100644 goto out; diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c -index 643e0b19920d..0443dd61667b 100644 +index 643e0b19920d2..0443dd61667b9 100644 --- a/kernel/trace/trace_event_perf.c +++ b/kernel/trace/trace_event_perf.c @@ -421,11 +421,8 @@ NOKPROBE_SYMBOL(perf_trace_buf_alloc); @@ -934,7 +934,7 @@ index 643e0b19920d..0443dd61667b 100644 NOKPROBE_SYMBOL(perf_trace_buf_update); diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c -index 4b5a8d7275be..df64b92c5edc 100644 +index 4b5a8d7275be7..df64b92c5edc3 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -259,22 +259,19 @@ void *trace_event_buffer_reserve(struct trace_event_buffer *fbuffer, @@ -1000,7 +1000,7 @@ index 4b5a8d7275be..df64b92c5edc 100644 atomic_dec(&per_cpu(ftrace_test_event_disable, cpu)); preempt_enable_notrace(); diff --git a/kernel/trace/trace_events_inject.c b/kernel/trace/trace_events_inject.c -index 149c7dc6a447..b1fce64e126c 100644 +index 149c7dc6a4473..b1fce64e126c0 100644 --- a/kernel/trace/trace_events_inject.c +++ b/kernel/trace/trace_events_inject.c @@ -192,7 +192,6 @@ static void *trace_alloc_entry(struct trace_event_call *call, int *size) @@ -1024,7 +1024,7 @@ index 149c7dc6a447..b1fce64e126c 100644 while ((len = parse_field(str, call, &field, &val)) > 0) { if (is_function_field(field)) diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c -index 93e20ed642e5..8606cb73341e 100644 +index 93e20ed642e53..8606cb73341ed 100644 --- a/kernel/trace/trace_functions.c +++ b/kernel/trace/trace_functions.c @@ -133,15 +133,14 @@ function_trace_call(unsigned long ip, unsigned long parent_ip, @@ -1099,7 +1099,7 @@ index 93e20ed642e5..8606cb73341e 100644 static void diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c -index 60d66278aa0d..b086ba8bb3d6 100644 +index 60d66278aa0d8..b086ba8bb3d65 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c @@ -96,8 +96,7 @@ print_graph_duration(struct trace_array *tr, unsigned long long duration, @@ -1213,7 +1213,7 @@ index 60d66278aa0d..b086ba8bb3d6 100644 atomic_dec(&data->disabled); local_irq_restore(flags); diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c -index d071fc271eef..4c01c5d8b9a7 100644 +index d071fc271eef7..4c01c5d8b9a7a 100644 --- a/kernel/trace/trace_hwlat.c +++ b/kernel/trace/trace_hwlat.c @@ -108,14 +108,9 @@ static void trace_hwlat_sample(struct hwlat_sample *sample) @@ -1233,7 +1233,7 @@ index d071fc271eef..4c01c5d8b9a7 100644 return; entry = ring_buffer_event_data(event); diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c -index 619a60944bb6..4a11967c8daa 100644 +index 619a60944bb6d..4a11967c8daa1 100644 --- a/kernel/trace/trace_irqsoff.c +++ b/kernel/trace/trace_irqsoff.c @@ -143,11 +143,14 @@ irqsoff_tracer_call(unsigned long ip, unsigned long parent_ip, @@ -1467,7 +1467,7 @@ index 619a60944bb6..4a11967c8daa 100644 static int preemptoff_tracer_init(struct trace_array *tr) diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c -index 718357289899..a2478605e761 100644 +index 7183572898998..a2478605e7617 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c @@ -1394,8 +1394,7 @@ __kprobe_trace_func(struct trace_kprobe *tk, struct pt_regs *regs, @@ -1509,7 +1509,7 @@ index 718357289899..a2478605e761 100644 return; diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c -index 84582bf1ed5f..7221ae0b4c47 100644 +index 84582bf1ed5fb..7221ae0b4c477 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c @@ -300,10 +300,11 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, @@ -1559,7 +1559,7 @@ index 84582bf1ed5f..7221ae0b4c47 100644 void mmio_trace_mapping(struct mmiotrace_map *map) diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c -index 037e1e863b17..c1f582e0e97f 100644 +index 037e1e863b17f..c1f582e0e97f0 100644 --- a/kernel/trace/trace_sched_wakeup.c +++ b/kernel/trace/trace_sched_wakeup.c @@ -67,7 +67,7 @@ static bool function_enabled; @@ -1800,7 +1800,7 @@ index 037e1e863b17..c1f582e0e97f 100644 out_locked: arch_spin_unlock(&wakeup_lock); diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c -index d85a2f0f316b..8bfcd3b09422 100644 +index d85a2f0f316b3..8bfcd3b094226 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c @@ -298,9 +298,8 @@ static void ftrace_syscall_enter(void *data, struct pt_regs *regs, long id) @@ -1874,7 +1874,7 @@ index d85a2f0f316b..8bfcd3b09422 100644 static int reg_event_syscall_enter(struct trace_event_file *file, diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c -index 60ff36f5d7f9..0b07bb07127d 100644 +index 60ff36f5d7f9e..0b07bb07127d8 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -966,7 +966,7 @@ static void __uprobe_trace_func(struct trace_uprobe *tu, @@ -1896,5 +1896,5 @@ index 60ff36f5d7f9..0b07bb07127d 100644 /* uprobe handler */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch b/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch index 38993b6b8..6a797c5f2 100644 --- a/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch +++ b/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch @@ -1,8 +1,8 @@ -From 49d76ea7e195eb08b5c73a3a11dba066afd40070 Mon Sep 17 00:00:00 2001 +From c0c9a28c1277a9d402f7b527018fe98ac589dd4b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 3 Feb 2021 11:05:24 -0500 Subject: [PATCH 077/323] tracing: Inline tracing_gen_ctx_flags() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Inline tracing_gen_ctx_flags(). This allows to have one ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT. @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 53 insertions(+), 58 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index 2a98c40526a0..c4b0524582d8 100644 +index 2a98c40526a0a..c4b0524582d87 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -164,9 +164,57 @@ static inline void tracing_generic_entry_update(struct trace_entry *entry, @@ -89,10 +89,10 @@ index 2a98c40526a0..c4b0524582d8 100644 struct trace_event_file; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 376eb8a1c913..733ef9230c73 100644 +index 348cbbb9a39b5..4145776513273 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2575,20 +2575,13 @@ enum print_line_t trace_handle_return(struct trace_seq *s) +@@ -2603,20 +2603,13 @@ enum print_line_t trace_handle_return(struct trace_seq *s) } EXPORT_SYMBOL_GPL(trace_handle_return); @@ -115,7 +115,7 @@ index 376eb8a1c913..733ef9230c73 100644 if (pc & NMI_MASK) trace_flags |= TRACE_FLAG_NMI; if (pc & HARDIRQ_MASK) -@@ -2604,33 +2597,6 @@ unsigned int tracing_gen_ctx_flags(unsigned long irqflags) +@@ -2632,33 +2625,6 @@ unsigned int tracing_gen_ctx_flags(unsigned long irqflags) return (trace_flags << 16) | (pc & 0xff); } @@ -150,7 +150,7 @@ index 376eb8a1c913..733ef9230c73 100644 trace_buffer_lock_reserve(struct trace_buffer *buffer, int type, diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h -index 27ed42bccd7f..40e5ee987578 100644 +index 27ed42bccd7f7..40e5ee9875786 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -136,25 +136,6 @@ struct kretprobe_trace_entry_head { @@ -180,5 +180,5 @@ index 27ed42bccd7f..40e5ee987578 100644 struct trace_array; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch b/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch index 32411e1ff..2f78aa226 100644 --- a/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch +++ b/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch @@ -1,9 +1,9 @@ -From 1a49f21b61e919dbef7c948009870a1f1ba31270 Mon Sep 17 00:00:00 2001 +From f0bcb9dfe5ca2c9140a79df84aa35e5fd130abd0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 3 Feb 2021 11:05:25 -0500 Subject: [PATCH 078/323] tracing: Use in_serving_softirq() to deduct softirq status. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT does not report "serving softirq" because the tracing core looks at the preemption counter while PREEMPT_RT does not update it @@ -30,10 +30,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 733ef9230c73..70ab6b46ef8f 100644 +index 4145776513273..db3b3b2455894 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2586,8 +2586,7 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2614,8 +2614,7 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) trace_flags |= TRACE_FLAG_NMI; if (pc & HARDIRQ_MASK) trace_flags |= TRACE_FLAG_HARDIRQ; @@ -44,5 +44,5 @@ index 733ef9230c73..70ab6b46ef8f 100644 if (tif_need_resched()) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch b/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch index 5853f5af4..6bec397c5 100644 --- a/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch +++ b/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch @@ -1,9 +1,9 @@ -From 76993b5cd21ad0898e6d940ea5fe0449dec94465 Mon Sep 17 00:00:00 2001 +From e7051cf76ef2b2c5f8af1949e902463a8e4b1d12 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 3 Feb 2021 11:05:26 -0500 Subject: [PATCH 079/323] tracing: Remove NULL check from current in tracing_generic_entry_update(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz I can't imagine when or why `current' would return a NULL pointer. This check was added in commit @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index c4b0524582d8..2fea9fcd4d4e 100644 +index c4b0524582d87..2fea9fcd4d4e9 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -156,10 +156,8 @@ static inline void tracing_generic_entry_update(struct trace_entry *entry, @@ -39,5 +39,5 @@ index c4b0524582d8..2fea9fcd4d4e 100644 entry->flags = trace_ctx >> 16; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch b/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch index 3a67cf2f5..255800398 100644 --- a/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch +++ b/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch @@ -1,9 +1,9 @@ -From fe124333809d2e0a0926d5609f78bafffc62f539 Mon Sep 17 00:00:00 2001 +From c2702a48b0ebec18337aa5e56139902a8572ee43 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Wed, 9 Dec 2020 01:50:52 +0106 Subject: [PATCH 080/323] printk: inline log_output(),log_store() in vprintk_store() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In preparation for removing logbuf_lock, inline log_output() and log_store() into vprintk_store(). This will simplify dealing @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 67 insertions(+), 78 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 17a310dcb6d9..9a7c2b561e6d 100644 +index a8af93cbc2936..5af0b0e0259c4 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -493,52 +493,6 @@ static void truncate_msg(u16 *text_len, u16 *trunc_msg_len) @@ -76,7 +76,7 @@ index 17a310dcb6d9..9a7c2b561e6d 100644 int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT); static int syslog_action_restricted(int type) -@@ -1933,44 +1887,28 @@ static inline u32 printk_caller_id(void) +@@ -1939,44 +1893,28 @@ static inline u32 printk_caller_id(void) 0x80000000 + raw_smp_processor_id(); } @@ -136,7 +136,7 @@ index 17a310dcb6d9..9a7c2b561e6d 100644 /* * The printf needs to come first; we need the syslog -@@ -2009,7 +1947,58 @@ int vprintk_store(int facility, int level, +@@ -2015,7 +1953,58 @@ int vprintk_store(int facility, int level, if (dev_info) lflags |= LOG_NEWLINE; @@ -197,5 +197,5 @@ index 17a310dcb6d9..9a7c2b561e6d 100644 asmlinkage int vprintk_emit(int facility, int level, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch b/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch index 15ea7d1b6..de10d5bf1 100644 --- a/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch +++ b/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch @@ -1,9 +1,9 @@ -From c2d6c379547a29aa25202641659917ecd9ae7712 Mon Sep 17 00:00:00 2001 +From 44d0ef377836a4bcab77b9ac890447665f723c7d Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Wed, 9 Dec 2020 01:50:53 +0106 Subject: [PATCH 081/323] printk: remove logbuf_lock writer-protection of ringbuffer -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since the ringbuffer is lockless, there is no need for it to be protected by @logbuf_lock. Remove @logbuf_lock writer-protection of @@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 98 insertions(+), 40 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 9a7c2b561e6d..b0a3f7827819 100644 +index 5af0b0e0259c4..14b4c3ea1a6b6 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1129,7 +1129,7 @@ void __init setup_log_buf(int early) @@ -55,7 +55,7 @@ index 9a7c2b561e6d..b0a3f7827819 100644 if (seq != prb_next_seq(&printk_rb_static)) { pr_err("dropped %llu messages\n", -@@ -1887,18 +1887,90 @@ static inline u32 printk_caller_id(void) +@@ -1893,18 +1893,90 @@ static inline u32 printk_caller_id(void) 0x80000000 + raw_smp_processor_id(); } @@ -149,7 +149,7 @@ index 9a7c2b561e6d..b0a3f7827819 100644 u16 text_len; u64 ts_nsec; -@@ -1911,35 +1983,21 @@ int vprintk_store(int facility, int level, +@@ -1917,35 +1989,21 @@ int vprintk_store(int facility, int level, ts_nsec = local_clock(); /* @@ -197,7 +197,7 @@ index 9a7c2b561e6d..b0a3f7827819 100644 if (level == LOGLEVEL_DEFAULT) level = default_message_loglevel; -@@ -1948,9 +2006,10 @@ int vprintk_store(int facility, int level, +@@ -1954,9 +2012,10 @@ int vprintk_store(int facility, int level, lflags |= LOG_NEWLINE; if (lflags & LOG_CONT) { @@ -210,7 +210,7 @@ index 9a7c2b561e6d..b0a3f7827819 100644 r.info->text_len += text_len; if (lflags & LOG_NEWLINE) { -@@ -1969,18 +2028,18 @@ int vprintk_store(int facility, int level, +@@ -1975,18 +2034,18 @@ int vprintk_store(int facility, int level, * prb_reserve_in_last() and prb_reserve() purposely invalidate the * structure when they fail. */ @@ -233,7 +233,7 @@ index 9a7c2b561e6d..b0a3f7827819 100644 if (trunc_msg_len) memcpy(&r.text_buf[text_len], trunc_msg, trunc_msg_len); r.info->text_len = text_len + trunc_msg_len; -@@ -2021,10 +2080,9 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2027,10 +2086,9 @@ asmlinkage int vprintk_emit(int facility, int level, boot_delay_msec(level); printk_delay(); @@ -247,5 +247,5 @@ index 9a7c2b561e6d..b0a3f7827819 100644 /* If called from the scheduler, we can not call up(). */ if (!in_sched) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch b/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch index 41d143e99..2f786f058 100644 --- a/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch +++ b/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch @@ -1,8 +1,8 @@ -From 6769883ba30e543644f62ababe6910c6774f1885 Mon Sep 17 00:00:00 2001 +From 931d998e15e62bb8152b147032f4328b4e4d7477 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Wed, 17 Feb 2021 16:15:31 +0100 Subject: [PATCH 082/323] printk: limit second loop of syslog_print_all -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The second loop of syslog_print_all() subtracts lengths that were added in the first loop. With commit b031a684bfd0 ("printk: remove @@ -23,7 +23,7 @@ Reviewed-by: Petr Mladek <pmladek@suse.com> 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index b0a3f7827819..044bb3791896 100644 +index 14b4c3ea1a6b6..92762417a2b2e 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1497,6 +1497,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) @@ -52,5 +52,5 @@ index b0a3f7827819..044bb3791896 100644 len -= get_record_print_text_size(&info, line_count, true, time); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch b/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch index 8b219b627..a39ce554a 100644 --- a/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch +++ b/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch @@ -1,8 +1,8 @@ -From dabfa71dd963396a46aee0066bb3eff206de08f7 Mon Sep 17 00:00:00 2001 +From 8478e9a21eb0fdc5f0fcac5b579cba92a6098b14 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 21 Dec 2020 11:19:39 +0106 Subject: [PATCH 083/323] printk: kmsg_dump: remove unused fields -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz struct kmsg_dumper still contains some fields that were used to iterate the old ringbuffer. They are no longer used. Remove them @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 3378bcbe585e..235c50982c2d 100644 +index 3378bcbe585ea..235c50982c2d7 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -36,6 +36,9 @@ enum kmsg_dump_reason { @@ -39,5 +39,5 @@ index 3378bcbe585e..235c50982c2d 100644 u64 next_seq; }; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch b/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch index dd1390103..9089ced31 100644 --- a/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch +++ b/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch @@ -1,8 +1,8 @@ -From b6e17f3557ef5e32212483ca92910ea28eb21eeb Mon Sep 17 00:00:00 2001 +From d7985b936918448708ec582eae418a02a840db84 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:41:56 +0106 Subject: [PATCH 084/323] printk: refactor kmsg_dump_get_buffer() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump_get_buffer() requires nearly the same logic as syslog_print_all(), but uses different variable names and @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 235c50982c2d..4095a34db0fa 100644 +index 235c50982c2d7..4095a34db0fa3 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -62,7 +62,7 @@ bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, @@ -35,10 +35,10 @@ index 235c50982c2d..4095a34db0fa 100644 void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 044bb3791896..ad7edcb693d4 100644 +index 92762417a2b2e..48a3311fabee5 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3429,7 +3429,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); +@@ -3458,7 +3458,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); * read. */ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, @@ -47,7 +47,7 @@ index 044bb3791896..ad7edcb693d4 100644 { struct printk_info info; unsigned int line_count; -@@ -3437,12 +3437,10 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3466,12 +3466,10 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, unsigned long flags; u64 seq; u64 next_seq; @@ -61,7 +61,7 @@ index 044bb3791896..ad7edcb693d4 100644 if (!dumper->active || !buf || !size) goto out; -@@ -3460,48 +3458,54 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3489,48 +3487,54 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, goto out; } @@ -141,5 +141,5 @@ index 044bb3791896..ad7edcb693d4 100644 } EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch b/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch index acc8de768..d5e48de91 100644 --- a/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch +++ b/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch @@ -1,9 +1,9 @@ -From 922cda1ee8d183c2e98429cdabf907a92df72465 Mon Sep 17 00:00:00 2001 +From 0a884704e29d8f9562056df6c22a6d60fe83f2a4 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Wed, 13 Jan 2021 11:29:53 +0106 Subject: [PATCH 085/323] printk: consolidate kmsg_dump_get_buffer/syslog_print_all code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The logic for finding records to fit into a buffer is the same for kmsg_dump_get_buffer() and syslog_print_all(). Introduce a helper @@ -15,7 +15,7 @@ Signed-off-by: John Ogness <john.ogness@linutronix.de> 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index ad7edcb693d4..1f710a2a40b6 100644 +index 48a3311fabee5..254d4cb73c7a9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1424,6 +1424,50 @@ static size_t get_record_print_text_size(struct printk_info *info, @@ -102,7 +102,7 @@ index ad7edcb693d4..1f710a2a40b6 100644 prb_rec_init_rd(&r, &info, text, LOG_LINE_MAX + PREFIX_MAX); -@@ -3432,7 +3460,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3461,7 +3489,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, char *buf, size_t size, size_t *len_out) { struct printk_info info; @@ -110,7 +110,7 @@ index ad7edcb693d4..1f710a2a40b6 100644 struct printk_record r; unsigned long flags; u64 seq; -@@ -3460,26 +3487,12 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3489,26 +3516,12 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, /* * Find first record that fits, including all following records, @@ -143,5 +143,5 @@ index ad7edcb693d4..1f710a2a40b6 100644 /* * Next kmsg_dump_get_buffer() invocation will dump block of -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch b/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch index 876f0920e..1b9a99ca8 100644 --- a/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch +++ b/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch @@ -1,9 +1,9 @@ -From 2b148f755fdd9d276d191e982d525f330cffad0b Mon Sep 17 00:00:00 2001 +From 430fa6578ba80657b2280bdff7ec0719c832cd85 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Thu, 10 Dec 2020 12:48:01 +0106 Subject: [PATCH 086/323] printk: introduce CONSOLE_LOG_MAX for improved multi-line support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Instead of using "LOG_LINE_MAX + PREFIX_MAX" for temporary buffer sizes, introduce CONSOLE_LOG_MAX. This represents the maximum size @@ -22,7 +22,7 @@ Signed-off-by: John Ogness <john.ogness@linutronix.de> 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1f710a2a40b6..1bc4ff19c0d2 100644 +index 254d4cb73c7a9..6db3c574e4aa8 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -412,8 +412,13 @@ static u64 clear_seq; @@ -71,7 +71,7 @@ index 1f710a2a40b6..1bc4ff19c0d2 100644 len = 0; prb_for_each_record(seq, prb, seq, &r) { -@@ -2190,8 +2195,7 @@ EXPORT_SYMBOL(printk); +@@ -2196,8 +2201,7 @@ EXPORT_SYMBOL(printk); #else /* CONFIG_PRINTK */ @@ -81,7 +81,7 @@ index 1f710a2a40b6..1bc4ff19c0d2 100644 #define printk_time false #define prb_read_valid(rb, seq, r) false -@@ -2509,7 +2513,7 @@ static inline int can_use_console(void) +@@ -2515,7 +2519,7 @@ static inline int can_use_console(void) void console_unlock(void) { static char ext_text[CONSOLE_EXT_LOG_MAX]; @@ -91,5 +91,5 @@ index 1f710a2a40b6..1bc4ff19c0d2 100644 bool do_cond_resched, retry; struct printk_info info; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch b/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch index f34000021..2dfd9bc86 100644 --- a/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch +++ b/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch @@ -1,8 +1,8 @@ -From 0b877c3f36fc909dc2aec9f70e2e80ad0c69a60b Mon Sep 17 00:00:00 2001 +From a0d38d824d92325e893d09a8b9bd48e74172917e Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:41:58 +0106 Subject: [PATCH 087/323] printk: use seqcount_latch for clear_seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump_rewind_nolock() locklessly reads @clear_seq. However, this is not done atomically. Since @clear_seq is 64-bit, this @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1bc4ff19c0d2..4444b3e292d5 100644 +index 6db3c574e4aa8..d40bc4665f5c0 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -404,8 +404,21 @@ static u64 console_seq; @@ -124,7 +124,7 @@ index 1bc4ff19c0d2..4444b3e292d5 100644 logbuf_unlock_irq(); } -@@ -3341,7 +3383,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3370,7 +3412,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) dumper->active = true; logbuf_lock_irqsave(flags); @@ -133,7 +133,7 @@ index 1bc4ff19c0d2..4444b3e292d5 100644 dumper->next_seq = prb_next_seq(prb); logbuf_unlock_irqrestore(flags); -@@ -3539,7 +3581,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3568,7 +3610,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); */ void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) { @@ -143,5 +143,5 @@ index 1bc4ff19c0d2..4444b3e292d5 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch b/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch index d5c3de71c..a27912eb1 100644 --- a/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch +++ b/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch @@ -1,8 +1,8 @@ -From ccc444abbce9df5f0747db8dd10bd39388d58836 Mon Sep 17 00:00:00 2001 +From 6653a13b974fd54fab4b2c978da5793b7dc669ca Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Thu, 10 Dec 2020 15:33:40 +0106 Subject: [PATCH 088/323] printk: use atomic64_t for devkmsg_user.seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz @user->seq is indirectly protected by @logbuf_lock. Once @logbuf_lock is removed, @user->seq will be no longer safe from an atomicity point @@ -17,7 +17,7 @@ Signed-off-by: John Ogness <john.ogness@linutronix.de> 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 4444b3e292d5..a351ed400c04 100644 +index d40bc4665f5c0..818e99d359da0 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -664,7 +664,7 @@ static ssize_t msg_print_ext_body(char *buf, size_t size, @@ -108,5 +108,5 @@ index 4444b3e292d5..a351ed400c04 100644 file->private_data = user; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0089-printk-add-syslog_lock.patch b/debian/patches-rt/0089-printk-add-syslog_lock.patch index 42e77e5ab..650f1d170 100644 --- a/debian/patches-rt/0089-printk-add-syslog_lock.patch +++ b/debian/patches-rt/0089-printk-add-syslog_lock.patch @@ -1,8 +1,8 @@ -From 5521ed0e06ffc572d9f0ebf5421ab23288899804 Mon Sep 17 00:00:00 2001 +From 02a8f30f0b30c4feb65fd90ad193d6b39b130164 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Thu, 10 Dec 2020 16:58:02 +0106 Subject: [PATCH 089/323] printk: add syslog_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The global variables @syslog_seq, @syslog_partial, @syslog_time and write access to @clear_seq are protected by @logbuf_lock. @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index a351ed400c04..986fc9fad210 100644 +index 818e99d359da0..fb33db0b143b9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -392,8 +392,12 @@ DEFINE_RAW_SPINLOCK(logbuf_lock); @@ -141,7 +141,7 @@ index a351ed400c04..986fc9fad210 100644 logbuf_unlock_irq(); break; /* Size of the log buffer */ -@@ -2995,7 +3023,12 @@ void register_console(struct console *newcon) +@@ -3024,7 +3052,12 @@ void register_console(struct console *newcon) */ exclusive_console = newcon; exclusive_console_stop_seq = console_seq; @@ -155,5 +155,5 @@ index a351ed400c04..986fc9fad210 100644 } console_unlock(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch b/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch index 018c1949d..b405423e3 100644 --- a/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch +++ b/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch @@ -1,8 +1,8 @@ -From 5bb123ebb8e508baa987e9bc17029e2eaa64575b Mon Sep 17 00:00:00 2001 +From d148bafcbfa46ba248997c4683a222c586c21892 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Fri, 18 Dec 2020 11:40:08 +0000 Subject: [PATCH 090/323] printk: introduce a kmsg_dump iterator -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Rather than store the iterator information into the registered kmsg_dump structure, create a separate iterator structure. The @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 10 files changed, 84 insertions(+), 75 deletions(-) diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c -index 532f22637783..1ef55f4b389a 100644 +index 532f226377831..1ef55f4b389a2 100644 --- a/arch/powerpc/kernel/nvram_64.c +++ b/arch/powerpc/kernel/nvram_64.c @@ -73,7 +73,8 @@ static const char *nvram_os_partitions[] = { @@ -68,7 +68,7 @@ index 532f22637783..1ef55f4b389a 100644 err_type = ERR_TYPE_KERNEL_PANIC; oops_hdr->version = cpu_to_be16(OOPS_HDR_VERSION); diff --git a/arch/powerpc/platforms/powernv/opal-kmsg.c b/arch/powerpc/platforms/powernv/opal-kmsg.c -index 6c3bc4b4da98..ec862846bc82 100644 +index 6c3bc4b4da983..ec862846bc82c 100644 --- a/arch/powerpc/platforms/powernv/opal-kmsg.c +++ b/arch/powerpc/platforms/powernv/opal-kmsg.c @@ -20,7 +20,8 @@ @@ -82,7 +82,7 @@ index 6c3bc4b4da98..ec862846bc82 100644 /* * Outside of a panic context the pollers will continue to run, diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c -index 3de2adc0a807..9f62cca6c594 100644 +index 3de2adc0a8074..9f62cca6c5948 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c @@ -3003,7 +3003,7 @@ print_address(unsigned long addr) @@ -107,7 +107,7 @@ index 3de2adc0a807..9f62cca6c594 100644 printf("%s", buf); } diff --git a/arch/um/kernel/kmsg_dump.c b/arch/um/kernel/kmsg_dump.c -index e4abac6c9727..f38349ad00ea 100644 +index e4abac6c9727c..f38349ad00ead 100644 --- a/arch/um/kernel/kmsg_dump.c +++ b/arch/um/kernel/kmsg_dump.c @@ -6,7 +6,8 @@ @@ -130,7 +130,7 @@ index e4abac6c9727..f38349ad00ea 100644 printf("%s", line); } diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index e99400f3ae1d..db39c96bbf43 100644 +index e99400f3ae1d1..db39c96bbf430 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -1359,7 +1359,8 @@ static void vmbus_isr(void) @@ -153,7 +153,7 @@ index e99400f3ae1d..db39c96bbf43 100644 if (bytes_written) hyperv_report_panic_msg(panic_pa, bytes_written); diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c -index 774970bfcf85..6bc2c728adb7 100644 +index 774970bfcf859..6bc2c728adb73 100644 --- a/drivers/mtd/mtdoops.c +++ b/drivers/mtd/mtdoops.c @@ -267,7 +267,8 @@ static void find_next_position(struct mtdoops_context *cxt) @@ -176,7 +176,7 @@ index 774970bfcf85..6bc2c728adb7 100644 if (reason != KMSG_DUMP_OOPS) { diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c -index d59f13b1fb96..64f3f85d2a5d 100644 +index d59f13b1fb96b..64f3f85d2a5d4 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -384,7 +384,8 @@ void pstore_record_init(struct pstore_record *record, @@ -199,7 +199,7 @@ index d59f13b1fb96..64f3f85d2a5d 100644 break; diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 4095a34db0fa..2fdb10ab1799 100644 +index 4095a34db0fa3..2fdb10ab17994 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -29,6 +29,18 @@ enum kmsg_dump_reason { @@ -303,10 +303,10 @@ index 4095a34db0fa..2fdb10ab1799 100644 } diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c -index 4e09fab52faf..048baadd7a41 100644 +index c27b3dfa19210..aa424a1d65d01 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c -@@ -2157,7 +2157,7 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2155,7 +2155,7 @@ static int kdb_dmesg(int argc, const char **argv) int adjust = 0; int n = 0; int skip = 0; @@ -315,7 +315,7 @@ index 4e09fab52faf..048baadd7a41 100644 size_t len; char buf[201]; -@@ -2182,8 +2182,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2180,8 +2180,8 @@ static int kdb_dmesg(int argc, const char **argv) kdb_set(2, setargs); } @@ -326,7 +326,7 @@ index 4e09fab52faf..048baadd7a41 100644 n++; if (lines < 0) { -@@ -2215,8 +2215,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2213,8 +2213,8 @@ static int kdb_dmesg(int argc, const char **argv) if (skip >= n || skip < 0) return 0; @@ -338,10 +338,10 @@ index 4e09fab52faf..048baadd7a41 100644 skip--; continue; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 986fc9fad210..b992be31824f 100644 +index fb33db0b143b9..cc5f7e0fb1573 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3394,6 +3394,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_reason_str); +@@ -3423,6 +3423,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_reason_str); */ void kmsg_dump(enum kmsg_dump_reason reason) { @@ -349,7 +349,7 @@ index 986fc9fad210..b992be31824f 100644 struct kmsg_dumper *dumper; unsigned long flags; -@@ -3413,25 +3414,21 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3442,25 +3443,21 @@ void kmsg_dump(enum kmsg_dump_reason reason) continue; /* initialize iterator with data about the stored records */ @@ -380,7 +380,7 @@ index 986fc9fad210..b992be31824f 100644 * @syslog: include the "<4>" prefixes * @line: buffer to copy the line to * @size: maximum size of the buffer -@@ -3448,7 +3445,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3477,7 +3474,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) * * The function is similar to kmsg_dump_get_line(), but grabs no locks. */ @@ -389,7 +389,7 @@ index 986fc9fad210..b992be31824f 100644 char *line, size_t size, size_t *len) { struct printk_info info; -@@ -3459,16 +3456,16 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3488,16 +3485,16 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, prb_rec_init_rd(&r, &info, line, size); @@ -409,7 +409,7 @@ index 986fc9fad210..b992be31824f 100644 &info, &line_count)) { goto out; } -@@ -3477,7 +3474,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3506,7 +3503,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, } @@ -418,7 +418,7 @@ index 986fc9fad210..b992be31824f 100644 ret = true; out: if (len) -@@ -3487,7 +3484,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3516,7 +3513,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, /** * kmsg_dump_get_line - retrieve one kmsg log line @@ -427,7 +427,7 @@ index 986fc9fad210..b992be31824f 100644 * @syslog: include the "<4>" prefixes * @line: buffer to copy the line to * @size: maximum size of the buffer -@@ -3502,14 +3499,14 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3531,14 +3528,14 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, * A return value of FALSE indicates that there are no more records to * read. */ @@ -444,7 +444,7 @@ index 986fc9fad210..b992be31824f 100644 logbuf_unlock_irqrestore(flags); return ret; -@@ -3518,7 +3515,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); +@@ -3547,7 +3544,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); /** * kmsg_dump_get_buffer - copy kmsg log lines @@ -453,7 +453,7 @@ index 986fc9fad210..b992be31824f 100644 * @syslog: include the "<4>" prefixes * @buf: buffer to copy the line to * @size: maximum size of the buffer -@@ -3535,7 +3532,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); +@@ -3564,7 +3561,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); * A return value of FALSE indicates that there are no more records to * read. */ @@ -462,7 +462,7 @@ index 986fc9fad210..b992be31824f 100644 char *buf, size_t size, size_t *len_out) { struct printk_info info; -@@ -3547,19 +3544,19 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3576,19 +3573,19 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, bool ret = false; bool time = printk_time; @@ -487,7 +487,7 @@ index 986fc9fad210..b992be31824f 100644 logbuf_unlock_irqrestore(flags); goto out; } -@@ -3570,7 +3567,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3599,7 +3596,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, * because this function (by way of record_print_text()) will * not write more than size-1 bytes of text into @buf. */ @@ -496,7 +496,7 @@ index 986fc9fad210..b992be31824f 100644 size - 1, syslog, time); /* -@@ -3583,7 +3580,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3612,7 +3609,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, len = 0; prb_for_each_record(seq, prb, seq, &r) { @@ -505,7 +505,7 @@ index 986fc9fad210..b992be31824f 100644 break; len += record_print_text(&r, syslog, time); -@@ -3592,7 +3589,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3621,7 +3618,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, prb_rec_init_rd(&r, &info, buf + len, size - len); } @@ -514,7 +514,7 @@ index 986fc9fad210..b992be31824f 100644 ret = true; logbuf_unlock_irqrestore(flags); out: -@@ -3604,7 +3601,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3633,7 +3630,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); /** * kmsg_dump_rewind_nolock - reset the iterator (unlocked version) @@ -523,7 +523,7 @@ index 986fc9fad210..b992be31824f 100644 * * Reset the dumper's iterator so that kmsg_dump_get_line() and * kmsg_dump_get_buffer() can be called again and used multiple -@@ -3612,26 +3609,26 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3641,26 +3638,26 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); * * The function is similar to kmsg_dump_rewind(), but grabs no locks. */ @@ -557,5 +557,5 @@ index 986fc9fad210..b992be31824f 100644 } EXPORT_SYMBOL_GPL(kmsg_dump_rewind); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch b/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch index 88b6f08ca..4fbfc131a 100644 --- a/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch +++ b/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch @@ -1,8 +1,8 @@ -From 7790fa6baa700a285007a6e8ddf99393ba72acc2 Mon Sep 17 00:00:00 2001 +From fcdc8135f46459bbeda79bdb25f309407f30d871 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 21 Dec 2020 11:10:03 +0106 Subject: [PATCH 091/323] um: synchronize kmsg_dumper -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The kmsg_dumper can be called from any context and CPU, possibly from multiple CPUs simultaneously. Since a static buffer is used @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 8 insertions(+) diff --git a/arch/um/kernel/kmsg_dump.c b/arch/um/kernel/kmsg_dump.c -index f38349ad00ea..173999422ed8 100644 +index f38349ad00ead..173999422ed84 100644 --- a/arch/um/kernel/kmsg_dump.c +++ b/arch/um/kernel/kmsg_dump.c @@ -1,5 +1,6 @@ @@ -57,5 +57,5 @@ index f38349ad00ea..173999422ed8 100644 static struct kmsg_dumper kmsg_dumper = { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0092-printk-remove-logbuf_lock.patch b/debian/patches-rt/0092-printk-remove-logbuf_lock.patch index 6f45ee8b3..3f43971e6 100644 --- a/debian/patches-rt/0092-printk-remove-logbuf_lock.patch +++ b/debian/patches-rt/0092-printk-remove-logbuf_lock.patch @@ -1,8 +1,8 @@ -From 74a8c8a0d6b64df822c5946a582ca3adeec24e63 Mon Sep 17 00:00:00 2001 +From 511721a2f6160a32b221debb19e94129cc3f5ce9 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Tue, 26 Jan 2021 17:43:19 +0106 Subject: [PATCH 092/323] printk: remove logbuf_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since the ringbuffer is lockless, there is no need for it to be protected by @logbuf_lock. Remove @logbuf_lock. @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 48 insertions(+), 103 deletions(-) diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h -index 3a8fd491758c..e7acc2888c8e 100644 +index 3a8fd491758cf..e7acc2888c8e1 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -12,8 +12,6 @@ @@ -44,7 +44,7 @@ index 3a8fd491758c..e7acc2888c8e 100644 * printk-safe must preserve the existing local IRQ guarantees. */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index b992be31824f..dde1696d7564 100644 +index cc5f7e0fb1573..9fde03f1e29bf 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -357,41 +357,6 @@ enum log_flags { @@ -282,7 +282,7 @@ index b992be31824f..dde1696d7564 100644 break; /* Size of the log buffer */ case SYSLOG_ACTION_SIZE_BUFFER: -@@ -2630,7 +2596,6 @@ void console_unlock(void) +@@ -2636,7 +2602,6 @@ void console_unlock(void) size_t len; printk_safe_enter_irqsave(flags); @@ -290,7 +290,7 @@ index b992be31824f..dde1696d7564 100644 skip: if (!prb_read_valid(prb, console_seq, &r)) break; -@@ -2674,7 +2639,6 @@ void console_unlock(void) +@@ -2680,7 +2645,6 @@ void console_unlock(void) console_msg_format & MSG_FORMAT_SYSLOG, printk_time); console_seq++; @@ -298,7 +298,7 @@ index b992be31824f..dde1696d7564 100644 /* * While actively printing out messages, if another printk() -@@ -2701,8 +2665,6 @@ void console_unlock(void) +@@ -2707,8 +2671,6 @@ void console_unlock(void) console_locked = 0; @@ -307,7 +307,7 @@ index b992be31824f..dde1696d7564 100644 up_console_sem(); /* -@@ -2711,9 +2673,7 @@ void console_unlock(void) +@@ -2717,9 +2679,7 @@ void console_unlock(void) * there's a new owner and the console_unlock() from them will do the * flush, no worries. */ @@ -317,7 +317,7 @@ index b992be31824f..dde1696d7564 100644 printk_safe_exit_irqrestore(flags); if (retry && console_trylock()) -@@ -2780,9 +2740,9 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -2786,9 +2746,9 @@ void console_flush_on_panic(enum con_flush_mode mode) if (mode == CONSOLE_REPLAY_ALL) { unsigned long flags; @@ -329,7 +329,7 @@ index b992be31824f..dde1696d7564 100644 } console_unlock(); } -@@ -3011,7 +2971,7 @@ void register_console(struct console *newcon) +@@ -3040,7 +3000,7 @@ void register_console(struct console *newcon) * console_unlock(); will print out the buffered messages * for us. */ @@ -338,7 +338,7 @@ index b992be31824f..dde1696d7564 100644 /* * We're about to replay the log buffer. Only do this to the * just-registered console to avoid excessive message spam to -@@ -3029,7 +2989,7 @@ void register_console(struct console *newcon) +@@ -3058,7 +3018,7 @@ void register_console(struct console *newcon) console_seq = syslog_seq; raw_spin_unlock(&syslog_lock); @@ -347,7 +347,7 @@ index b992be31824f..dde1696d7564 100644 } console_unlock(); console_sysfs_notify(); -@@ -3415,10 +3375,10 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3444,10 +3404,10 @@ void kmsg_dump(enum kmsg_dump_reason reason) /* initialize iterator with data about the stored records */ iter.active = true; @@ -360,7 +360,7 @@ index b992be31824f..dde1696d7564 100644 /* invoke dumper which will iterate over records */ dumper->dump(dumper, reason, &iter); -@@ -3505,9 +3465,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3534,9 +3494,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, unsigned long flags; bool ret; @@ -372,7 +372,7 @@ index b992be31824f..dde1696d7564 100644 return ret; } -@@ -3547,7 +3507,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3576,7 +3536,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, if (!iter->active || !buf || !size) goto out; @@ -381,7 +381,7 @@ index b992be31824f..dde1696d7564 100644 if (prb_read_valid_info(prb, iter->cur_seq, &info, NULL)) { if (info.seq != iter->cur_seq) { /* messages are gone, move to first available one */ -@@ -3557,7 +3517,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3586,7 +3546,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, /* last entry */ if (iter->cur_seq >= iter->next_seq) { @@ -390,7 +390,7 @@ index b992be31824f..dde1696d7564 100644 goto out; } -@@ -3591,7 +3551,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3620,7 +3580,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, iter->next_seq = next_seq; ret = true; @@ -399,7 +399,7 @@ index b992be31824f..dde1696d7564 100644 out: if (len_out) *len_out = len; -@@ -3627,9 +3587,9 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +@@ -3656,9 +3616,9 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) { unsigned long flags; @@ -412,7 +412,7 @@ index b992be31824f..dde1696d7564 100644 EXPORT_SYMBOL_GPL(kmsg_dump_rewind); diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c -index 2e9e3ed7d63e..7df8a88d4115 100644 +index 2e9e3ed7d63ef..7df8a88d4115e 100644 --- a/kernel/printk/printk_safe.c +++ b/kernel/printk/printk_safe.c @@ -16,7 +16,7 @@ @@ -482,5 +482,5 @@ index 2e9e3ed7d63e..7df8a88d4115 100644 return vprintk_nmi(fmt, args); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch b/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch index 6ad034c1a..667c73b93 100644 --- a/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch +++ b/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch @@ -1,8 +1,8 @@ -From 171ee108014d67150846f1b8f978921cefc7b1e3 Mon Sep 17 00:00:00 2001 +From 7c35d5807ad1cb9afbbd73a093ed3b4ed447cd9c Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 21 Dec 2020 10:27:58 +0106 Subject: [PATCH 093/323] printk: kmsg_dump: remove _nolock() variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump_rewind() and kmsg_dump_get_line() are lockless, so there is no need for _nolock() variants. Remove these functions and switch all @@ -20,7 +20,7 @@ Signed-off-by: John Ogness <john.ogness@linutronix.de> 4 files changed, 15 insertions(+), 75 deletions(-) diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c -index 9f62cca6c594..2eef587bf51d 100644 +index 9f62cca6c5948..2eef587bf51d5 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c @@ -3015,9 +3015,9 @@ dump_log_buf(void) @@ -36,7 +36,7 @@ index 9f62cca6c594..2eef587bf51d 100644 printf("%s", buf); } diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 2fdb10ab1799..86673930c8ea 100644 +index 2fdb10ab17994..86673930c8ea2 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -60,18 +60,13 @@ struct kmsg_dumper { @@ -85,10 +85,10 @@ index 2fdb10ab1799..86673930c8ea 100644 { } diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c -index 048baadd7a41..1f5c577b926e 100644 +index aa424a1d65d01..b97d05072ca4b 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c -@@ -2182,8 +2182,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2180,8 +2180,8 @@ static int kdb_dmesg(int argc, const char **argv) kdb_set(2, setargs); } @@ -99,7 +99,7 @@ index 048baadd7a41..1f5c577b926e 100644 n++; if (lines < 0) { -@@ -2215,8 +2215,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2213,8 +2213,8 @@ static int kdb_dmesg(int argc, const char **argv) if (skip >= n || skip < 0) return 0; @@ -111,10 +111,10 @@ index 048baadd7a41..1f5c577b926e 100644 skip--; continue; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index dde1696d7564..031ce3f00141 100644 +index 9fde03f1e29bf..e18f1f09ab727 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3387,7 +3387,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3416,7 +3416,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) } /** @@ -123,7 +123,7 @@ index dde1696d7564..031ce3f00141 100644 * @iter: kmsg dumper iterator * @syslog: include the "<4>" prefixes * @line: buffer to copy the line to -@@ -3402,18 +3402,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3431,18 +3431,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) * * A return value of FALSE indicates that there are no more records to * read. @@ -146,7 +146,7 @@ index dde1696d7564..031ce3f00141 100644 prb_rec_init_rd(&r, &info, line, size); if (!iter->active) -@@ -3437,40 +3437,11 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3466,40 +3466,11 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper_iter *iter, bool syslog, iter->cur_seq = r.info->seq + 1; ret = true; out: @@ -188,7 +188,7 @@ index dde1696d7564..031ce3f00141 100644 EXPORT_SYMBOL_GPL(kmsg_dump_get_line); /** -@@ -3559,22 +3530,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3588,22 +3559,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, } EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); @@ -211,7 +211,7 @@ index dde1696d7564..031ce3f00141 100644 /** * kmsg_dump_rewind - reset the iterator * @iter: kmsg dumper iterator -@@ -3588,7 +3543,8 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +@@ -3617,7 +3572,8 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) unsigned long flags; printk_safe_enter_irqsave(flags); @@ -222,5 +222,5 @@ index dde1696d7564..031ce3f00141 100644 } EXPORT_SYMBOL_GPL(kmsg_dump_rewind); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch b/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch index 7ff974d08..7600d18a8 100644 --- a/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch +++ b/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch @@ -1,8 +1,8 @@ -From 66a45e662dc7ecb7e9b519d3475c7893c0c1dc60 Mon Sep 17 00:00:00 2001 +From 5d97623648d3bccef67abeab3048214f70c5b693 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Wed, 17 Feb 2021 18:23:16 +0100 Subject: [PATCH 094/323] printk: kmsg_dump: use kmsg_dump_rewind -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump() is open coding the kmsg_dump_rewind(). Call kmsg_dump_rewind() instead. @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 031ce3f00141..c553b235d068 100644 +index e18f1f09ab727..0d233c0573a50 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3356,7 +3356,6 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3385,7 +3385,6 @@ void kmsg_dump(enum kmsg_dump_reason reason) { struct kmsg_dumper_iter iter; struct kmsg_dumper *dumper; @@ -25,7 +25,7 @@ index 031ce3f00141..c553b235d068 100644 rcu_read_lock(); list_for_each_entry_rcu(dumper, &dump_list, list) { -@@ -3375,10 +3374,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3404,10 +3403,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) /* initialize iterator with data about the stored records */ iter.active = true; @@ -38,5 +38,5 @@ index 031ce3f00141..c553b235d068 100644 /* invoke dumper which will iterate over records */ dumper->dump(dumper, reason, &iter); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch b/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch index 2b93c47dd..fec96d79f 100644 --- a/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch +++ b/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch @@ -1,8 +1,8 @@ -From 259c5c359d06d8bbbddebc6cc12fc2abc6bb2783 Mon Sep 17 00:00:00 2001 +From fc0bb2cf754415add4be3a04a82d7b9c7c6f92de Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Wed, 17 Feb 2021 18:28:05 +0100 Subject: [PATCH 095/323] printk: console: remove unnecessary safe buffer usage -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upon registering a console, safe buffers are activated when setting up the sequence number to replay the log. However, these are already @@ -15,10 +15,10 @@ Signed-off-by: John Ogness <john.ogness@linutronix.de> 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index c553b235d068..aebc9e31b36a 100644 +index 0d233c0573a50..1e7ab017be193 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2970,9 +2970,7 @@ void register_console(struct console *newcon) +@@ -2999,9 +2999,7 @@ void register_console(struct console *newcon) /* * console_unlock(); will print out the buffered messages * for us. @@ -29,7 +29,7 @@ index c553b235d068..aebc9e31b36a 100644 * We're about to replay the log buffer. Only do this to the * just-registered console to avoid excessive message spam to * the already-registered consoles. -@@ -2985,11 +2983,9 @@ void register_console(struct console *newcon) +@@ -3014,11 +3012,9 @@ void register_console(struct console *newcon) exclusive_console_stop_seq = console_seq; /* Get a consistent copy of @syslog_seq. */ @@ -44,5 +44,5 @@ index c553b235d068..aebc9e31b36a 100644 console_unlock(); console_sysfs_notify(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0096-printk-track-limit-recursion.patch b/debian/patches-rt/0096-printk-track-limit-recursion.patch index ee26831be..f8379821c 100644 --- a/debian/patches-rt/0096-printk-track-limit-recursion.patch +++ b/debian/patches-rt/0096-printk-track-limit-recursion.patch @@ -1,8 +1,8 @@ -From 05db2b7a33a6aed0cb1ce99370c436dc2b72b521 Mon Sep 17 00:00:00 2001 +From fbd1b769b3f7f77b4de8c2e0145a64c2d158c3cb Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Fri, 11 Dec 2020 00:55:25 +0106 Subject: [PATCH 096/323] printk: track/limit recursion -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Limit printk() recursion to 1 level. This is enough to print a stacktrace for the printk call, should a WARN or BUG occur. @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index aebc9e31b36a..31a2b7a116a7 100644 +index 1e7ab017be193..08a49c8e7239e 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -1943,6 +1943,65 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1949,6 +1949,65 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, } } @@ -83,7 +83,7 @@ index aebc9e31b36a..31a2b7a116a7 100644 int printk_delay_msec __read_mostly; static inline void printk_delay(void) -@@ -2043,11 +2102,13 @@ int vprintk_store(int facility, int level, +@@ -2049,11 +2108,13 @@ int vprintk_store(int facility, int level, struct prb_reserved_entry e; enum log_flags lflags = 0; struct printk_record r; @@ -97,7 +97,7 @@ index aebc9e31b36a..31a2b7a116a7 100644 u64 ts_nsec; /* -@@ -2058,6 +2119,9 @@ int vprintk_store(int facility, int level, +@@ -2064,6 +2125,9 @@ int vprintk_store(int facility, int level, */ ts_nsec = local_clock(); @@ -107,7 +107,7 @@ index aebc9e31b36a..31a2b7a116a7 100644 /* * The sprintf needs to come first since the syslog prefix might be * passed in as a parameter. An extra byte must be reserved so that -@@ -2095,7 +2159,8 @@ int vprintk_store(int facility, int level, +@@ -2101,7 +2165,8 @@ int vprintk_store(int facility, int level, prb_commit(&e); } @@ -117,7 +117,7 @@ index aebc9e31b36a..31a2b7a116a7 100644 } } -@@ -2111,7 +2176,7 @@ int vprintk_store(int facility, int level, +@@ -2117,7 +2182,7 @@ int vprintk_store(int facility, int level, prb_rec_init_wr(&r, reserve_size + trunc_msg_len); if (!prb_reserve(&e, prb, &r)) @@ -126,7 +126,7 @@ index aebc9e31b36a..31a2b7a116a7 100644 } /* fill message */ -@@ -2133,7 +2198,10 @@ int vprintk_store(int facility, int level, +@@ -2139,7 +2204,10 @@ int vprintk_store(int facility, int level, else prb_final_commit(&e); @@ -139,5 +139,5 @@ index aebc9e31b36a..31a2b7a116a7 100644 asmlinkage int vprintk_emit(int facility, int level, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0097-printk-remove-safe-buffers.patch b/debian/patches-rt/0097-printk-remove-safe-buffers.patch index df3318972..09993c97c 100644 --- a/debian/patches-rt/0097-printk-remove-safe-buffers.patch +++ b/debian/patches-rt/0097-printk-remove-safe-buffers.patch @@ -1,8 +1,8 @@ -From c0ee407b7db3b7ac5c24337a9d365a35450c233b Mon Sep 17 00:00:00 2001 +From 08536603e3b6037a7d2e2d52bce1dca2628a14ac Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:00 +0106 Subject: [PATCH 097/323] printk: remove safe buffers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With @logbuf_lock removed, the high level printk functions for storing messages are lockless. Messages can be stored from any @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 9 files changed, 17 insertions(+), 425 deletions(-) diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c -index 5e5a2448ae79..d39a4a6b4ddf 100644 +index b0e87dce2b9a0..5dfe1aea62054 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -170,7 +170,6 @@ extern void panic_flush_kmsg_start(void) @@ -39,7 +39,7 @@ index 5e5a2448ae79..d39a4a6b4ddf 100644 bust_spinlocks(0); debug_locks_off(); diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c -index 75b2a6c4db5a..db40e20d0c54 100644 +index 75b2a6c4db5a5..db40e20d0c54a 100644 --- a/arch/powerpc/kernel/watchdog.c +++ b/arch/powerpc/kernel/watchdog.c @@ -185,11 +185,6 @@ static void watchdog_smp_panic(int cpu, u64 tb) @@ -55,7 +55,7 @@ index 75b2a6c4db5a..db40e20d0c54 100644 trigger_allbutself_cpu_backtrace(); diff --git a/include/linux/printk.h b/include/linux/printk.h -index 344f6da3d4c3..c6bb48f0134c 100644 +index 344f6da3d4c36..c6bb48f0134c0 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -207,8 +207,6 @@ __printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...); @@ -83,7 +83,7 @@ index 344f6da3d4c3..c6bb48f0134c 100644 extern int kptr_restrict; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c -index 3a37fc62dc95..78a1fd9c3c8a 100644 +index 3a37fc62dc95f..78a1fd9c3c8a7 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -978,7 +978,6 @@ void crash_kexec(struct pt_regs *regs) @@ -95,7 +95,7 @@ index 3a37fc62dc95..78a1fd9c3c8a 100644 /* diff --git a/kernel/panic.c b/kernel/panic.c -index bc39e2b27d31..7965f1e31224 100644 +index 30d8da0d43d8f..7fc35d3675e1b 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -324,7 +324,6 @@ void panic(const char *fmt, ...) @@ -116,7 +116,7 @@ index bc39e2b27d31..7965f1e31224 100644 /* diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h -index e7acc2888c8e..e108b2ece8c7 100644 +index e7acc2888c8e1..e108b2ece8c70 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -23,7 +23,6 @@ __printf(1, 0) int vprintk_func(const char *fmt, va_list args); @@ -135,7 +135,7 @@ index e7acc2888c8e..e108b2ece8c7 100644 static inline bool printk_percpu_data_ready(void) { return false; } #endif /* CONFIG_PRINTK */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 31a2b7a116a7..90a4cf4c23a4 100644 +index 08a49c8e7239e..150b0b90ceb44 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -735,27 +735,22 @@ static ssize_t devkmsg_read(struct file *file, char __user *buf, @@ -341,7 +341,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 break; /* Size of the log buffer */ case SYSLOG_ACTION_SIZE_BUFFER: -@@ -2210,7 +2179,6 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2216,7 +2185,6 @@ asmlinkage int vprintk_emit(int facility, int level, { int printed_len; bool in_sched = false; @@ -349,7 +349,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 /* Suppress unimportant messages after panic happens */ if (unlikely(suppress_printk)) -@@ -2224,9 +2192,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2230,9 +2198,7 @@ asmlinkage int vprintk_emit(int facility, int level, boot_delay_msec(level); printk_delay(); @@ -359,7 +359,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 /* If called from the scheduler, we can not call up(). */ if (!in_sched) { -@@ -2618,7 +2584,6 @@ void console_unlock(void) +@@ -2624,7 +2590,6 @@ void console_unlock(void) { static char ext_text[CONSOLE_EXT_LOG_MAX]; static char text[CONSOLE_LOG_MAX]; @@ -367,7 +367,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 bool do_cond_resched, retry; struct printk_info info; struct printk_record r; -@@ -2663,7 +2628,6 @@ void console_unlock(void) +@@ -2669,7 +2634,6 @@ void console_unlock(void) size_t ext_len = 0; size_t len; @@ -375,7 +375,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 skip: if (!prb_read_valid(prb, console_seq, &r)) break; -@@ -2720,12 +2684,8 @@ void console_unlock(void) +@@ -2726,12 +2690,8 @@ void console_unlock(void) call_console_drivers(ext_text, ext_len, text, len); start_critical_timings(); @@ -389,7 +389,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 if (do_cond_resched) cond_resched(); -@@ -2742,8 +2702,6 @@ void console_unlock(void) +@@ -2748,8 +2708,6 @@ void console_unlock(void) * flush, no worries. */ retry = prb_read_valid(prb, console_seq, NULL); @@ -398,7 +398,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 if (retry && console_trylock()) goto again; } -@@ -2805,13 +2763,8 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -2811,13 +2769,8 @@ void console_flush_on_panic(enum con_flush_mode mode) console_trylock(); console_may_schedule = 0; @@ -413,7 +413,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 console_unlock(); } -@@ -3469,11 +3422,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3498,11 +3451,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, struct printk_info info; unsigned int line_count; struct printk_record r; @@ -425,7 +425,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 prb_rec_init_rd(&r, &info, line, size); if (!iter->active) -@@ -3497,7 +3448,6 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3526,7 +3477,6 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, iter->cur_seq = r.info->seq + 1; ret = true; out: @@ -433,7 +433,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 if (len) *len = l; return ret; -@@ -3528,7 +3478,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3557,7 +3507,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, { struct printk_info info; struct printk_record r; @@ -441,7 +441,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 u64 seq; u64 next_seq; size_t len = 0; -@@ -3538,7 +3487,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3567,7 +3516,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, if (!iter->active || !buf || !size) goto out; @@ -449,7 +449,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 if (prb_read_valid_info(prb, iter->cur_seq, &info, NULL)) { if (info.seq != iter->cur_seq) { /* messages are gone, move to first available one */ -@@ -3547,10 +3495,8 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3576,10 +3524,8 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, } /* last entry */ @@ -461,7 +461,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 /* * Find first record that fits, including all following records, -@@ -3582,7 +3528,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3611,7 +3557,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, iter->next_seq = next_seq; ret = true; @@ -469,7 +469,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 out: if (len_out) *len_out = len; -@@ -3600,12 +3545,8 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3629,12 +3574,8 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); */ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) { @@ -483,7 +483,7 @@ index 31a2b7a116a7..90a4cf4c23a4 100644 EXPORT_SYMBOL_GPL(kmsg_dump_rewind); diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c -index 7df8a88d4115..c23b127a6545 100644 +index 7df8a88d4115e..c23b127a65459 100644 --- a/kernel/printk/printk_safe.c +++ b/kernel/printk/printk_safe.c @@ -15,282 +15,9 @@ @@ -856,7 +856,7 @@ index 7df8a88d4115..c23b127a6545 100644 - printk_safe_flush(); -} diff --git a/lib/nmi_backtrace.c b/lib/nmi_backtrace.c -index 8abe1870dba4..b09a490f5f70 100644 +index 8abe1870dba4e..b09a490f5f706 100644 --- a/lib/nmi_backtrace.c +++ b/lib/nmi_backtrace.c @@ -75,12 +75,6 @@ void nmi_trigger_cpumask_backtrace(const cpumask_t *mask, @@ -873,5 +873,5 @@ index 8abe1870dba4..b09a490f5f70 100644 put_cpu(); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch b/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch index 639c0cf84..48f622e2f 100644 --- a/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch +++ b/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch @@ -1,8 +1,8 @@ -From 8e6eb9e51cf4c4efeeb61910c35b01dcce2ec502 Mon Sep 17 00:00:00 2001 +From 3857124ee546240548ef2bf9ff59033210d2d390 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Thu, 18 Feb 2021 17:37:41 +0100 Subject: [PATCH 098/323] printk: convert @syslog_lock to spin_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: John Ogness <john.ogness@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> @@ -11,7 +11,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 90a4cf4c23a4..57f3b8d7f35c 100644 +index 150b0b90ceb44..613345a5cec8c 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -358,7 +358,7 @@ enum log_flags { @@ -102,7 +102,7 @@ index 90a4cf4c23a4..57f3b8d7f35c 100644 break; /* Size of the log buffer */ case SYSLOG_ACTION_SIZE_BUFFER: -@@ -3004,9 +3004,9 @@ void register_console(struct console *newcon) +@@ -3033,9 +3033,9 @@ void register_console(struct console *newcon) exclusive_console_stop_seq = console_seq; /* Get a consistent copy of @syslog_seq. */ @@ -115,5 +115,5 @@ index 90a4cf4c23a4..57f3b8d7f35c 100644 console_unlock(); console_sysfs_notify(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0099-console-add-write_atomic-interface.patch b/debian/patches-rt/0099-console-add-write_atomic-interface.patch index 86f553013..31172c582 100644 --- a/debian/patches-rt/0099-console-add-write_atomic-interface.patch +++ b/debian/patches-rt/0099-console-add-write_atomic-interface.patch @@ -1,8 +1,8 @@ -From a021f069828ba9181d19f5ee9a977cf305ddaf19 Mon Sep 17 00:00:00 2001 +From e8bf862a51dbc3aab9ddd6d816618f05c5a9a502 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:01 +0106 Subject: [PATCH 099/323] console: add write_atomic interface -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add a write_atomic() callback to the console. This is an optional function for console drivers. The function must be atomic (including @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 104 insertions(+) diff --git a/include/linux/console.h b/include/linux/console.h -index bc2a749e6f0d..613df76903f5 100644 +index bc2a749e6f0d4..613df76903f54 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -141,6 +141,7 @@ static inline int con_debug_leave(void) @@ -51,10 +51,10 @@ index bc2a749e6f0d..613df76903f5 100644 + #endif /* _LINUX_CONSOLE_H */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 57f3b8d7f35c..8768473712b2 100644 +index 613345a5cec8c..c32af4f006093 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3551,3 +3551,103 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +@@ -3580,3 +3580,103 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) EXPORT_SYMBOL_GPL(kmsg_dump_rewind); #endif @@ -159,5 +159,5 @@ index 57f3b8d7f35c..8768473712b2 100644 +} +EXPORT_SYMBOL(console_atomic_unlock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch b/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch index ad692ff78..883c87ee1 100644 --- a/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch +++ b/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch @@ -1,8 +1,8 @@ -From 713182575337acb0891fcfaef75c3a36408d1766 Mon Sep 17 00:00:00 2001 +From f535d09d2867742a783be392b633b75d923ef748 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:02 +0106 Subject: [PATCH 100/323] serial: 8250: implement write_atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement a non-sleeping NMI-safe write_atomic() console function in order to support emergency console printing. @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 7 files changed, 162 insertions(+), 44 deletions(-) diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h -index 61b11490ae5b..32c534b87397 100644 +index 61b11490ae5be..32c534b87397f 100644 --- a/drivers/tty/serial/8250/8250.h +++ b/drivers/tty/serial/8250/8250.h @@ -152,12 +152,55 @@ static inline void serial_dl_write(struct uart_8250_port *up, int value) @@ -97,7 +97,7 @@ index 61b11490ae5b..32c534b87397 100644 } diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c -index 43f2eed6df78..687119fe2f8c 100644 +index 355ee338d752c..5c1bb9e06b14e 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -275,10 +275,8 @@ static void serial8250_backup_timeout(struct timer_list *t) @@ -146,7 +146,7 @@ index 43f2eed6df78..687119fe2f8c 100644 .device = uart_console_device, .setup = univ8250_console_setup, diff --git a/drivers/tty/serial/8250/8250_fsl.c b/drivers/tty/serial/8250/8250_fsl.c -index fbcc90c31ca1..b33cb454ce03 100644 +index fbcc90c31ca11..b33cb454ce037 100644 --- a/drivers/tty/serial/8250/8250_fsl.c +++ b/drivers/tty/serial/8250/8250_fsl.c @@ -60,9 +60,18 @@ int fsl8250_handle_irq(struct uart_port *port) @@ -169,7 +169,7 @@ index fbcc90c31ca1..b33cb454ce03 100644 port->ops->stop_rx(port); } else { diff --git a/drivers/tty/serial/8250/8250_ingenic.c b/drivers/tty/serial/8250/8250_ingenic.c -index 988bf6bcce42..bcd26d672539 100644 +index 988bf6bcce42d..bcd26d6725395 100644 --- a/drivers/tty/serial/8250/8250_ingenic.c +++ b/drivers/tty/serial/8250/8250_ingenic.c @@ -146,6 +146,8 @@ OF_EARLYCON_DECLARE(x1000_uart, "ingenic,x1000-uart", @@ -195,7 +195,7 @@ index 988bf6bcce42..bcd26d672539 100644 if (ier & UART_IER_MSI) value |= UART_MCR_MDCE | UART_MCR_FCM; diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c -index de48a58460f4..d246f2755fed 100644 +index de48a58460f47..d246f2755feda 100644 --- a/drivers/tty/serial/8250/8250_mtk.c +++ b/drivers/tty/serial/8250/8250_mtk.c @@ -222,12 +222,37 @@ static void mtk8250_shutdown(struct uart_port *port) @@ -239,7 +239,7 @@ index de48a58460f4..d246f2755fed 100644 static void mtk8250_set_flow_ctrl(struct uart_8250_port *up, int mode) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 8b49ac4856d2..947737d0e46b 100644 +index 6098e87a34046..8eee07321a560 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -730,7 +730,7 @@ static void serial8250_set_sleep(struct uart_8250_port *p, int sleep) @@ -251,7 +251,7 @@ index 8b49ac4856d2..947737d0e46b 100644 if (p->capabilities & UART_CAP_EFR) { serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B); serial_out(p, UART_EFR, efr); -@@ -1405,7 +1405,7 @@ static void serial8250_stop_rx(struct uart_port *port) +@@ -1399,7 +1399,7 @@ static void serial8250_stop_rx(struct uart_port *port) up->ier &= ~(UART_IER_RLSI | UART_IER_RDI); up->port.read_status_mask &= ~UART_LSR_DR; @@ -260,7 +260,7 @@ index 8b49ac4856d2..947737d0e46b 100644 serial8250_rpm_put(up); } -@@ -1435,7 +1435,7 @@ void serial8250_em485_stop_tx(struct uart_8250_port *p) +@@ -1429,7 +1429,7 @@ void serial8250_em485_stop_tx(struct uart_8250_port *p) serial8250_clear_and_reinit_fifos(p); p->ier |= UART_IER_RLSI | UART_IER_RDI; @@ -269,7 +269,7 @@ index 8b49ac4856d2..947737d0e46b 100644 } } EXPORT_SYMBOL_GPL(serial8250_em485_stop_tx); -@@ -1677,7 +1677,7 @@ static void serial8250_disable_ms(struct uart_port *port) +@@ -1671,7 +1671,7 @@ static void serial8250_disable_ms(struct uart_port *port) mctrl_gpio_disable_ms(up->gpios); up->ier &= ~UART_IER_MSI; @@ -278,7 +278,7 @@ index 8b49ac4856d2..947737d0e46b 100644 } static void serial8250_enable_ms(struct uart_port *port) -@@ -1693,7 +1693,7 @@ static void serial8250_enable_ms(struct uart_port *port) +@@ -1687,7 +1687,7 @@ static void serial8250_enable_ms(struct uart_port *port) up->ier |= UART_IER_MSI; serial8250_rpm_get(up); @@ -287,7 +287,7 @@ index 8b49ac4856d2..947737d0e46b 100644 serial8250_rpm_put(up); } -@@ -2129,14 +2129,7 @@ static void serial8250_put_poll_char(struct uart_port *port, +@@ -2123,14 +2123,7 @@ static void serial8250_put_poll_char(struct uart_port *port, struct uart_8250_port *up = up_to_u8250p(port); serial8250_rpm_get(up); @@ -303,7 +303,7 @@ index 8b49ac4856d2..947737d0e46b 100644 wait_for_xmitr(up, BOTH_EMPTY); /* -@@ -2149,7 +2142,7 @@ static void serial8250_put_poll_char(struct uart_port *port, +@@ -2143,7 +2136,7 @@ static void serial8250_put_poll_char(struct uart_port *port, * and restore the IER */ wait_for_xmitr(up, BOTH_EMPTY); @@ -312,7 +312,7 @@ index 8b49ac4856d2..947737d0e46b 100644 serial8250_rpm_put(up); } -@@ -2454,7 +2447,7 @@ void serial8250_do_shutdown(struct uart_port *port) +@@ -2448,7 +2441,7 @@ void serial8250_do_shutdown(struct uart_port *port) */ spin_lock_irqsave(&port->lock, flags); up->ier = 0; @@ -321,7 +321,7 @@ index 8b49ac4856d2..947737d0e46b 100644 spin_unlock_irqrestore(&port->lock, flags); synchronize_irq(port->irq); -@@ -2806,7 +2799,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -2800,7 +2793,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, if (up->capabilities & UART_CAP_RTOIE) up->ier |= UART_IER_RTOIE; @@ -330,7 +330,7 @@ index 8b49ac4856d2..947737d0e46b 100644 if (up->capabilities & UART_CAP_EFR) { unsigned char efr = 0; -@@ -3271,7 +3264,7 @@ EXPORT_SYMBOL_GPL(serial8250_set_defaults); +@@ -3265,7 +3258,7 @@ EXPORT_SYMBOL_GPL(serial8250_set_defaults); #ifdef CONFIG_SERIAL_8250_CONSOLE @@ -339,7 +339,7 @@ index 8b49ac4856d2..947737d0e46b 100644 { struct uart_8250_port *up = up_to_u8250p(port); -@@ -3279,6 +3272,18 @@ static void serial8250_console_putchar(struct uart_port *port, int ch) +@@ -3273,6 +3266,18 @@ static void serial8250_console_putchar(struct uart_port *port, int ch) serial_port_out(port, UART_TX, ch); } @@ -358,7 +358,7 @@ index 8b49ac4856d2..947737d0e46b 100644 /* * Restore serial console when h/w power-off detected */ -@@ -3305,6 +3310,32 @@ static void serial8250_console_restore(struct uart_8250_port *up) +@@ -3299,6 +3304,32 @@ static void serial8250_console_restore(struct uart_8250_port *up) serial8250_out_MCR(up, up->mcr | UART_MCR_DTR | UART_MCR_RTS); } @@ -391,7 +391,7 @@ index 8b49ac4856d2..947737d0e46b 100644 /* * Print a string to the serial port trying not to disturb * any possible real use of the port... -@@ -3321,24 +3352,12 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3315,24 +3346,12 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, struct uart_port *port = &up->port; unsigned long flags; unsigned int ier; @@ -418,7 +418,7 @@ index 8b49ac4856d2..947737d0e46b 100644 /* check scratch reg to see if port powered off during system sleep */ if (up->canary && (up->canary != serial_port_in(port, UART_SCR))) { -@@ -3352,7 +3371,9 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3346,7 +3365,9 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, mdelay(port->rs485.delay_rts_before_send); } @@ -428,7 +428,7 @@ index 8b49ac4856d2..947737d0e46b 100644 /* * Finally, wait for transmitter to become empty -@@ -3365,8 +3386,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3359,8 +3380,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (em485->tx_stopped) up->rs485_stop_tx(up); } @@ -438,7 +438,7 @@ index 8b49ac4856d2..947737d0e46b 100644 /* * The receive handling will happen properly because the -@@ -3378,8 +3398,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3372,8 +3392,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (up->msr_saved_flags) serial8250_modem_status(up); @@ -448,7 +448,7 @@ index 8b49ac4856d2..947737d0e46b 100644 } static unsigned int probe_baud(struct uart_port *port) -@@ -3399,6 +3418,7 @@ static unsigned int probe_baud(struct uart_port *port) +@@ -3393,6 +3412,7 @@ static unsigned int probe_baud(struct uart_port *port) int serial8250_console_setup(struct uart_port *port, char *options, bool probe) { @@ -456,7 +456,7 @@ index 8b49ac4856d2..947737d0e46b 100644 int baud = 9600; int bits = 8; int parity = 'n'; -@@ -3408,6 +3428,8 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe) +@@ -3402,6 +3422,8 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe) if (!port->iobase && !port->membase) return -ENODEV; @@ -466,7 +466,7 @@ index 8b49ac4856d2..947737d0e46b 100644 uart_parse_options(options, &baud, &parity, &bits, &flow); else if (probe) diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h -index abb928361270..77de68ed2d60 100644 +index abb928361270e..77de68ed2d606 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h @@ -7,6 +7,7 @@ @@ -496,5 +496,5 @@ index abb928361270..77de68ed2d60 100644 int serial8250_console_exit(struct uart_port *port); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch b/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch index 27a3bd9d4..14997bd74 100644 --- a/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch +++ b/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch @@ -1,8 +1,8 @@ -From 598543b96b715ed360718ca3597ad4a2eda53241 Mon Sep 17 00:00:00 2001 +From 84c0677048de1c7ddfdb10426f86485e8475f769 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:03 +0106 Subject: [PATCH 101/323] printk: relocate printk_delay() and vprintk_default() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Move printk_delay() and vprintk_default() "as is" further up so that they can be used by new functions in an upcoming commit. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 8768473712b2..c3fc6706a118 100644 +index c32af4f006093..b25a17947ae90 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1728,6 +1728,20 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len) @@ -38,7 +38,7 @@ index 8768473712b2..c3fc6706a118 100644 /* * Special console_lock variants that help to reduce the risk of soft-lockups. * They allow to pass console_lock to another printk() call using a busy wait. -@@ -1971,20 +1985,6 @@ static void printk_exit_irqrestore(unsigned long flags) +@@ -1977,20 +1991,6 @@ static void printk_exit_irqrestore(unsigned long flags) local_irq_restore(flags); } @@ -59,7 +59,7 @@ index 8768473712b2..c3fc6706a118 100644 static inline u32 printk_caller_id(void) { return in_task() ? task_pid_nr(current) : -@@ -2217,18 +2217,18 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2223,18 +2223,18 @@ asmlinkage int vprintk_emit(int facility, int level, } EXPORT_SYMBOL(vprintk_emit); @@ -85,5 +85,5 @@ index 8768473712b2..c3fc6706a118 100644 * printk - print a kernel message * @fmt: format string -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch b/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch index 64dda79fa..dea05046d 100644 --- a/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch +++ b/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch @@ -1,8 +1,8 @@ -From 17a9ff9877863dc267a2b0ead2ab3f792b5e405c Mon Sep 17 00:00:00 2001 +From 9d005857069eb51e552200c4cd458a06b0259d52 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:04 +0106 Subject: [PATCH 102/323] printk: combine boot_delay_msec() into printk_delay() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz boot_delay_msec() is always called immediately before printk_delay() so just combine the two. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index c3fc6706a118..0ae184675e86 100644 +index b25a17947ae90..d7f17b8253cdc 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1730,8 +1730,10 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len) @@ -29,7 +29,7 @@ index c3fc6706a118..0ae184675e86 100644 if (unlikely(printk_delay_msec)) { int m = printk_delay_msec; -@@ -2189,8 +2191,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2195,8 +2197,7 @@ asmlinkage int vprintk_emit(int facility, int level, in_sched = true; } @@ -40,5 +40,5 @@ index c3fc6706a118..0ae184675e86 100644 printed_len = vprintk_store(facility, level, dev_info, fmt, args); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch b/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch index 6647ecd6c..a7f3249aa 100644 --- a/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch +++ b/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch @@ -1,8 +1,8 @@ -From ebdec06c58c4330925d5603649542827bf7bff25 Mon Sep 17 00:00:00 2001 +From 7b6f9a34e7c1a5c1ffdffcd59b9efdcb465a6e4f Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:05 +0106 Subject: [PATCH 103/323] printk: change @console_seq to atomic64_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In preparation for atomic printing, change @console_seq to atomic so that it can be accessed without requiring @console_sem. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 0ae184675e86..2bc9904fd8ab 100644 +index d7f17b8253cdc..818c17b26bdee 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -368,12 +368,13 @@ static u64 syslog_seq; @@ -34,7 +34,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 struct latched_seq { seqcount_latch_t latch; u64 val[2]; -@@ -2273,7 +2274,7 @@ EXPORT_SYMBOL(printk); +@@ -2279,7 +2280,7 @@ EXPORT_SYMBOL(printk); #define prb_first_valid_seq(rb) 0 static u64 syslog_seq; @@ -43,7 +43,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 static u64 exclusive_console_stop_seq; static unsigned long console_dropped; -@@ -2588,6 +2589,7 @@ void console_unlock(void) +@@ -2594,6 +2595,7 @@ void console_unlock(void) bool do_cond_resched, retry; struct printk_info info; struct printk_record r; @@ -51,7 +51,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 if (console_suspended) { up_console_sem(); -@@ -2630,12 +2632,14 @@ void console_unlock(void) +@@ -2636,12 +2638,14 @@ void console_unlock(void) size_t len; skip: @@ -70,7 +70,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 } if (suppress_message_printing(r.info->level)) { -@@ -2644,13 +2648,13 @@ void console_unlock(void) +@@ -2650,13 +2654,13 @@ void console_unlock(void) * directly to the console when we received it, and * record that has level above the console loglevel. */ @@ -86,7 +86,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 exclusive_console = NULL; } -@@ -2671,7 +2675,7 @@ void console_unlock(void) +@@ -2677,7 +2681,7 @@ void console_unlock(void) len = record_print_text(&r, console_msg_format & MSG_FORMAT_SYSLOG, printk_time); @@ -95,7 +95,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 /* * While actively printing out messages, if another printk() -@@ -2702,7 +2706,7 @@ void console_unlock(void) +@@ -2708,7 +2712,7 @@ void console_unlock(void) * there's a new owner and the console_unlock() from them will do the * flush, no worries. */ @@ -104,7 +104,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 if (retry && console_trylock()) goto again; } -@@ -2765,7 +2769,7 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -2771,7 +2775,7 @@ void console_flush_on_panic(enum con_flush_mode mode) console_may_schedule = 0; if (mode == CONSOLE_REPLAY_ALL) @@ -113,7 +113,7 @@ index 0ae184675e86..2bc9904fd8ab 100644 console_unlock(); } -@@ -3002,11 +3006,11 @@ void register_console(struct console *newcon) +@@ -3031,11 +3035,11 @@ void register_console(struct console *newcon) * ignores console_lock. */ exclusive_console = newcon; @@ -128,5 +128,5 @@ index 0ae184675e86..2bc9904fd8ab 100644 } console_unlock(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch b/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch index 3dfd1b707..bdb593e89 100644 --- a/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch +++ b/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch @@ -1,8 +1,8 @@ -From fcf68eb3d589c57f73e4a79b7df2f6ec8080b1ce Mon Sep 17 00:00:00 2001 +From 5c6fb48313777b15ea366464ccc3dbda1ff9003c Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:06 +0106 Subject: [PATCH 104/323] printk: introduce kernel sync mode -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz When the kernel performs an OOPS, enter into "sync mode": @@ -22,7 +22,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 3 files changed, 137 insertions(+), 6 deletions(-) diff --git a/include/linux/console.h b/include/linux/console.h -index 613df76903f5..fcc98354f733 100644 +index 613df76903f54..fcc98354f7332 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -16,6 +16,7 @@ @@ -44,7 +44,7 @@ index 613df76903f5..fcc98354f733 100644 uint ospeed; void *data; diff --git a/include/linux/printk.h b/include/linux/printk.h -index c6bb48f0134c..3738374e2b3b 100644 +index c6bb48f0134c0..3738374e2b3bc 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -46,6 +46,12 @@ static inline const char *printk_skip_headers(const char *buffer) @@ -61,7 +61,7 @@ index c6bb48f0134c..3738374e2b3b 100644 #define MESSAGE_LOGLEVEL_DEFAULT CONFIG_MESSAGE_LOGLEVEL_DEFAULT diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2bc9904fd8ab..8a0af76b6f69 100644 +index 818c17b26bdee..1ce593876dca9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -44,6 +44,7 @@ @@ -184,7 +184,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 /* * Special console_lock variants that help to reduce the risk of soft-lockups. * They allow to pass console_lock to another printk() call using a busy wait. -@@ -1919,6 +2005,8 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1925,6 +2011,8 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, if (!cpu_online(smp_processor_id()) && !(con->flags & CON_ANYTIME)) continue; @@ -193,7 +193,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 if (con->flags & CON_EXTENDED) con->write(con, ext_text, ext_len); else { -@@ -2073,6 +2161,7 @@ int vprintk_store(int facility, int level, +@@ -2079,6 +2167,7 @@ int vprintk_store(int facility, int level, const u32 caller_id = printk_caller_id(); struct prb_reserved_entry e; enum log_flags lflags = 0; @@ -201,7 +201,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 struct printk_record r; unsigned long irqflags; u16 trunc_msg_len = 0; -@@ -2082,6 +2171,7 @@ int vprintk_store(int facility, int level, +@@ -2088,6 +2177,7 @@ int vprintk_store(int facility, int level, u16 text_len; int ret = 0; u64 ts_nsec; @@ -209,7 +209,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 /* * Since the duration of printk() can vary depending on the message -@@ -2120,6 +2210,7 @@ int vprintk_store(int facility, int level, +@@ -2126,6 +2216,7 @@ int vprintk_store(int facility, int level, if (lflags & LOG_CONT) { prb_rec_init_wr(&r, reserve_size); if (prb_reserve_in_last(&e, prb, &r, caller_id, LOG_LINE_MAX)) { @@ -217,7 +217,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 text_len = printk_sprint(&r.text_buf[r.info->text_len], reserve_size, facility, &lflags, fmt, args); r.info->text_len += text_len; -@@ -2127,6 +2218,7 @@ int vprintk_store(int facility, int level, +@@ -2133,6 +2224,7 @@ int vprintk_store(int facility, int level, if (lflags & LOG_NEWLINE) { r.info->flags |= LOG_NEWLINE; prb_final_commit(&e); @@ -225,7 +225,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 } else { prb_commit(&e); } -@@ -2151,6 +2243,8 @@ int vprintk_store(int facility, int level, +@@ -2157,6 +2249,8 @@ int vprintk_store(int facility, int level, goto out; } @@ -234,7 +234,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 /* fill message */ text_len = printk_sprint(&r.text_buf[0], reserve_size, facility, &lflags, fmt, args); if (trunc_msg_len) -@@ -2165,13 +2259,25 @@ int vprintk_store(int facility, int level, +@@ -2171,13 +2265,25 @@ int vprintk_store(int facility, int level, memcpy(&r.info->dev_info, dev_info, sizeof(r.info->dev_info)); /* A message without a trailing newline can be continued. */ @@ -262,7 +262,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 printk_exit_irqrestore(irqflags); return ret; } -@@ -2267,12 +2373,13 @@ EXPORT_SYMBOL(printk); +@@ -2273,12 +2379,13 @@ EXPORT_SYMBOL(printk); #else /* CONFIG_PRINTK */ @@ -277,7 +277,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 static u64 syslog_seq; static atomic64_t console_seq = ATOMIC64_INIT(0); static u64 exclusive_console_stop_seq; -@@ -2565,6 +2672,8 @@ static int have_callable_console(void) +@@ -2571,6 +2678,8 @@ static int have_callable_console(void) */ static inline int can_use_console(void) { @@ -286,7 +286,7 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 return cpu_online(raw_smp_processor_id()) || have_callable_console(); } -@@ -3379,6 +3488,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3408,6 +3517,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) struct kmsg_dumper_iter iter; struct kmsg_dumper *dumper; @@ -306,5 +306,5 @@ index 2bc9904fd8ab..8a0af76b6f69 100644 list_for_each_entry_rcu(dumper, &dump_list, list) { enum kmsg_dump_reason max_reason = dumper->max_reason; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch b/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch index 5f6075baf..47db87d2b 100644 --- a/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch +++ b/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch @@ -1,8 +1,8 @@ -From 24c419661c9c605b6f1ddccf1683c2c0f8c5dcf4 Mon Sep 17 00:00:00 2001 +From f2b6a7c9bcafbbfeeccaddeb86c2f7107a245442 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:07 +0106 Subject: [PATCH 105/323] printk: move console printing to kthreads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Create a kthread for each console to perform console printing. Now all console printing is fully asynchronous except for the boot @@ -17,11 +17,11 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> --- include/linux/console.h | 2 + - kernel/printk/printk.c | 625 ++++++++++++---------------------------- - 2 files changed, 186 insertions(+), 441 deletions(-) + kernel/printk/printk.c | 631 ++++++++++++---------------------------- + 2 files changed, 186 insertions(+), 447 deletions(-) diff --git a/include/linux/console.h b/include/linux/console.h -index fcc98354f733..3e99359e0660 100644 +index fcc98354f7332..3e99359e06602 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -155,6 +155,8 @@ struct console { @@ -34,7 +34,7 @@ index fcc98354f733..3e99359e0660 100644 uint ospeed; void *data; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 8a0af76b6f69..232ce58e94c2 100644 +index 1ce593876dca9..2dc54d08cd8bc 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -44,6 +44,7 @@ @@ -101,7 +101,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 else return false; -@@ -1821,202 +1814,16 @@ static void print_sync_until(struct console *con, u64 seq) +@@ -1821,208 +1814,16 @@ static void print_sync_until(struct console *con, u64 seq) console_atomic_lock(&flags); for (;;) { @@ -254,6 +254,12 @@ index 8a0af76b6f69..232ce58e94c2 100644 - */ - mutex_acquire(&console_lock_dep_map, 0, 1, _THIS_IP_); - +- /* +- * Update @console_may_schedule for trylock because the previous +- * owner may have been schedulable. +- */ +- console_may_schedule = 0; +- - return 1; -} - @@ -306,7 +312,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 #ifdef CONFIG_PRINTK_NMI #define NUM_RECURSION_CTX 2 #else -@@ -2287,39 +2094,16 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2293,39 +2094,16 @@ asmlinkage int vprintk_emit(int facility, int level, const char *fmt, va_list args) { int printed_len; @@ -347,7 +353,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 wake_up_klogd(); return printed_len; } -@@ -2371,38 +2155,158 @@ asmlinkage __visible int printk(const char *fmt, ...) +@@ -2377,38 +2155,158 @@ asmlinkage __visible int printk(const char *fmt, ...) } EXPORT_SYMBOL(printk); @@ -434,9 +440,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 + } + + printk_seq = atomic64_read(&con->printk_seq); - --static size_t record_print_text(const struct printk_record *r, -- bool syslog, bool time) ++ + console_lock(); + console_may_schedule = 0; + @@ -450,7 +454,9 @@ index 8a0af76b6f69..232ce58e94c2 100644 + "** %lu printk messages dropped **\n", + dropped); + dropped = 0; -+ + +-static size_t record_print_text(const struct printk_record *r, +- bool syslog, bool time) + con->write(con, dropped_text, dropped_len); + printk_delay(r.info->level); + } @@ -529,7 +535,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 #endif /* CONFIG_PRINTK */ -@@ -2647,36 +2551,6 @@ int is_console_locked(void) +@@ -2653,36 +2551,6 @@ int is_console_locked(void) } EXPORT_SYMBOL(is_console_locked); @@ -566,7 +572,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 /** * console_unlock - unlock the console system * -@@ -2693,131 +2567,14 @@ static inline int can_use_console(void) +@@ -2699,131 +2567,14 @@ static inline int can_use_console(void) */ void console_unlock(void) { @@ -698,7 +704,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 } EXPORT_SYMBOL(console_unlock); -@@ -2867,18 +2624,20 @@ void console_unblank(void) +@@ -2873,18 +2624,20 @@ void console_unblank(void) */ void console_flush_on_panic(enum con_flush_mode mode) { @@ -729,7 +735,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 console_unlock(); } -@@ -3013,7 +2772,6 @@ static int try_enable_new_console(struct console *newcon, bool user_specified) +@@ -3052,7 +2805,6 @@ static void try_enable_default_console(struct console *newcon) */ void register_console(struct console *newcon) { @@ -737,7 +743,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 struct console *bcon = NULL; int err; -@@ -3037,6 +2795,8 @@ void register_console(struct console *newcon) +@@ -3076,6 +2828,8 @@ void register_console(struct console *newcon) } } @@ -746,7 +752,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 if (console_drivers && console_drivers->flags & CON_BOOT) bcon = console_drivers; -@@ -3101,27 +2861,12 @@ void register_console(struct console *newcon) +@@ -3130,27 +2884,12 @@ void register_console(struct console *newcon) if (newcon->flags & CON_EXTENDED) nr_ext_console_drivers++; @@ -779,7 +785,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 console_unlock(); console_sysfs_notify(); -@@ -3195,6 +2940,9 @@ int unregister_console(struct console *console) +@@ -3224,6 +2963,9 @@ int unregister_console(struct console *console) console_unlock(); console_sysfs_notify(); @@ -789,7 +795,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 if (console->exit) res = console->exit(console); -@@ -3277,6 +3025,15 @@ static int __init printk_late_init(void) +@@ -3306,6 +3048,15 @@ static int __init printk_late_init(void) unregister_console(con); } } @@ -805,7 +811,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 ret = cpuhp_setup_state_nocalls(CPUHP_PRINTK_DEAD, "printk:dead", NULL, console_cpu_notify); WARN_ON(ret < 0); -@@ -3292,7 +3049,6 @@ late_initcall(printk_late_init); +@@ -3321,7 +3072,6 @@ late_initcall(printk_late_init); * Delayed printk version, for scheduler-internal messages: */ #define PRINTK_PENDING_WAKEUP 0x01 @@ -813,7 +819,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 static DEFINE_PER_CPU(int, printk_pending); -@@ -3300,14 +3056,8 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) +@@ -3329,14 +3079,8 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) { int pending = __this_cpu_xchg(printk_pending, 0); @@ -829,7 +835,7 @@ index 8a0af76b6f69..232ce58e94c2 100644 } static DEFINE_PER_CPU(struct irq_work, wake_up_klogd_work) = { -@@ -3330,13 +3080,6 @@ void wake_up_klogd(void) +@@ -3359,13 +3103,6 @@ void wake_up_klogd(void) void defer_console_output(void) { @@ -844,5 +850,5 @@ index 8a0af76b6f69..232ce58e94c2 100644 int vprintk_deferred(const char *fmt, va_list args) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0106-printk-remove-deferred-printing.patch b/debian/patches-rt/0106-printk-remove-deferred-printing.patch index b65397f57..07a20b1ac 100644 --- a/debian/patches-rt/0106-printk-remove-deferred-printing.patch +++ b/debian/patches-rt/0106-printk-remove-deferred-printing.patch @@ -1,8 +1,8 @@ -From f1e8f72e9d5c1df1ddaac09999645f7255219d77 Mon Sep 17 00:00:00 2001 +From c8f5e3ab356f317ec8d6e6fd4d99d4224c3d4718 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:08 +0106 Subject: [PATCH 106/323] printk: remove deferred printing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since printing occurs either atomically or from the printing kthread, there is no need for any deferring or tracking possible @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 kernel/printk/printk_safe.c diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c -index 8aa7fa949c23..3693706ba0a1 100644 +index 8aa7fa949c232..3693706ba0a1a 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -671,9 +671,7 @@ static void do_handle_IPI(int ipinr) @@ -39,7 +39,7 @@ index 8aa7fa949c23..3693706ba0a1 100644 default: diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c -index c9a889880214..d488311efab1 100644 +index c9a889880214e..d488311efab1f 100644 --- a/arch/powerpc/kexec/crash.c +++ b/arch/powerpc/kexec/crash.c @@ -311,9 +311,6 @@ void default_machine_crash_shutdown(struct pt_regs *regs) @@ -53,7 +53,7 @@ index c9a889880214..d488311efab1 100644 * This function is only called after the system * has panicked or is otherwise in a critical state. diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h -index 754f67ac4326..c35b71f8644a 100644 +index 754f67ac4326a..c35b71f8644aa 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -115,7 +115,6 @@ extern void rcu_nmi_exit(void); @@ -73,7 +73,7 @@ index 754f67ac4326..c35b71f8644a 100644 lockdep_on(); \ } while (0) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 3738374e2b3b..410435ac15ea 100644 +index 3738374e2b3bc..410435ac15ea1 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -155,18 +155,6 @@ static inline __printf(1, 2) __cold @@ -96,7 +96,7 @@ index 3738374e2b3b..410435ac15ea 100644 #ifdef CONFIG_PRINTK diff --git a/kernel/printk/Makefile b/kernel/printk/Makefile -index eee3dc9b60a9..59cb24e25f00 100644 +index eee3dc9b60a9a..59cb24e25f004 100644 --- a/kernel/printk/Makefile +++ b/kernel/printk/Makefile @@ -1,5 +1,4 @@ @@ -107,7 +107,7 @@ index eee3dc9b60a9..59cb24e25f00 100644 obj-$(CONFIG_PRINTK) += printk_ringbuffer.o diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h deleted file mode 100644 -index e108b2ece8c7..000000000000 +index e108b2ece8c70..0000000000000 --- a/kernel/printk/internal.h +++ /dev/null @@ -1,70 +0,0 @@ @@ -182,7 +182,7 @@ index e108b2ece8c7..000000000000 -static inline bool printk_percpu_data_ready(void) { return false; } -#endif /* CONFIG_PRINTK */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 232ce58e94c2..2b110b9ae34a 100644 +index 2dc54d08cd8bc..d7b3cd47339a9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -45,6 +45,7 @@ @@ -291,7 +291,7 @@ index 232ce58e94c2..2b110b9ae34a 100644 asmlinkage int vprintk(const char *fmt, va_list args) { -@@ -3078,18 +3072,10 @@ void wake_up_klogd(void) +@@ -3101,18 +3095,10 @@ void wake_up_klogd(void) preempt_enable(); } @@ -315,7 +315,7 @@ index 232ce58e94c2..2b110b9ae34a 100644 int printk_deferred(const char *fmt, ...) diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c deleted file mode 100644 -index c23b127a6545..000000000000 +index c23b127a65459..0000000000000 --- a/kernel/printk/printk_safe.c +++ /dev/null @@ -1,88 +0,0 @@ @@ -408,10 +408,10 @@ index c23b127a6545..000000000000 - return vprintk_default(fmt, args); -} diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 70ab6b46ef8f..5d6730589823 100644 +index db3b3b2455894..aa1da411d181b 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -9517,7 +9517,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) +@@ -9537,7 +9537,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) tracing_off(); local_irq_save(flags); @@ -419,7 +419,7 @@ index 70ab6b46ef8f..5d6730589823 100644 /* Simulate the iterator */ trace_init_global_iter(&iter); -@@ -9594,7 +9593,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) +@@ -9614,7 +9613,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) atomic_dec(&per_cpu_ptr(iter.array_buffer->data, cpu)->disabled); } atomic_dec(&dump_running); @@ -428,5 +428,5 @@ index 70ab6b46ef8f..5d6730589823 100644 } EXPORT_SYMBOL_GPL(ftrace_dump); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0107-printk-add-console-handover.patch b/debian/patches-rt/0107-printk-add-console-handover.patch index 9abc4efd5..23d9e6308 100644 --- a/debian/patches-rt/0107-printk-add-console-handover.patch +++ b/debian/patches-rt/0107-printk-add-console-handover.patch @@ -1,8 +1,8 @@ -From ead093d95a7917fa12f9d4653032eac383d21c1d Mon Sep 17 00:00:00 2001 +From 4249c8607121d5aba27b7ba1141ca3ee2fda334d Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:09 +0106 Subject: [PATCH 107/323] printk: add console handover -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz If earlyprintk is used, a boot console will print directly to the console immediately. The boot console will unregister itself as soon @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/console.h b/include/linux/console.h -index 3e99359e0660..027278792eea 100644 +index 3e99359e06602..027278792eea4 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -138,6 +138,7 @@ static inline int con_debug_leave(void) @@ -38,7 +38,7 @@ index 3e99359e0660..027278792eea 100644 struct console { char name[16]; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2b110b9ae34a..58da007d7c99 100644 +index d7b3cd47339a9..0cc452e7b1a1c 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1729,6 +1729,8 @@ static bool console_can_sync(struct console *con) @@ -59,7 +59,7 @@ index 2b110b9ae34a..58da007d7c99 100644 else if (con->write && (con->flags & CON_BOOT) && !con->thread) con->write(con, text, text_len); else -@@ -2832,8 +2836,10 @@ void register_console(struct console *newcon) +@@ -2855,8 +2859,10 @@ void register_console(struct console *newcon) * the real console are the same physical device, it's annoying to * see the beginning boot messages twice */ @@ -72,5 +72,5 @@ index 2b110b9ae34a..58da007d7c99 100644 /* * Put this console in the list - keep the -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0108-printk-add-pr_flush.patch b/debian/patches-rt/0108-printk-add-pr_flush.patch index 013525f54..43712cc31 100644 --- a/debian/patches-rt/0108-printk-add-pr_flush.patch +++ b/debian/patches-rt/0108-printk-add-pr_flush.patch @@ -1,8 +1,8 @@ -From cf83f550753a28a3f2a5a7ddd45456fb3ccd03ed Mon Sep 17 00:00:00 2001 +From 44945f908f87501b711299bfe736012ed927526b Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 30 Nov 2020 01:42:10 +0106 Subject: [PATCH 108/323] printk: add pr_flush() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Provide a function to allow waiting for console printers to catch up to the latest logged message. @@ -23,7 +23,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 4 files changed, 99 insertions(+), 11 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 410435ac15ea..83c7734e9802 100644 +index 410435ac15ea1..83c7734e98025 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -481,6 +481,8 @@ extern int kptr_restrict; @@ -36,7 +36,7 @@ index 410435ac15ea..83c7734e9802 100644 * ratelimited messages with local ratelimit_state, * no local ratelimit_state used in the !PRINTK case diff --git a/kernel/panic.c b/kernel/panic.c -index 7965f1e31224..5a1a4bf2feb3 100644 +index 7fc35d3675e1b..0681472a2041a 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -244,6 +244,7 @@ void check_panic_on_warn(const char *origin) @@ -94,7 +94,7 @@ index 7965f1e31224..5a1a4bf2feb3 100644 /* * If kgdb is enabled, give it a chance to run before we stop all * the other CPUs or else we won't be able to debug processes left -@@ -629,6 +634,7 @@ static void print_oops_end_marker(void) +@@ -637,6 +642,7 @@ static void print_oops_end_marker(void) { init_oops_id(); pr_warn("---[ end trace %016llx ]---\n", (unsigned long long)oops_id); @@ -103,10 +103,10 @@ index 7965f1e31224..5a1a4bf2feb3 100644 /* diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 58da007d7c99..14cb111fe9f0 100644 +index 0cc452e7b1a1c..3fdd06c05f4ea 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3233,6 +3233,12 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3256,6 +3256,12 @@ void kmsg_dump(enum kmsg_dump_reason reason) sync_mode = true; pr_info("enabled sync mode\n"); } @@ -119,7 +119,7 @@ index 58da007d7c99..14cb111fe9f0 100644 } rcu_read_lock(); -@@ -3512,3 +3518,76 @@ void console_atomic_unlock(unsigned int flags) +@@ -3535,3 +3541,76 @@ void console_atomic_unlock(unsigned int flags) prb_unlock(&printk_cpulock, flags); } EXPORT_SYMBOL(console_atomic_unlock); @@ -197,7 +197,7 @@ index 58da007d7c99..14cb111fe9f0 100644 +} +EXPORT_SYMBOL(pr_flush); diff --git a/lib/bug.c b/lib/bug.c -index 4ab398a2de93..9c681f29e61e 100644 +index 4ab398a2de938..9c681f29e61e6 100644 --- a/lib/bug.c +++ b/lib/bug.c @@ -202,6 +202,7 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs) @@ -209,5 +209,5 @@ index 4ab398a2de93..9c681f29e61e 100644 return BUG_TRAP_TYPE_BUG; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch b/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch index 3fad12a67..26d74d06f 100644 --- a/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch +++ b/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch @@ -1,8 +1,8 @@ -From 5c99ffb2025e5ae87404c3b9641b9dafaec9336e Mon Sep 17 00:00:00 2001 +From af15b3ffc7083625e1a108b253949f64fab665ea 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 109/323] cgroup: use irqsave in cgroup_rstat_flush_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock either with spin_lock_irq() or spin_lock_irqsave(). @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c -index 89ca9b61aa0d..753dc346520a 100644 +index 89ca9b61aa0d9..753dc346520a0 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c @@ -149,8 +149,9 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) @@ -46,5 +46,5 @@ index 89ca9b61aa0d..753dc346520a 100644 /* if @may_sleep, play nice and yield if necessary */ if (may_sleep && (need_resched() || -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch b/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch index e9c3583b7..e0deaed7d 100644 --- a/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch +++ b/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch @@ -1,9 +1,9 @@ -From e215644e77fc149727b2ed1c3412c2e7668ff5aa Mon Sep 17 00:00:00 2001 +From 2ab4488b49858ac953b1e879c9a5b9f91dc816bc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Feb 2019 10:40:46 +0100 Subject: [PATCH 110/323] mm: workingset: replace IRQ-off check with a lockdep assert. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Commit @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/workingset.c b/mm/workingset.c -index 975a4d2dd02e..c3d098c01052 100644 +index 975a4d2dd02ee..c3d098c010529 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -432,6 +432,8 @@ static struct list_lru shadow_nodes; @@ -45,5 +45,5 @@ index 975a4d2dd02e..c3d098c01052 100644 if (node->count && node->count == node->nr_values) { if (list_empty(&node->private_list)) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch b/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch index f69a126e3..477b717af 100644 --- a/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch +++ b/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch @@ -1,8 +1,8 @@ -From 74373c599ec7fa9991304d680c34ec5b591d4cad Mon Sep 17 00:00:00 2001 +From 24ee29758a52b79da465b05aa72bcb546ae09699 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Feb 2019 11:33:11 +0100 Subject: [PATCH 111/323] tpm: remove tpm_dev_wq_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Added in commit @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 deletion(-) diff --git a/drivers/char/tpm/tpm-dev-common.c b/drivers/char/tpm/tpm-dev-common.c -index b99e1941c52c..dc4c0a0a5129 100644 +index b99e1941c52c9..dc4c0a0a51290 100644 --- a/drivers/char/tpm/tpm-dev-common.c +++ b/drivers/char/tpm/tpm-dev-common.c @@ -20,7 +20,6 @@ @@ -31,5 +31,5 @@ index b99e1941c52c..dc4c0a0a5129 100644 static ssize_t tpm_dev_transmit(struct tpm_chip *chip, struct tpm_space *space, u8 *buf, size_t bufsiz) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch b/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch index 41738b8a2..6786d3ff4 100644 --- a/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch +++ b/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch @@ -1,8 +1,8 @@ -From 35616363024adeffc42af4d2ca91e4550d6db59c Mon Sep 17 00:00:00 2001 +From 3db1a6e4f9281a60d78e1299268a24b120abbf28 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 14 Aug 2020 18:53:34 +0200 Subject: [PATCH 112/323] shmem: Use raw_spinlock_t for ->stat_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Each CPU has SHMEM_INO_BATCH inodes available in `->ino_batch' which is per-CPU. Access here is serialized by disabling preemption. If the pool is @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h -index a5a5d1d4d7b1..0470d1582b09 100644 +index a5a5d1d4d7b1d..0470d1582b09a 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -31,7 +31,7 @@ struct shmem_sb_info { @@ -35,7 +35,7 @@ index a5a5d1d4d7b1..0470d1582b09 100644 unsigned char huge; /* Whether to try for hugepages */ kuid_t uid; /* Mount uid for root directory */ diff --git a/mm/shmem.c b/mm/shmem.c -index e173d83b4448..94c0964f0d1f 100644 +index e173d83b44481..94c0964f0d1fb 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -278,10 +278,10 @@ static int shmem_reserve_inode(struct super_block *sb, ino_t *inop) @@ -143,5 +143,5 @@ index e173d83b4448..94c0964f0d1f 100644 goto failed; spin_lock_init(&sbinfo->shrinklist_lock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch b/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch index b7b6765b1..cdef4386e 100644 --- a/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch +++ b/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch @@ -1,8 +1,8 @@ -From b3ad938c1be05a261ce70af8888271d0b85cd955 Mon Sep 17 00:00:00 2001 +From ed31b5b24e477aa1ebfa4416b3bb950544f3fb57 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 8 Sep 2020 07:32:20 +0200 Subject: [PATCH 113/323] net: Move lockdep where it belongs -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- @@ -10,10 +10,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c -index a069b5476df4..8839cfea108a 100644 +index 016c0b9e01b70..967f72393d559 100644 --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3082,12 +3082,11 @@ void lock_sock_nested(struct sock *sk, int subclass) +@@ -3095,12 +3095,11 @@ void lock_sock_nested(struct sock *sk, int subclass) if (sk->sk_lock.owned) __lock_sock(sk); sk->sk_lock.owned = 1; @@ -27,7 +27,7 @@ index a069b5476df4..8839cfea108a 100644 } EXPORT_SYMBOL(lock_sock_nested); -@@ -3136,12 +3135,11 @@ bool lock_sock_fast(struct sock *sk) +@@ -3149,12 +3148,11 @@ bool lock_sock_fast(struct sock *sk) __lock_sock(sk); sk->sk_lock.owned = 1; @@ -42,5 +42,5 @@ index a069b5476df4..8839cfea108a 100644 } EXPORT_SYMBOL(lock_sock_fast); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch b/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch index 29bae354a..9b939fd36 100644 --- a/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch +++ b/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch @@ -1,8 +1,8 @@ -From a73391bb3950b16f44dda9989980e77e07febe01 Mon Sep 17 00:00:00 2001 +From f734e52ad35dc376e722cd13bc5cbb3b18a97242 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:08 +0100 Subject: [PATCH 114/323] parisc: Remove bogus __IRQ_STAT macro -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is a leftover from a historical array based implementation and unused. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 deletion(-) diff --git a/arch/parisc/include/asm/hardirq.h b/arch/parisc/include/asm/hardirq.h -index 7f7039516e53..fad29aa6f45f 100644 +index 7f7039516e53f..fad29aa6f45fa 100644 --- a/arch/parisc/include/asm/hardirq.h +++ b/arch/parisc/include/asm/hardirq.h @@ -32,7 +32,6 @@ typedef struct { @@ -27,5 +27,5 @@ index 7f7039516e53..fad29aa6f45f 100644 #define __inc_irq_stat(member) __this_cpu_inc(irq_stat.member) #define ack_bad_irq(irq) WARN(1, "unexpected IRQ trap at vector %02x\n", irq) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch b/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch index 59cbda0e0..d7bdc43ed 100644 --- a/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch +++ b/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch @@ -1,8 +1,8 @@ -From 4d4b0ae9c82f34e6cc445f9b04248ae49346a73e Mon Sep 17 00:00:00 2001 +From 5b959c12903041cd3900cfdd30965120d6fb3560 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:09 +0100 Subject: [PATCH 115/323] sh: Get rid of nmi_count() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz nmi_count() is a historical leftover and SH is the only user. Replace it with regular per cpu accessors. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c -index 5717c7cbdd97..5addcb2c2da0 100644 +index 5717c7cbdd97a..5addcb2c2da0c 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -44,7 +44,7 @@ int arch_show_interrupts(struct seq_file *p, int prec) @@ -30,7 +30,7 @@ index 5717c7cbdd97..5addcb2c2da0 100644 seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count)); diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c -index 4efffc18c851..be15e41489b2 100644 +index 4efffc18c8512..be15e41489b2d 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c @@ -186,7 +186,7 @@ BUILD_TRAP_HANDLER(nmi) @@ -43,5 +43,5 @@ index 4efffc18c851..be15e41489b2 100644 switch (notify_die(DIE_NMI, "NMI", regs, 0, vec & 0xff, SIGINT)) { case NOTIFY_OK: -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch b/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch index 870e1af5f..29a65af73 100644 --- a/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch +++ b/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch @@ -1,8 +1,8 @@ -From c190c29cf4e02d1cfa67a9744ef94c2037ed071e Mon Sep 17 00:00:00 2001 +From 39ed7c0b677b385726dc78a6cb54cd60b716cb86 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:10 +0100 Subject: [PATCH 116/323] irqstat: Get rid of nmi_count() and __IRQ_STAT() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Nothing uses this anymore. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 deletions(-) diff --git a/include/linux/irq_cpustat.h b/include/linux/irq_cpustat.h -index 6e8895cd4d92..78fb2de3ea4d 100644 +index 6e8895cd4d926..78fb2de3ea4d7 100644 --- a/include/linux/irq_cpustat.h +++ b/include/linux/irq_cpustat.h @@ -19,10 +19,6 @@ @@ -30,5 +30,5 @@ index 6e8895cd4d92..78fb2de3ea4d 100644 - #endif /* __irq_cpustat_h */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch b/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch index ee24a1117..94d6ec60c 100644 --- a/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch +++ b/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch @@ -1,8 +1,8 @@ -From 44cfe18ac1cb81f3617a962640846d232bed6d65 Mon Sep 17 00:00:00 2001 +From 05c6d2c80904407e9d810bb342dd6e833071a819 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:11 +0100 Subject: [PATCH 117/323] um/irqstat: Get rid of the duplicated declarations -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_cpustat_t and ack_bad_irq() are exactly the same as the asm-generic ones. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/arch/um/include/asm/hardirq.h b/arch/um/include/asm/hardirq.h -index b426796d26fd..52e2c36267a9 100644 +index b426796d26fd7..52e2c36267a93 100644 --- a/arch/um/include/asm/hardirq.h +++ b/arch/um/include/asm/hardirq.h @@ -2,22 +2,7 @@ @@ -44,5 +44,5 @@ index b426796d26fd..52e2c36267a9 100644 #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch b/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch index a7b949523..82ad4558e 100644 --- a/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch +++ b/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch @@ -1,8 +1,8 @@ -From 903c27e244a901b4c66dc1d423a6d9b3214fd868 Mon Sep 17 00:00:00 2001 +From 5d086c5aeabc034a4ff425cbabda8f56f2f1795f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:12 +0100 Subject: [PATCH 118/323] ARM: irqstat: Get rid of duplicated declaration -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_cpustat_t is exactly the same as the asm-generic one. Define ack_bad_irq so the generic header does not emit the generic version of it. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/arch/arm/include/asm/hardirq.h b/arch/arm/include/asm/hardirq.h -index b95848ed2bc7..706efafbf972 100644 +index b95848ed2bc7f..706efafbf9722 100644 --- a/arch/arm/include/asm/hardirq.h +++ b/arch/arm/include/asm/hardirq.h @@ -2,16 +2,11 @@ @@ -42,7 +42,7 @@ index b95848ed2bc7..706efafbf972 100644 #endif /* __ASM_HARDIRQ_H */ diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h -index 46d41140df27..1cbcc462b07e 100644 +index 46d41140df27d..1cbcc462b07e8 100644 --- a/arch/arm/include/asm/irq.h +++ b/arch/arm/include/asm/irq.h @@ -31,6 +31,8 @@ void handle_IRQ(unsigned int, struct pt_regs *); @@ -55,5 +55,5 @@ index 46d41140df27..1cbcc462b07e 100644 bool exclude_self); #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch b/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch index 015978430..f99d7b070 100644 --- a/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch +++ b/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch @@ -1,8 +1,8 @@ -From 9d8ad1996dd7a9a4250e55ee988eac5f7e52bd8e Mon Sep 17 00:00:00 2001 +From d158319455a06d9ab08ab6b54b65f7b1073d065b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:13 +0100 Subject: [PATCH 119/323] arm64: irqstat: Get rid of duplicated declaration -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_cpustat_t is exactly the same as the asm-generic one. Define ack_bad_irq so the generic header does not emit the generic version of it. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm64/include/asm/hardirq.h b/arch/arm64/include/asm/hardirq.h -index 5ffa4bacdad3..cbfa7b6f2e09 100644 +index 5ffa4bacdad38..cbfa7b6f2e098 100644 --- a/arch/arm64/include/asm/hardirq.h +++ b/arch/arm64/include/asm/hardirq.h @@ -13,11 +13,8 @@ @@ -36,5 +36,5 @@ index 5ffa4bacdad3..cbfa7b6f2e09 100644 #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch b/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch index 6eddb073f..1f7caccd9 100644 --- a/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch +++ b/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch @@ -1,8 +1,8 @@ -From 9daa9b58eb0e0b5b143d719b4c465e8ee233def0 Mon Sep 17 00:00:00 2001 +From efcd04f10313ca9fe0d0e4556faaaf0fcf88ce1c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:14 +0100 Subject: [PATCH 120/323] asm-generic/irqstat: Add optional __nmi_count member -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add an optional __nmi_count member to irq_cpustat_t so more architectures can use the generic version. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+) diff --git a/include/asm-generic/hardirq.h b/include/asm-generic/hardirq.h -index d14214dfc10b..f5dd99781e3c 100644 +index d14214dfc10b3..f5dd99781e3c6 100644 --- a/include/asm-generic/hardirq.h +++ b/include/asm-generic/hardirq.h @@ -7,6 +7,9 @@ @@ -30,5 +30,5 @@ index d14214dfc10b..f5dd99781e3c 100644 #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch b/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch index a141aaddf..17e0b30ab 100644 --- a/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch +++ b/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch @@ -1,8 +1,8 @@ -From 36f4507e26065641dd4b5e9fab744596a072b3a6 Mon Sep 17 00:00:00 2001 +From 9f5eaabe0b5bb1dbbd324e40e49fafc4ec35db77 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:15 +0100 Subject: [PATCH 121/323] sh: irqstat: Use the generic irq_cpustat_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz SH can now use the generic irq_cpustat_t. Define ack_bad_irq so the generic header does not emit the generic version of it. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/arch/sh/include/asm/hardirq.h b/arch/sh/include/asm/hardirq.h -index edaea3559a23..9fe4495a8e90 100644 +index edaea3559a232..9fe4495a8e90b 100644 --- a/arch/sh/include/asm/hardirq.h +++ b/arch/sh/include/asm/hardirq.h @@ -2,16 +2,10 @@ @@ -41,5 +41,5 @@ index edaea3559a23..9fe4495a8e90 100644 #endif /* __ASM_SH_HARDIRQ_H */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch b/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch index 7918409ff..2b11e4517 100644 --- a/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch +++ b/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch @@ -1,8 +1,8 @@ -From 4d8e6962b3b3f9acc509359631d4396d9b729064 Mon Sep 17 00:00:00 2001 +From 1a8afdb3f2fbc9426eabc77549d2c89f90f0cff5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:16 +0100 Subject: [PATCH 122/323] irqstat: Move declaration into asm-generic/hardirq.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Move the declaration of the irq_cpustat per cpu variable to asm-generic/hardirq.h and remove the now empty linux/irq_cpustat.h header. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> delete mode 100644 include/linux/irq_cpustat.h diff --git a/include/asm-generic/hardirq.h b/include/asm-generic/hardirq.h -index f5dd99781e3c..7317e8258b48 100644 +index f5dd99781e3c6..7317e8258b486 100644 --- a/include/asm-generic/hardirq.h +++ b/include/asm-generic/hardirq.h @@ -12,7 +12,8 @@ typedef struct { @@ -33,7 +33,7 @@ index f5dd99781e3c..7317e8258b48 100644 #ifndef ack_bad_irq diff --git a/include/linux/irq_cpustat.h b/include/linux/irq_cpustat.h deleted file mode 100644 -index 78fb2de3ea4d..000000000000 +index 78fb2de3ea4d7..0000000000000 --- a/include/linux/irq_cpustat.h +++ /dev/null @@ -1,24 +0,0 @@ @@ -62,5 +62,5 @@ index 78fb2de3ea4d..000000000000 - -#endif /* __irq_cpustat_h */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch b/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch index 9e6469ec2..92a26bd92 100644 --- a/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch +++ b/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch @@ -1,8 +1,8 @@ -From b743317882baa4d44bdc55dea99865bf53623193 Mon Sep 17 00:00:00 2001 +From 1f654286ac50aa5942060888969cfe1fdc9dd507 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:17 +0100 Subject: [PATCH 123/323] preempt: Cleanup the macro maze a bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Make the macro maze consistent and prepare it for adding the RT variant for BH accounting. @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 6df63cbe8bb0..69cc8b64aa3a 100644 +index 6df63cbe8bb04..69cc8b64aa3a0 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -77,31 +77,33 @@ @@ -74,5 +74,5 @@ index 6df63cbe8bb0..69cc8b64aa3a 100644 /* * The preempt_count offset after preempt_disable(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch b/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch index fb937d24b..85a13af1b 100644 --- a/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch +++ b/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch @@ -1,8 +1,8 @@ -From e40ca378bfbd05514961947d57b163831bdc3bbe Mon Sep 17 00:00:00 2001 +From f85331252d6a3cbbfd9a8d3e68f109188fcbbd6a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 13 Nov 2020 15:02:18 +0100 Subject: [PATCH 124/323] softirq: Move related code into one section -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To prepare for adding a RT aware variant of softirq serialization and processing move related code into one section so the necessary #ifdeffery @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index 09229ad82209..617009ccd82c 100644 +index 09229ad822096..617009ccd82ce 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -92,6 +92,13 @@ static bool ksoftirqd_running(unsigned long pending) @@ -165,5 +165,5 @@ index 09229ad82209..617009ccd82c 100644 { #ifdef CONFIG_NO_HZ_COMMON -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch b/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch index 4259c009f..81566d5f0 100644 --- a/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch +++ b/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch @@ -1,4 +1,4 @@ -From e8f074aae182d9f11f092885cc1a1dfaedbe8807 Mon Sep 17 00:00:00 2001 +From ce2a39cefa5e011c9a53fe34f4e48be318ee7648 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven <geert+renesas@glider.be> Date: Tue, 24 Nov 2020 14:06:56 +0100 Subject: [PATCH 125/323] sh/irq: Add missing closing parentheses in @@ -6,7 +6,7 @@ Subject: [PATCH 125/323] sh/irq: Add missing closing parentheses in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz arch/sh/kernel/irq.c: In function ‘arch_show_interrupts’: arch/sh/kernel/irq.c:47:58: error: expected ‘)’ before ‘;’ token @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c -index 5addcb2c2da0..ab5f790b0cd2 100644 +index 5addcb2c2da0c..ab5f790b0cd27 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -44,7 +44,7 @@ int arch_show_interrupts(struct seq_file *p, int prec) @@ -36,5 +36,5 @@ index 5addcb2c2da0..ab5f790b0cd2 100644 seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count)); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch b/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch index 3926556d0..66432fa09 100644 --- a/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch +++ b/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch @@ -1,9 +1,9 @@ -From d15b621168c7c422b8e43819c45aa749f3611fa6 Mon Sep 17 00:00:00 2001 +From 8ee47b16ba546c7a83f13ec6e2778f50a4f3e647 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker <frederic@kernel.org> Date: Wed, 2 Dec 2020 12:57:28 +0100 Subject: [PATCH 126/323] sched/cputime: Remove symbol exports from IRQ time accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz account_irq_enter_time() and account_irq_exit_time() are not called from modules. EXPORT_SYMBOL_GPL() can be safely removed from the IRQ @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c -index 579ec3a8c816..710135905deb 100644 +index bd65ff88c5baa..eb98d145db9a6 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -227,7 +227,7 @@ void vtime_flush(struct task_struct *tsk) @@ -49,7 +49,7 @@ index 579ec3a8c816..710135905deb 100644 * Sorted add to a list. List is linear searched until first bigger * element is found. diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index ca0eef7d3852..e03568c5f584 100644 +index ca0eef7d3852b..e03568c5f5842 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -71,7 +71,6 @@ void irqtime_account_irq(struct task_struct *curr) @@ -69,5 +69,5 @@ index ca0eef7d3852..e03568c5f584 100644 void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch b/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch index e4a67c29c..766ad3309 100644 --- a/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch +++ b/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch @@ -1,8 +1,8 @@ -From 433f928a0fd33d67682020e134ac00885b38a2a9 Mon Sep 17 00:00:00 2001 +From 78bd952658e1aa01f1321864062df18b87e29562 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker <frederic@kernel.org> Date: Wed, 2 Dec 2020 12:57:29 +0100 Subject: [PATCH 127/323] s390/vtime: Use the generic IRQ entry accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz s390 has its own version of IRQ entry accounting because it doesn't account the idle time the same way the other architectures do. Only @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 9 insertions(+), 17 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig -index 240277d5626c..628e1e7fe302 100644 +index 240277d5626c8..628e1e7fe3029 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -646,6 +646,12 @@ config HAVE_TIF_NOHZ @@ -53,7 +53,7 @@ index 240277d5626c..628e1e7fe302 100644 bool help diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig -index 878993982e39..2e78071551e7 100644 +index 878993982e39d..2e78071551e7a 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -183,6 +183,7 @@ config S390 @@ -65,7 +65,7 @@ index 878993982e39..2e78071551e7 100644 select IOMMU_SUPPORT if PCI select MODULES_USE_ELF_RELA diff --git a/arch/s390/include/asm/vtime.h b/arch/s390/include/asm/vtime.h -index 3622d4ebc73a..fac6a67988eb 100644 +index 3622d4ebc73aa..fac6a67988eb5 100644 --- a/arch/s390/include/asm/vtime.h +++ b/arch/s390/include/asm/vtime.h @@ -2,7 +2,6 @@ @@ -77,7 +77,7 @@ index 3622d4ebc73a..fac6a67988eb 100644 #endif /* _S390_VTIME_H */ diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c -index 710135905deb..18a97631af43 100644 +index eb98d145db9a6..f4956d7403b3f 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -248,10 +248,6 @@ void vtime_account_kernel(struct task_struct *tsk) @@ -92,7 +92,7 @@ index 710135905deb..18a97631af43 100644 * Sorted add to a list. List is linear searched until first bigger * element is found. diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index e03568c5f584..1d78b835ec8b 100644 +index e03568c5f5842..1d78b835ec8b4 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -417,23 +417,14 @@ void vtime_task_switch(struct task_struct *prev) @@ -122,5 +122,5 @@ index e03568c5f584..1d78b835ec8b 100644 void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev, u64 *ut, u64 *st) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch b/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch index bb1e03d33..2ec448a91 100644 --- a/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch +++ b/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch @@ -1,8 +1,8 @@ -From 749e0a8d4b10240d5834e135f34c47d107aa1442 Mon Sep 17 00:00:00 2001 +From 56fb869479a267eba4536630604a67340aedbcbf Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker <frederic@kernel.org> Date: Wed, 2 Dec 2020 12:57:30 +0100 Subject: [PATCH 128/323] sched/vtime: Consolidate IRQ time accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The 3 architectures implementing CONFIG_VIRT_CPU_ACCOUNTING_NATIVE all have their own version of irq time accounting that dispatch the @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 102 insertions(+), 48 deletions(-) diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c -index 7abc5f37bfaf..733e0e3324b8 100644 +index 7abc5f37bfaf9..733e0e3324b80 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c @@ -138,12 +138,8 @@ void vtime_account_kernel(struct task_struct *tsk) @@ -65,7 +65,7 @@ index 7abc5f37bfaf..733e0e3324b8 100644 static irqreturn_t diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c -index ba9b54d35f57..588e081ca55b 100644 +index ba9b54d35f570..588e081ca55b5 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c @@ -312,12 +312,11 @@ static unsigned long vtime_delta_scaled(struct cpu_accounting_data *acct, @@ -163,11 +163,11 @@ index ba9b54d35f57..588e081ca55b 100644 struct cpu_accounting_data *acct) { diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c -index 18a97631af43..9b3c5978b668 100644 +index f4956d7403b3f..667880f5f8972 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -223,31 +223,50 @@ void vtime_flush(struct task_struct *tsk) - S390_lowcore.avg_steal_timer = avg_steal; + S390_lowcore.avg_steal_timer = avg_steal / 2; } +static u64 vtime_delta(void) @@ -231,7 +231,7 @@ index 18a97631af43..9b3c5978b668 100644 * Sorted add to a list. List is linear searched until first bigger * element is found. diff --git a/include/linux/vtime.h b/include/linux/vtime.h -index 2cdeca062db3..6c9867419615 100644 +index 2cdeca062db32..6c98674196159 100644 --- a/include/linux/vtime.h +++ b/include/linux/vtime.h @@ -83,16 +83,12 @@ static inline void vtime_init_idle(struct task_struct *tsk, int cpu) { } @@ -272,7 +272,7 @@ index 2cdeca062db3..6c9867419615 100644 } diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index 1d78b835ec8b..60129af16ed6 100644 +index 1d78b835ec8b4..60129af16ed69 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -417,13 +417,18 @@ void vtime_task_switch(struct task_struct *prev) @@ -299,5 +299,5 @@ index 1d78b835ec8b..60129af16ed6 100644 void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch b/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch index 838a13489..932a66e2d 100644 --- a/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch +++ b/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch @@ -1,9 +1,9 @@ -From e387d228099075ac3f762ccfbbe29f9ee59678c8 Mon Sep 17 00:00:00 2001 +From 3da34cd95f146e3ad379e9a1e0c29dbaef4ddd8d Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker <frederic@kernel.org> Date: Wed, 2 Dec 2020 12:57:31 +0100 Subject: [PATCH 129/323] irqtime: Move irqtime entry accounting after irq offset incrementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz IRQ time entry is currently accounted before HARDIRQ_OFFSET or SOFTIRQ_OFFSET are incremented. This is convenient to decide to which @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h -index c35b71f8644a..0926e9ca4d85 100644 +index c35b71f8644aa..0926e9ca4d85f 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -32,9 +32,9 @@ static __always_inline void rcu_irq_enter_check_tick(void) @@ -56,7 +56,7 @@ index c35b71f8644a..0926e9ca4d85 100644 } while (0) diff --git a/include/linux/vtime.h b/include/linux/vtime.h -index 6c9867419615..041d6524d144 100644 +index 6c98674196159..041d6524d144a 100644 --- a/include/linux/vtime.h +++ b/include/linux/vtime.h @@ -83,32 +83,46 @@ static inline void vtime_init_idle(struct task_struct *tsk, int cpu) { } @@ -117,7 +117,7 @@ index 6c9867419615..041d6524d144 100644 #endif /* _LINUX_KERNEL_VTIME_H */ diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index 60129af16ed6..02a7932c7383 100644 +index 60129af16ed69..02a7932c73838 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -44,12 +44,13 @@ static void irqtime_account_delta(struct irqtime *irqtime, u64 delta, @@ -174,7 +174,7 @@ index 60129af16ed6..02a7932c7383 100644 } else if (!IS_ENABLED(CONFIG_HAVE_VIRT_CPU_ACCOUNTING_IDLE) && is_idle_task(tsk)) { diff --git a/kernel/softirq.c b/kernel/softirq.c -index 617009ccd82c..b8f42b3ba8ca 100644 +index 617009ccd82ce..b8f42b3ba8ca1 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -315,10 +315,10 @@ asmlinkage __visible void __softirq_entry __do_softirq(void) @@ -209,5 +209,5 @@ index 617009ccd82c..b8f42b3ba8ca 100644 if (!in_interrupt() && local_softirq_pending()) invoke_softirq(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch b/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch index 304fef0fa..1eb66c5d7 100644 --- a/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch +++ b/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch @@ -1,8 +1,8 @@ -From 5e2b7533340eb96a841068c309aac4985bd8180c Mon Sep 17 00:00:00 2001 +From f15cefe367204257380b0e341c5143eed2786b5e Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker <frederic@kernel.org> Date: Wed, 2 Dec 2020 12:57:32 +0100 Subject: [PATCH 130/323] irq: Call tick_irq_enter() inside HARDIRQ_OFFSET -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Now that account_hardirq_enter() is called after HARDIRQ_OFFSET has been incremented, there is nothing left that prevents us from also @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index b8f42b3ba8ca..d5bfd5e661fc 100644 +index b8f42b3ba8ca1..d5bfd5e661fcd 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -377,16 +377,12 @@ asmlinkage __visible void __softirq_entry __do_softirq(void) @@ -47,5 +47,5 @@ index b8f42b3ba8ca..d5bfd5e661fc 100644 /** -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch b/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch index 19d4f6615..27baa45ac 100644 --- a/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch +++ b/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch @@ -1,9 +1,9 @@ -From d6a969bae816bcd5ac549038a4582d300ede6b99 Mon Sep 17 00:00:00 2001 +From 0063bf11b9390ab711451a2951af4605394208bf Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 15 Feb 2021 18:44:12 +0100 Subject: [PATCH 131/323] smp: Wake ksoftirqd on PREEMPT_RT instead do_softirq(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The softirq implementation on PREEMPT_RT does not provide do_softirq(). The other user of do_softirq() is replaced with a local_bh_disable() @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/smp.c b/kernel/smp.c -index b0684b4c111e..4aaf11aa729c 100644 +index b0684b4c111e9..4aaf11aa729cf 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -450,8 +450,18 @@ void flush_smp_call_function_from_idle(void) @@ -44,5 +44,5 @@ index b0684b4c111e..4aaf11aa729c 100644 local_irq_restore(flags); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch b/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch index 8908254e0..6101866d1 100644 --- a/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch +++ b/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch @@ -1,9 +1,9 @@ -From 8127bb05947dbb12f9537095932d6a7a7a07d09e Mon Sep 17 00:00:00 2001 +From 21e3035d835cb0443eedc30da35daa6a511c8c21 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:42:04 +0100 Subject: [PATCH 132/323] tasklets: Replace barrier() with cpu_relax() in tasklet_unlock_wait() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A barrier() in a tight loop which waits for something to happen on a remote CPU is a pointless exercise. Replace it with cpu_relax() which allows HT @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 0652b4858ba6..fad0eb9d42ab 100644 +index 0652b4858ba62..fad0eb9d42aba 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -672,7 +672,8 @@ static inline void tasklet_unlock(struct tasklet_struct *t) @@ -31,5 +31,5 @@ index 0652b4858ba6..fad0eb9d42ab 100644 #else #define tasklet_trylock(t) 1 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch b/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch index 57ec50a2e..1d3eb53c5 100644 --- a/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch +++ b/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch @@ -1,8 +1,8 @@ -From fa31367f235c42f78b2375d5ade6130a3b296e22 Mon Sep 17 00:00:00 2001 +From 72ab0a7726c4540a4b3aab231959f43b620b118c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:42:05 +0100 Subject: [PATCH 133/323] tasklets: Use static inlines for stub implementations -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Inlines exist for a reason. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index fad0eb9d42ab..75c4380afe9b 100644 +index fad0eb9d42aba..75c4380afe9b5 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -676,9 +676,9 @@ static inline void tasklet_unlock_wait(struct tasklet_struct *t) @@ -31,5 +31,5 @@ index fad0eb9d42ab..75c4380afe9b 100644 extern void __tasklet_schedule(struct tasklet_struct *t); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch b/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch index 2f6fb1ab9..e6fbe7840 100644 --- a/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch +++ b/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch @@ -1,8 +1,8 @@ -From 35c080a5db30acfdfa20ca84bf9d0482e6ec1409 Mon Sep 17 00:00:00 2001 +From bc93dfe7232be5a97b5e364007fbdc33f14bc9fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:42:06 +0100 Subject: [PATCH 134/323] tasklets: Provide tasklet_disable_in_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replacing the spin wait loops in tasklet_unlock_wait() with wait_var_event() is not possible as a handful of tasklet_disable() @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 22 insertions(+) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 75c4380afe9b..abba3eff4f86 100644 +index 75c4380afe9b5..abba3eff4f86a 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -675,10 +675,21 @@ static inline void tasklet_unlock_wait(struct tasklet_struct *t) @@ -64,5 +64,5 @@ index 75c4380afe9b..abba3eff4f86 100644 { tasklet_disable_nosync(t); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch b/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch index 7e32a2a7c..ef4368881 100644 --- a/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch +++ b/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch @@ -1,9 +1,9 @@ -From 90d88360f539e57921ec9675603c700c351a0078 Mon Sep 17 00:00:00 2001 +From 2f4631e0b8131544cc827aa0a517fc0b8fba79f6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:42:07 +0100 Subject: [PATCH 135/323] tasklets: Use spin wait in tasklet_disable() temporarily -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To ease the transition use spin waiting in tasklet_disable() until all usage sites from atomic context have been cleaned up. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index abba3eff4f86..fe085c46f210 100644 +index abba3eff4f86a..fe085c46f2107 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -728,7 +728,8 @@ static inline void tasklet_disable_in_atomic(struct tasklet_struct *t) @@ -29,5 +29,5 @@ index abba3eff4f86..fe085c46f210 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch b/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch index c244c4010..06678b89f 100644 --- a/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch +++ b/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch @@ -1,8 +1,8 @@ -From 1e2be8ee6d91630326a3a3bc32925205b41d73a5 Mon Sep 17 00:00:00 2001 +From f90cb17ba85876d41e375928685a9190586dbd65 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 9 Mar 2021 09:42:08 +0100 Subject: [PATCH 136/323] tasklets: Replace spin wait in tasklet_unlock_wait() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_unlock_wait() spin waits for TASKLET_STATE_RUN to be cleared. This is wasting CPU cycles in a tight loop which is especially painful in a @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index fe085c46f210..c4fafbfa28a6 100644 +index fe085c46f2107..c4fafbfa28a6f 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -664,17 +664,8 @@ static inline int tasklet_trylock(struct tasklet_struct *t) @@ -50,7 +50,7 @@ index fe085c46f210..c4fafbfa28a6 100644 /* * Do not use in new code. Waiting for tasklets from atomic contexts is diff --git a/kernel/softirq.c b/kernel/softirq.c -index d5bfd5e661fc..06bca024ce45 100644 +index d5bfd5e661fcd..06bca024ce45b 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -25,6 +25,7 @@ @@ -86,5 +86,5 @@ index d5bfd5e661fc..06bca024ce45 100644 { int cpu; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch b/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch index 619e62b2a..eda08ff17 100644 --- a/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch +++ b/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch @@ -1,8 +1,8 @@ -From cc2fc16258410420e97a4873f760cffabcff49b0 Mon Sep 17 00:00:00 2001 +From 6f587dabc52353c69ab92df7f065913cb62ec952 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 9 Mar 2021 09:42:09 +0100 Subject: [PATCH 137/323] tasklets: Replace spin wait in tasklet_kill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_kill() spin waits for TASKLET_STATE_SCHED to be cleared invoking yield() from inside the loop. yield() is an ill defined mechanism and the @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index 06bca024ce45..ecc3ac4091c8 100644 +index 06bca024ce45b..ecc3ac4091c8c 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -530,6 +530,16 @@ void __tasklet_hi_schedule(struct tasklet_struct *t) @@ -70,5 +70,5 @@ index 06bca024ce45..ecc3ac4091c8 100644 EXPORT_SYMBOL(tasklet_kill); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch b/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch index 9f446b54f..27fe09e45 100644 --- a/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch +++ b/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch @@ -1,9 +1,9 @@ -From 42114155db1a5548923ac48a09b3f228b29d3b09 Mon Sep 17 00:00:00 2001 +From 12db21385fbc33222708c8d540380a06c6b97a05 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:42:10 +0100 Subject: [PATCH 138/323] tasklets: Prevent tasklet_unlock_spin_wait() deadlock on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_unlock_spin_wait() spin waits for the TASKLET_STATE_SCHED bit in the tasklet state to be cleared. This works on !RT nicely because the @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index c4fafbfa28a6..6eae70ec3a17 100644 +index c4fafbfa28a6f..6eae70ec3a178 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -658,7 +658,7 @@ enum @@ -59,7 +59,7 @@ index c4fafbfa28a6..6eae70ec3a17 100644 static inline int tasklet_trylock(struct tasklet_struct *t) { return 1; } static inline void tasklet_unlock(struct tasklet_struct *t) { } diff --git a/kernel/softirq.c b/kernel/softirq.c -index ecc3ac4091c8..fcb201ceed71 100644 +index ecc3ac4091c8c..fcb201ceed712 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -614,6 +614,32 @@ void tasklet_init(struct tasklet_struct *t, @@ -105,5 +105,5 @@ index ecc3ac4091c8..fcb201ceed71 100644 { smp_mb__before_atomic(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch b/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch index 927a8ce66..e1c1c07c4 100644 --- a/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch +++ b/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch @@ -1,8 +1,8 @@ -From 8aad52579188d8ae11265d495209d51029482f38 Mon Sep 17 00:00:00 2001 +From 6d8ca45dc68e47f1a12fc5579eb9acda9d4ebecf Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Mar 2021 09:42:11 +0100 Subject: [PATCH 139/323] net: jme: Replace link-change tasklet with work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The link change tasklet disables the tasklets for tx/rx processing while upating hw parameters and then enables the tasklets again. @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c -index e9efe074edc1..f1b9284e0bea 100644 +index e9efe074edc11..f1b9284e0bea8 100644 --- a/drivers/net/ethernet/jme.c +++ b/drivers/net/ethernet/jme.c @@ -1265,9 +1265,9 @@ jme_stop_shutdown_timer(struct jme_adapter *jme) @@ -71,7 +71,7 @@ index e9efe074edc1..f1b9284e0bea 100644 jme->reg_ghc = 0; diff --git a/drivers/net/ethernet/jme.h b/drivers/net/ethernet/jme.h -index a2c3b00d939d..2af76329b4a2 100644 +index a2c3b00d939d0..2af76329b4a27 100644 --- a/drivers/net/ethernet/jme.h +++ b/drivers/net/ethernet/jme.h @@ -411,7 +411,7 @@ struct jme_adapter { @@ -84,5 +84,5 @@ index a2c3b00d939d..2af76329b4a2 100644 unsigned long flags; u32 reg_txcs; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch b/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch index cc8eade7d..a7af85a5b 100644 --- a/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch +++ b/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch @@ -1,8 +1,8 @@ -From b8d19bf463893a07bab9120bd628798515f3e6e0 Mon Sep 17 00:00:00 2001 +From edacf0883d169467343cf3ab923196c22d932fb1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Mar 2021 09:42:12 +0100 Subject: [PATCH 140/323] net: sundance: Use tasklet_disable_in_atomic(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_disable() is used in the timer callback. This might be distangled, but without access to the hardware that's a bit risky. @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c -index e3a8858915b3..df0eab479d51 100644 +index e3a8858915b37..df0eab479d512 100644 --- a/drivers/net/ethernet/dlink/sundance.c +++ b/drivers/net/ethernet/dlink/sundance.c @@ -963,7 +963,7 @@ static void tx_timeout(struct net_device *dev, unsigned int txqueue) @@ -35,5 +35,5 @@ index e3a8858915b3..df0eab479d51 100644 printk(KERN_WARNING "%s: Transmit timed out, TxStatus %2.2x " "TxFrameId %2.2x," -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch b/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch index 8e80fa205..51a8d0c0d 100644 --- a/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch +++ b/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch @@ -1,8 +1,8 @@ -From 3e2ecd3c09d77800b53b99090c6b6372af1922e7 Mon Sep 17 00:00:00 2001 +From 1e5a8b66c84ef51982c756b233486daa6c671865 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Mar 2021 09:42:13 +0100 Subject: [PATCH 141/323] ath9k: Use tasklet_disable_in_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz All callers of ath9k_beacon_ensure_primary_slot() are preemptible / acquire a mutex except for this callchain: @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c -index 71e2ada86793..72e2e71aac0e 100644 +index 71e2ada86793f..72e2e71aac0e6 100644 --- a/drivers/net/wireless/ath/ath9k/beacon.c +++ b/drivers/net/wireless/ath/ath9k/beacon.c @@ -251,7 +251,7 @@ void ath9k_beacon_ensure_primary_slot(struct ath_softc *sc) @@ -44,5 +44,5 @@ index 71e2ada86793..72e2e71aac0e 100644 /* Find first taken slot. */ for (slot = 0; slot < ATH_BCBUF; slot++) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch b/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch index 45236c9da..29faa788d 100644 --- a/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch +++ b/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch @@ -1,9 +1,9 @@ -From f8cac7fb539abd4d961c942dde93a04956f9615d Mon Sep 17 00:00:00 2001 +From 041b4c87ac61a11ebe5fbd5b2fa00a341e9b4297 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Mar 2021 09:42:14 +0100 Subject: [PATCH 142/323] atm: eni: Use tasklet_disable_in_atomic() in the send() callback -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The atmdev_ops::send callback which calls tasklet_disable() is invoked with bottom halfs disabled from net_device_ops::ndo_start_xmit(). All other @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c -index 9fcc49be499f..a31ffe16e626 100644 +index 9fcc49be499f1..a31ffe16e626f 100644 --- a/drivers/atm/eni.c +++ b/drivers/atm/eni.c @@ -2056,7 +2056,7 @@ static int eni_send(struct atm_vcc *vcc,struct sk_buff *skb) @@ -38,5 +38,5 @@ index 9fcc49be499f..a31ffe16e626 100644 tasklet_enable(&ENI_DEV(vcc->dev)->task); if (res == enq_ok) return 0; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch b/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch index e4c764804..140cfc16d 100644 --- a/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch +++ b/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch @@ -1,8 +1,8 @@ -From 267b1086437ac0cca8ca59197e5cc8cbe8fc6a83 Mon Sep 17 00:00:00 2001 +From df38760868c0b1e084bde7aad999b7d0a6caf357 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Mar 2021 09:42:15 +0100 Subject: [PATCH 143/323] PCI: hv: Use tasklet_disable_in_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The hv_compose_msi_msg() callback in irq_chip::irq_compose_msi_msg is invoked via irq_chip_compose_msi_msg(), which itself is always invoked from @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c -index 2d6c77dcc815..7daba964f54e 100644 +index 2d6c77dcc815c..7daba964f54ed 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c @@ -1518,7 +1518,7 @@ static void hv_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) @@ -42,5 +42,5 @@ index 2d6c77dcc815..7daba964f54e 100644 /* * Since this function is called with IRQ locks held, can't -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch b/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch index 184d80276..d3b8b1600 100644 --- a/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch +++ b/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch @@ -1,9 +1,9 @@ -From 090a450216e555382abe0be8e2941ecfcc527c44 Mon Sep 17 00:00:00 2001 +From a02a1932076865681e3e14ea1124ef661c0563a6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 9 Mar 2021 09:42:16 +0100 Subject: [PATCH 144/323] firewire: ohci: Use tasklet_disable_in_atomic() where required -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_disable() is invoked in several places. Some of them are in atomic context which prevents a conversion of tasklet_disable() to a sleepable @@ -35,10 +35,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c -index 9811c40956e5..17c9d825188b 100644 +index 45d19cc0aeac0..667ff40f39353 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c -@@ -2545,7 +2545,7 @@ static int ohci_cancel_packet(struct fw_card *card, struct fw_packet *packet) +@@ -2593,7 +2593,7 @@ static int ohci_cancel_packet(struct fw_card *card, struct fw_packet *packet) struct driver_data *driver_data = packet->driver_data; int ret = -ENOENT; @@ -47,7 +47,7 @@ index 9811c40956e5..17c9d825188b 100644 if (packet->ack != 0) goto out; -@@ -3465,7 +3465,7 @@ static int ohci_flush_iso_completions(struct fw_iso_context *base) +@@ -3513,7 +3513,7 @@ static int ohci_flush_iso_completions(struct fw_iso_context *base) struct iso_context *ctx = container_of(base, struct iso_context, base); int ret = 0; @@ -57,5 +57,5 @@ index 9811c40956e5..17c9d825188b 100644 if (!test_and_set_bit_lock(0, &ctx->flushing_completions)) { context_tasklet((unsigned long)&ctx->context); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch b/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch index 5b9765685..020f09e0e 100644 --- a/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch +++ b/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch @@ -1,9 +1,9 @@ -From 24fc43821f54c5f95095fb5154422b54ba2777e2 Mon Sep 17 00:00:00 2001 +From 23a31c3df00faa9e53348150b0eae33153dd3a11 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:42:17 +0100 Subject: [PATCH 145/323] tasklets: Switch tasklet_disable() to the sleep wait variant -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz -- NOT FOR IMMEDIATE MERGING -- @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 6eae70ec3a17..a1c64d969532 100644 +index 6eae70ec3a178..a1c64d969532d 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -711,8 +711,7 @@ static inline void tasklet_disable_in_atomic(struct tasklet_struct *t) @@ -31,5 +31,5 @@ index 6eae70ec3a17..a1c64d969532 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch b/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch index c4bcb9bd1..a137d012d 100644 --- a/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch +++ b/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch @@ -1,8 +1,8 @@ -From a69df864da6d43ae3de6a4d995eaebca51a582b4 Mon Sep 17 00:00:00 2001 +From 9ff911822019a34054ff84adac3fb29493132ef6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:55:53 +0100 Subject: [PATCH 146/323] softirq: Add RT specific softirq accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT requires the softirq processing and local bottomhalf disabled regions to be preemptible. Using the normal preempt count based serialization is @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h -index 0926e9ca4d85..76878b357ffa 100644 +index 0926e9ca4d85f..76878b357ffa9 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -6,6 +6,7 @@ @@ -40,7 +40,7 @@ index 0926e9ca4d85..76878b357ffa 100644 #include <asm/hardirq.h> diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 69cc8b64aa3a..9881eac0698f 100644 +index 69cc8b64aa3a0..9881eac0698fd 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -79,7 +79,11 @@ @@ -57,7 +57,7 @@ index 69cc8b64aa3a..9881eac0698f 100644 /* diff --git a/include/linux/sched.h b/include/linux/sched.h -index 82de1ab42497..d31da4867bb2 100644 +index 82de1ab424976..d31da4867bb28 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1046,6 +1046,9 @@ struct task_struct { @@ -71,5 +71,5 @@ index 82de1ab42497..d31da4867bb2 100644 #ifdef CONFIG_LOCKDEP # define MAX_LOCK_DEPTH 48UL -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch b/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch index 576b5391b..b90ebcabb 100644 --- a/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch +++ b/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch @@ -1,8 +1,8 @@ -From a4b2fa58f0b8dabae3f30be80fe317da32c5b121 Mon Sep 17 00:00:00 2001 +From 154fd3270e388ac08741e499a2ed6a776060199d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:55:54 +0100 Subject: [PATCH 147/323] irqtime: Make accounting correct on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz vtime_account_irq and irqtime_account_irq() base checks on preempt_count() which fails on RT because preempt_count() does not contain the softirq @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index 02a7932c7383..02a5aa60fe7e 100644 +index 02a7932c73838..02a5aa60fe7e5 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -60,7 +60,7 @@ void irqtime_account_irq(struct task_struct *curr, unsigned int offset) @@ -50,5 +50,5 @@ index 02a7932c7383..02a5aa60fe7e 100644 if (pc & HARDIRQ_OFFSET) { vtime_account_hardirq(tsk); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch b/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch index e08794144..9f323c57d 100644 --- a/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch +++ b/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch @@ -1,8 +1,8 @@ -From 7d59f358f639cc9e535a4049d663d9347aef6380 Mon Sep 17 00:00:00 2001 +From 83b7f1f10d2ccb658229fd940cffb3d0ea8fb46d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:55:55 +0100 Subject: [PATCH 148/323] softirq: Move various protections into inline helpers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To allow reuse of the bulk of softirq processing code for RT and to avoid #ifdeffery all over the place, split protections for various code sections @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index fcb201ceed71..87fac6ac0c32 100644 +index fcb201ceed712..87fac6ac0c32e 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -205,6 +205,32 @@ void __local_bh_enable_ip(unsigned long ip, unsigned int cnt) @@ -104,5 +104,5 @@ index fcb201ceed71..87fac6ac0c32 100644 #ifdef CONFIG_HOTPLUG_CPU -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch b/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch index 22a88a79c..404f1b8b6 100644 --- a/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch +++ b/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch @@ -1,8 +1,8 @@ -From d2c5f9de8094418b5ebade0ff54219371ec0a5ef Mon Sep 17 00:00:00 2001 +From 422a657038cfb49e96babc056a8f7bfcd514e387 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:55:56 +0100 Subject: [PATCH 149/323] softirq: Make softirq control and processing RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Provide a local lock based serialization for soft interrupts on RT which allows the local_bh_disabled() sections and servicing soft interrupts to be @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 182 insertions(+), 8 deletions(-) diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h -index a19519f4241d..e4dd613a070e 100644 +index a19519f4241dc..e4dd613a070e3 100644 --- a/include/linux/bottom_half.h +++ b/include/linux/bottom_half.h @@ -4,7 +4,7 @@ @@ -34,7 +34,7 @@ index a19519f4241d..e4dd613a070e 100644 #else static __always_inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt) diff --git a/kernel/softirq.c b/kernel/softirq.c -index 87fac6ac0c32..ed13f6097de8 100644 +index 87fac6ac0c32e..ed13f6097de89 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -13,6 +13,7 @@ @@ -263,5 +263,5 @@ index 87fac6ac0c32..ed13f6097de8 100644 pending = local_softirq_pending(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch b/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch index 179b20d7b..867299f6d 100644 --- a/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch +++ b/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch @@ -1,9 +1,9 @@ -From 8f4c53c804fbc30a305bf13376f5748a55ec4944 Mon Sep 17 00:00:00 2001 +From 2343898ed68bc6b1b29e54803e4ceee12b9d3075 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:55:57 +0100 Subject: [PATCH 150/323] tick/sched: Prevent false positive softirq pending warnings on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On RT a task which has soft interrupts disabled can block on a lock and schedule out to idle while soft interrupts are pending. This triggers the @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h -index e4dd613a070e..eed86eb0a1de 100644 +index e4dd613a070e3..eed86eb0a1dea 100644 --- a/include/linux/bottom_half.h +++ b/include/linux/bottom_half.h @@ -32,4 +32,10 @@ static inline void local_bh_enable(void) @@ -41,7 +41,7 @@ index e4dd613a070e..eed86eb0a1de 100644 + #endif /* _LINUX_BH_H */ diff --git a/kernel/softirq.c b/kernel/softirq.c -index ed13f6097de8..c9adc5c46248 100644 +index ed13f6097de89..c9adc5c462485 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -139,6 +139,21 @@ static DEFINE_PER_CPU(struct softirq_ctrl, softirq_ctrl) = { @@ -67,7 +67,7 @@ index ed13f6097de8..c9adc5c46248 100644 { unsigned long flags; diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index fc79b04b5947..fb10be8e5e92 100644 +index d1693c26958fc..0dc1460ced748 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -982,7 +982,7 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) @@ -80,5 +80,5 @@ index fc79b04b5947..fb10be8e5e92 100644 pr_warn("NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #%02x!!!\n", (unsigned int) local_softirq_pending()); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch b/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch index 14d81c8a1..ff6bd75bc 100644 --- a/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch +++ b/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch @@ -1,8 +1,8 @@ -From cce7be95962e51a5270439e8c31500ed38123c49 Mon Sep 17 00:00:00 2001 +From 62ec5bc05388bf46267a156a33011378a09580b2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 9 Mar 2021 09:55:58 +0100 Subject: [PATCH 151/323] rcu: Prevent false positive softirq warning on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Soft interrupt disabled sections can legitimately be preempted or schedule out when blocking on a lock on RT enabled kernels so the RCU preempt check @@ -17,10 +17,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h -index ef8d56b18da6..bb9681309e0d 100644 +index 9db6710e6ee7b..a276bb69ee59c 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h -@@ -338,7 +338,8 @@ static inline void rcu_preempt_sleep_check(void) { } +@@ -381,7 +381,8 @@ static inline void rcu_preempt_sleep_check(void) { } #define rcu_sleep_check() \ do { \ rcu_preempt_sleep_check(); \ @@ -31,5 +31,5 @@ index ef8d56b18da6..bb9681309e0d 100644 RCU_LOCKDEP_WARN(lock_is_held(&rcu_sched_lock_map), \ "Illegal context switch in RCU-sched read-side critical section"); \ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch b/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch index 45fec4e55..d8aa00bf4 100644 --- a/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch +++ b/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch @@ -1,9 +1,9 @@ -From a3a5c955eb9767e09f62d7d4c1af2f8f5b0fe565 Mon Sep 17 00:00:00 2001 +From 5f89ed192e42f5576ae3733f420526ee682db0a3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 2 Feb 2021 18:01:03 +0100 Subject: [PATCH 152/323] chelsio: cxgb: Replace the workqueue with threaded interrupt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The external interrupt (F_PL_INTR_EXT) needs to be handled in a process context and this is accomplished by utilizing a workqueue. @@ -30,7 +30,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 55 insertions(+), 54 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb/common.h b/drivers/net/ethernet/chelsio/cxgb/common.h -index 6475060649e9..e999a9b9fe6c 100644 +index 6475060649e90..e999a9b9fe6cc 100644 --- a/drivers/net/ethernet/chelsio/cxgb/common.h +++ b/drivers/net/ethernet/chelsio/cxgb/common.h @@ -238,7 +238,6 @@ struct adapter { @@ -60,7 +60,7 @@ index 6475060649e9..e999a9b9fe6c 100644 int t1_link_start(struct cphy *phy, struct cmac *mac, struct link_config *lc); const struct board_info *t1_get_board_info(unsigned int board_id); diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c -index c6db85fe1629..737c24136e2f 100644 +index c6db85fe16291..737c24136e2fe 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c @@ -211,9 +211,10 @@ static int cxgb_up(struct adapter *adapter) @@ -129,7 +129,7 @@ index c6db85fe1629..737c24136e2f 100644 mac_stats_task); diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c -index 2d9c2b5a690a..5aef9ae1ecfe 100644 +index 2d9c2b5a690a3..5aef9ae1ecfed 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c @@ -1619,11 +1619,38 @@ int t1_poll(struct napi_struct *napi, int budget) @@ -186,7 +186,7 @@ index 2d9c2b5a690a..5aef9ae1ecfe 100644 /* diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.h b/drivers/net/ethernet/chelsio/cxgb/sge.h -index a1ba591b3431..76516d2a8aa9 100644 +index a1ba591b34312..76516d2a8aa9e 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.h +++ b/drivers/net/ethernet/chelsio/cxgb/sge.h @@ -74,6 +74,7 @@ struct sge *t1_sge_create(struct adapter *, struct sge_params *); @@ -198,7 +198,7 @@ index a1ba591b3431..76516d2a8aa9 100644 int t1_poll(struct napi_struct *, int); diff --git a/drivers/net/ethernet/chelsio/cxgb/subr.c b/drivers/net/ethernet/chelsio/cxgb/subr.c -index ea0f8741d7cf..d90ad07ff1a4 100644 +index ea0f8741d7cfd..d90ad07ff1a40 100644 --- a/drivers/net/ethernet/chelsio/cxgb/subr.c +++ b/drivers/net/ethernet/chelsio/cxgb/subr.c @@ -210,7 +210,7 @@ static int fpga_phy_intr_handler(adapter_t *adapter) @@ -267,5 +267,5 @@ index ea0f8741d7cf..d90ad07ff1a4 100644 #ifdef CONFIG_CHELSIO_T1_1G if (!t1_is_asic(adapter)) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch b/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch index 910927009..4e778e2c6 100644 --- a/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch +++ b/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch @@ -1,9 +1,9 @@ -From 676e60d5a1de49b6188285212b7655ccd463f984 Mon Sep 17 00:00:00 2001 +From a628418f648a8b52a4da45540a9199fdcbf6e8ee Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 2 Feb 2021 18:01:04 +0100 Subject: [PATCH 153/323] chelsio: cxgb: Disable the card on error in threaded interrupt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz t1_fatal_err() is invoked from the interrupt handler. The bad part is that it invokes (via t1_sge_stop()) del_timer_sync() and tasklet_kill(). @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 44 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb/common.h b/drivers/net/ethernet/chelsio/cxgb/common.h -index e999a9b9fe6c..0321be77366c 100644 +index e999a9b9fe6cc..0321be77366c4 100644 --- a/drivers/net/ethernet/chelsio/cxgb/common.h +++ b/drivers/net/ethernet/chelsio/cxgb/common.h @@ -346,7 +346,6 @@ int t1_get_board_rev(adapter_t *adapter, const struct board_info *bi, @@ -38,7 +38,7 @@ index e999a9b9fe6c..0321be77366c 100644 void t1_link_negotiated(adapter_t *adapter, int port_id, int link_stat, int speed, int duplex, int pause); diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c -index 737c24136e2f..2a28a38da036 100644 +index 737c24136e2fe..2a28a38da036c 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c @@ -917,16 +917,6 @@ static void mac_stats_task(struct work_struct *work) @@ -59,7 +59,7 @@ index 737c24136e2f..2a28a38da036 100644 .ndo_open = cxgb_open, .ndo_stop = cxgb_close, diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c -index 5aef9ae1ecfe..cda01f22c71c 100644 +index 5aef9ae1ecfed..cda01f22c71c8 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c @@ -940,10 +940,11 @@ void t1_sge_intr_clear(struct sge *sge) @@ -109,7 +109,7 @@ index 5aef9ae1ecfe..cda01f22c71c 100644 adapter->slow_intr_mask |= F_PL_INTR_EXT; diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.h b/drivers/net/ethernet/chelsio/cxgb/sge.h -index 76516d2a8aa9..716705b96f26 100644 +index 76516d2a8aa9e..716705b96f265 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.h +++ b/drivers/net/ethernet/chelsio/cxgb/sge.h @@ -82,7 +82,7 @@ netdev_tx_t t1_start_xmit(struct sk_buff *skb, struct net_device *dev); @@ -122,7 +122,7 @@ index 76516d2a8aa9..716705b96f26 100644 void t1_sge_intr_disable(struct sge *); void t1_sge_intr_clear(struct sge *); diff --git a/drivers/net/ethernet/chelsio/cxgb/subr.c b/drivers/net/ethernet/chelsio/cxgb/subr.c -index d90ad07ff1a4..310add28fcf5 100644 +index d90ad07ff1a40..310add28fcf59 100644 --- a/drivers/net/ethernet/chelsio/cxgb/subr.c +++ b/drivers/net/ethernet/chelsio/cxgb/subr.c @@ -170,7 +170,7 @@ void t1_link_changed(adapter_t *adapter, int port_id) @@ -211,5 +211,5 @@ index d90ad07ff1a4..310add28fcf5 100644 /* Wake the threaded interrupt to handle external interrupts as * we require a process context. We disable EXT interrupts in -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch b/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch index 1cde7fb8e..7f28e8763 100644 --- a/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch +++ b/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch @@ -1,8 +1,8 @@ -From 8ca0011428a338becf8c390a74dba375610d693f Mon Sep 17 00:00:00 2001 +From 9f47015530b731cdc3dac128aa0169eb5e437fc9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 27 Oct 2020 11:09:50 +0100 Subject: [PATCH 154/323] x86/fpu: Simplify fpregs_[un]lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no point in disabling preemption and then disabling bottom halfs. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h -index 8b9bfaad6e66..5174c0a640ef 100644 +index 8b9bfaad6e662..5174c0a640ef3 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -40,17 +40,18 @@ static inline void kernel_fpu_begin(void) @@ -43,5 +43,5 @@ index 8b9bfaad6e66..5174c0a640ef 100644 #ifdef CONFIG_X86_DEBUG_FPU -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch b/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch index f28c1aace..d679b3bcd 100644 --- a/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch +++ b/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch @@ -1,8 +1,8 @@ -From f6a993a6144299a8693fa151d042c3997238cd54 Mon Sep 17 00:00:00 2001 +From ebfd3ddaa3c75b0a3e840304bdb3def7321aaeab Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 27 Oct 2020 11:09:51 +0100 Subject: [PATCH 155/323] x86/fpu: Make kernel FPU protection RT friendly -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Non RT kernels need to protect FPU against preemption and bottom half processing. This is achieved by disabling bottom halfs via @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h -index 5174c0a640ef..ad2fee785310 100644 +index 5174c0a640ef3..ad2fee7853108 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -43,15 +43,29 @@ static inline void kernel_fpu_begin(void) @@ -60,5 +60,5 @@ index 5174c0a640ef..ad2fee785310 100644 #ifdef CONFIG_X86_DEBUG_FPU -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch b/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch index a39953384..f746db8dc 100644 --- a/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch +++ b/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch @@ -1,8 +1,8 @@ -From 46072fa492b76df5aaf47fea23d280f72d7100a8 Mon Sep 17 00:00:00 2001 +From 8d35ddab18aec09ea7cba348a32913c9c9463342 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 29 Sep 2020 15:21:17 +0200 Subject: [PATCH 156/323] locking/rtmutex: Remove cruft -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Most of this is around since the very beginning. I'm not sure if this was used while the rtmutex-deadlock-tester was around but today it seems @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 6fd615a0eea9..16f974a22f51 100644 +index 6fd615a0eea94..16f974a22f516 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -32,10 +32,7 @@ struct rt_mutex { @@ -51,7 +51,7 @@ index 6fd615a0eea9..16f974a22f51 100644 # define rt_mutex_init(mutex) \ do { \ diff --git a/kernel/locking/rtmutex-debug.c b/kernel/locking/rtmutex-debug.c -index 36e69100e8e0..7e411b946d4c 100644 +index 36e69100e8e06..7e411b946d4c3 100644 --- a/kernel/locking/rtmutex-debug.c +++ b/kernel/locking/rtmutex-debug.c @@ -42,12 +42,7 @@ static void printk_task(struct task_struct *p) @@ -69,7 +69,7 @@ index 36e69100e8e0..7e411b946d4c 100644 if (print_owner && rt_mutex_owner(lock)) { printk(".. ->owner: %p\n", lock->owner); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index f00dd928fc71..4792fc7abe7d 100644 +index f00dd928fc711..4792fc7abe7dd 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1655,9 +1655,6 @@ void __sched rt_mutex_futex_unlock(struct rt_mutex *lock) @@ -83,7 +83,7 @@ index f00dd928fc71..4792fc7abe7d 100644 EXPORT_SYMBOL_GPL(rt_mutex_destroy); diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index ca6fb489007b..e6913103d7ff 100644 +index ca6fb489007b6..e6913103d7ff7 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -30,7 +30,6 @@ struct rt_mutex_waiter { @@ -95,5 +95,5 @@ index ca6fb489007b..e6913103d7ff 100644 struct rt_mutex *deadlock_lock; #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch b/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch index 6f0878b80..95321be38 100644 --- a/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch +++ b/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch @@ -1,9 +1,9 @@ -From e9b488ea6cb82e796f8d331b037cb7de76d15657 Mon Sep 17 00:00:00 2001 +From 8f5236d794db1770040f01501f471b8e2e842e4b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 29 Sep 2020 16:05:11 +0200 Subject: [PATCH 157/323] locking/rtmutex: Remove output from deadlock detector. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In commit f5694788ad8da ("rt_mutex: Add lockdep annotations") @@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 6 files changed, 135 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 16f974a22f51..88a0ba806066 100644 +index 16f974a22f516..88a0ba806066b 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -31,9 +31,6 @@ struct rt_mutex { @@ -73,7 +73,7 @@ index 16f974a22f51..88a0ba806066 100644 #define DEFINE_RT_MUTEX(mutexname) \ diff --git a/kernel/locking/rtmutex-debug.c b/kernel/locking/rtmutex-debug.c -index 7e411b946d4c..fb150100335f 100644 +index 7e411b946d4c3..fb150100335fc 100644 --- a/kernel/locking/rtmutex-debug.c +++ b/kernel/locking/rtmutex-debug.c @@ -32,105 +32,12 @@ @@ -207,7 +207,7 @@ index 7e411b946d4c..fb150100335f 100644 } - diff --git a/kernel/locking/rtmutex-debug.h b/kernel/locking/rtmutex-debug.h -index fc549713bba3..659e93e256c6 100644 +index fc549713bba3f..659e93e256c67 100644 --- a/kernel/locking/rtmutex-debug.h +++ b/kernel/locking/rtmutex-debug.h @@ -18,20 +18,9 @@ extern void debug_rt_mutex_unlock(struct rt_mutex *lock); @@ -232,7 +232,7 @@ index fc549713bba3..659e93e256c6 100644 - debug_rt_mutex_print_deadlock(w); -} diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 4792fc7abe7d..9aa4d545020a 100644 +index 4792fc7abe7dd..9aa4d545020af 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -597,7 +597,6 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task, @@ -273,7 +273,7 @@ index 4792fc7abe7d..9aa4d545020a 100644 } diff --git a/kernel/locking/rtmutex.h b/kernel/locking/rtmutex.h -index 732f96abf462..338ccd29119a 100644 +index 732f96abf4623..338ccd29119a1 100644 --- a/kernel/locking/rtmutex.h +++ b/kernel/locking/rtmutex.h @@ -19,15 +19,8 @@ @@ -293,7 +293,7 @@ index 732f96abf462..338ccd29119a 100644 enum rtmutex_chainwalk walk) { diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index e6913103d7ff..b1455dc2366f 100644 +index e6913103d7ff7..b1455dc2366fb 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -29,10 +29,6 @@ struct rt_mutex_waiter { @@ -308,5 +308,5 @@ index e6913103d7ff..b1455dc2366f 100644 u64 deadline; }; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch b/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch index 91e3d2b55..c0fbea827 100644 --- a/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch +++ b/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch @@ -1,9 +1,9 @@ -From e25aa4319847e6a6769075a1f38c98d8cf3246f9 Mon Sep 17 00:00:00 2001 +From b8ebdb5f6998b644ffc6f659220a81679a4c6990 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 29 Sep 2020 16:32:49 +0200 Subject: [PATCH 158/323] locking/rtmutex: Move rt_mutex_init() outside of CONFIG_DEBUG_RT_MUTEXES -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rt_mutex_init() only initializes lockdep if CONFIG_DEBUG_RT_MUTEXES is enabled. The static initializer (DEFINE_RT_MUTEX) does not have such a @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 88a0ba806066..2dc10b582d4a 100644 +index 88a0ba806066b..2dc10b582d4ae 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -43,6 +43,7 @@ struct hrtimer_sleeper; @@ -56,5 +56,5 @@ index 88a0ba806066..2dc10b582d4a 100644 #define __DEP_MAP_RT_MUTEX_INITIALIZER(mutexname) \ , .dep_map = { .name = #mutexname } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch b/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch index 5573d0e56..0ea2f8136 100644 --- a/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch +++ b/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch @@ -1,8 +1,8 @@ -From 6ec5055da1da31b64ab24ba9ff1739d05e46bb7f Mon Sep 17 00:00:00 2001 +From 4048e68e72f7bcb549c80e56e644e2504475ba86 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 7 Oct 2020 12:11:33 +0200 Subject: [PATCH 159/323] locking/rtmutex: Remove rt_mutex_timed_lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rt_mutex_timed_lock() has no callers since commit c051b21f71d1f ("rtmutex: Confine deadlock logic to futex") @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 49 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 2dc10b582d4a..243fabc2c85f 100644 +index 2dc10b582d4ae..243fabc2c85f6 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -99,9 +99,6 @@ extern void rt_mutex_lock(struct rt_mutex *lock); @@ -30,7 +30,7 @@ index 2dc10b582d4a..243fabc2c85f 100644 extern void rt_mutex_unlock(struct rt_mutex *lock); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 9aa4d545020a..b5d5c570a8ac 100644 +index 9aa4d545020af..b5d5c570a8acd 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1405,21 +1405,6 @@ rt_mutex_fastlock(struct rt_mutex *lock, int state, @@ -94,5 +94,5 @@ index 9aa4d545020a..b5d5c570a8ac 100644 * rt_mutex_trylock - try to lock a rt_mutex * -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch b/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch index 3e02c70df..f49dd6854 100644 --- a/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch +++ b/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch @@ -1,9 +1,9 @@ -From faad74e290468f037de33422cb1799c05477242d Mon Sep 17 00:00:00 2001 +From 668dfa34021cfb55bb61bdfaeabfca97146f9831 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 10 Jun 2011 11:04:15 +0200 Subject: [PATCH 160/323] locking/rtmutex: Handle the various new futex race conditions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 3 files changed, 94 insertions(+), 21 deletions(-) diff --git a/kernel/futex/core.c b/kernel/futex/core.c -index cde0ca876b93..706cd446ec71 100644 +index cde0ca876b935..706cd446ec719 100644 --- a/kernel/futex/core.c +++ b/kernel/futex/core.c @@ -2165,6 +2165,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, @@ -142,7 +142,7 @@ index cde0ca876b93..706cd446ec71 100644 ret = 0; diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index b5d5c570a8ac..2ef5a6eb95da 100644 +index b5d5c570a8acd..2ef5a6eb95daa 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -136,6 +136,11 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) @@ -238,7 +238,7 @@ index b5d5c570a8ac..2ef5a6eb95da 100644 return; } diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index b1455dc2366f..096b16cfb096 100644 +index b1455dc2366fb..096b16cfb096e 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -125,6 +125,8 @@ enum rtmutex_chainwalk { @@ -251,5 +251,5 @@ index b1455dc2366f..096b16cfb096 100644 extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, struct task_struct *proxy_owner); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch index bab95baf2..5ed0daf1d 100644 --- a/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +++ b/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch @@ -1,8 +1,8 @@ -From 787b0032cdfc388293dcde2c4bc3a2c40b6d9cf2 Mon Sep 17 00:00:00 2001 +From 44e38e9de162386a4fae15b9ea81da3d577b705b Mon Sep 17 00:00:00 2001 From: Steven Rostedt <rostedt@goodmis.org> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 161/323] futex: Fix bug on when a requeued RT task times out -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Requeue with timeout causes a bug with PREEMPT_RT. @@ -53,7 +53,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 2ef5a6eb95da..d8755d5ef227 100644 +index 2ef5a6eb95daa..d8755d5ef2277 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -138,7 +138,8 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) @@ -102,7 +102,7 @@ index 2ef5a6eb95da..d8755d5ef227 100644 ret = task_blocks_on_rt_mutex(lock, waiter, task, RT_MUTEX_FULL_CHAINWALK); diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index 096b16cfb096..37cd6b3bf6f4 100644 +index 096b16cfb096e..37cd6b3bf6f43 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -126,6 +126,7 @@ enum rtmutex_chainwalk { @@ -114,5 +114,5 @@ index 096b16cfb096..37cd6b3bf6f4 100644 extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock); extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch index aebd5f60e..ca490b3ca 100644 --- a/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch +++ b/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch @@ -1,8 +1,8 @@ -From 09e10e723c3bc6ceb0d1b64e0a6b3b9e2ec52225 Mon Sep 17 00:00:00 2001 +From f611e08abb2a885cc492c59b35d333ee330badab Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 1 Apr 2017 12:50:59 +0200 Subject: [PATCH 162/323] locking/rtmutex: Make lock_killable work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index d8755d5ef227..c3f3c23fefef 100644 +index d8755d5ef2277..c3f3c23fefef8 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1197,18 +1197,13 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state, @@ -46,5 +46,5 @@ index d8755d5ef227..c3f3c23fefef 100644 raw_spin_unlock_irq(&lock->wait_lock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch b/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch index a28543235..1ccd6d5ef 100644 --- a/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch +++ b/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch @@ -1,8 +1,8 @@ -From 79fca819370ecec3ce47fe9cb5f70efbacb613ad Mon Sep 17 00:00:00 2001 +From 7044c77732db6f62ea8f9ccae11d89a49f120d3f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 19:34:01 +0200 Subject: [PATCH 163/323] locking/spinlock: Split the lock types header -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Split raw_spinlock into its own file and the remaining spinlock_t into its own non-RT header. The non-RT header will be replaced later by sleeping @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> create mode 100644 include/linux/spinlock_types_raw.h diff --git a/include/linux/rwlock_types.h b/include/linux/rwlock_types.h -index 3bd03e18061c..0ad226b5d8fd 100644 +index 3bd03e18061c1..0ad226b5d8fd5 100644 --- a/include/linux/rwlock_types.h +++ b/include/linux/rwlock_types.h @@ -1,6 +1,10 @@ @@ -34,7 +34,7 @@ index 3bd03e18061c..0ad226b5d8fd 100644 * include/linux/rwlock_types.h - generic rwlock type definitions * and initializers diff --git a/include/linux/spinlock_types.h b/include/linux/spinlock_types.h -index b981caafe8bf..5c8664d57fb8 100644 +index b981caafe8bf1..5c8664d57fb86 100644 --- a/include/linux/spinlock_types.h +++ b/include/linux/spinlock_types.h @@ -9,92 +9,9 @@ @@ -134,7 +134,7 @@ index b981caafe8bf..5c8664d57fb8 100644 diff --git a/include/linux/spinlock_types_nort.h b/include/linux/spinlock_types_nort.h new file mode 100644 -index 000000000000..e4549f0dd197 +index 0000000000000..e4549f0dd197b --- /dev/null +++ b/include/linux/spinlock_types_nort.h @@ -0,0 +1,39 @@ @@ -179,7 +179,7 @@ index 000000000000..e4549f0dd197 +#endif diff --git a/include/linux/spinlock_types_raw.h b/include/linux/spinlock_types_raw.h new file mode 100644 -index 000000000000..1d4a180e983d +index 0000000000000..1d4a180e983d7 --- /dev/null +++ b/include/linux/spinlock_types_raw.h @@ -0,0 +1,65 @@ @@ -249,5 +249,5 @@ index 000000000000..1d4a180e983d + +#endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch b/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch index 09d1bf4dd..6d28cf1a8 100644 --- a/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch +++ b/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch @@ -1,8 +1,8 @@ -From 1b45f1cea53e6a886ba8bfab1c7617c32c66555d Mon Sep 17 00:00:00 2001 +From 4b44cb65741a8fd27bb90f785688961b5f856182 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 20:06:39 +0200 Subject: [PATCH 164/323] locking/rtmutex: Avoid include hell -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Include only the required raw types. This avoids pulling in the complete spinlock header which in turn requires rtmutex.h at some point. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 243fabc2c85f..add1dab27df5 100644 +index 243fabc2c85f6..add1dab27df52 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -15,7 +15,7 @@ @@ -26,5 +26,5 @@ index 243fabc2c85f..add1dab27df5 100644 extern int max_lock_depth; /* for sysctl */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch b/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch index bfe1d5ecd..3a0a29415 100644 --- a/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch +++ b/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch @@ -1,8 +1,8 @@ -From 740bc44f8756ed7c76a697de3eb3eae130c2de77 Mon Sep 17 00:00:00 2001 +From 202b16b03f37a46937112eb8775d66f144f4a838 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 14 Aug 2020 16:55:25 +0200 Subject: [PATCH 165/323] lockdep: Reduce header files in debug_locks.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The inclusion of printk.h leads to circular dependency if spinlock_t is based on rt_mutex. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h -index edb5c186b0b7..3f49e65169c6 100644 +index edb5c186b0b7a..3f49e65169c6d 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h @@ -3,8 +3,7 @@ @@ -29,5 +29,5 @@ index edb5c186b0b7..3f49e65169c6 100644 struct task_struct; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch b/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch index d8189ef50..c6e25ea4c 100644 --- a/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch +++ b/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch @@ -1,8 +1,8 @@ -From b9604fd91b7d02c92ddb504c330e1793f0694318 Mon Sep 17 00:00:00 2001 +From 2d36be607e18485adc15c129e7f5baa5eb7b8655 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 14 Aug 2020 17:08:41 +0200 Subject: [PATCH 166/323] locking: split out the rbtree definition -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rtmutex.h needs the definition for rb_root_cached. By including kernel.h we will get to spinlock.h which requires rtmutex.h again. @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> create mode 100644 include/linux/rbtree_type.h diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h -index d7db17996322..c33b0e16d04b 100644 +index d7db179963221..c33b0e16d04b4 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h @@ -19,19 +19,9 @@ @@ -67,7 +67,7 @@ index d7db17996322..c33b0e16d04b 100644 /* Same as rb_first(), but O(1) */ diff --git a/include/linux/rbtree_type.h b/include/linux/rbtree_type.h new file mode 100644 -index 000000000000..77a89dd2c7c6 +index 0000000000000..77a89dd2c7c66 --- /dev/null +++ b/include/linux/rbtree_type.h @@ -0,0 +1,31 @@ @@ -103,7 +103,7 @@ index 000000000000..77a89dd2c7c6 + +#endif diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index add1dab27df5..b828b938c876 100644 +index add1dab27df52..b828b938c8769 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -14,7 +14,7 @@ @@ -116,5 +116,5 @@ index add1dab27df5..b828b938c876 100644 extern int max_lock_depth; /* for sysctl */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch index 125846fe5..9f7bf0262 100644 --- a/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch +++ b/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch @@ -1,8 +1,8 @@ -From dbd55916b6a3efb4b812322d7502b174b4cceb69 Mon Sep 17 00:00:00 2001 +From ace3eedad2f89901297f8ac0c8e257619064be19 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 16:14:22 +0200 Subject: [PATCH 167/323] locking/rtmutex: Provide rt_mutex_slowlock_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index c3f3c23fefef..395a3e8b2463 100644 +index c3f3c23fefef8..395a3e8b24635 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1234,35 +1234,16 @@ static void rt_mutex_handle_deadlock(int res, int detect_deadlock, @@ -116,7 +116,7 @@ index c3f3c23fefef..395a3e8b2463 100644 raw_spin_unlock_irqrestore(&lock->wait_lock, flags); diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index 37cd6b3bf6f4..b5a2affa59d5 100644 +index 37cd6b3bf6f43..b5a2affa59d58 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -15,6 +15,7 @@ @@ -141,5 +141,5 @@ index 37cd6b3bf6f4..b5a2affa59d5 100644 #ifdef CONFIG_DEBUG_RT_MUTEXES # include "rtmutex-debug.h" -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch b/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch index 6978baba3..4b069cbd2 100644 --- a/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch +++ b/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch @@ -1,9 +1,9 @@ -From 0472803e0c929a5b0c4cb02a1e667d745e12fc51 Mon Sep 17 00:00:00 2001 +From 1ad9dea8cf61f1c055b1bb173774ff11cf9e92aa Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 16:36:39 +0200 Subject: [PATCH 168/323] locking/rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Required for lock implementation ontop of rtmutex. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 395a3e8b2463..40ae934c6caa 100644 +index 395a3e8b24635..40ae934c6caa7 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1469,12 +1469,33 @@ rt_mutex_fastunlock(struct rt_mutex *lock, @@ -112,7 +112,7 @@ index 395a3e8b2463..40ae934c6caa 100644 * rt_mutex_unlock - unlock a rt_mutex * diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index b5a2affa59d5..9d1e974ca9c3 100644 +index b5a2affa59d58..9d1e974ca9c34 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -156,6 +156,9 @@ extern bool __rt_mutex_futex_unlock(struct rt_mutex *lock, @@ -126,5 +126,5 @@ index b5a2affa59d5..9d1e974ca9c3 100644 struct hrtimer_sleeper *timeout, enum rtmutex_chainwalk chwalk, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch index 83106676c..78af45d29 100644 --- a/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch +++ b/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch @@ -1,9 +1,9 @@ -From 622996bf8475bf1d06cbb523dacc7469e7b9c864 Mon Sep 17 00:00:00 2001 +From a5589dbb6f277c06f72d80168d2de6dec092b35c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 25 Jun 2011 09:21:04 +0200 Subject: [PATCH 169/323] sched: Add saved_state for tasks blocked on sleeping locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Spinlocks are state preserving in !RT. RT changes the state when a task gets blocked on a lock. So we need to remember the state before @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index d31da4867bb2..73defe42fd23 100644 +index d31da4867bb28..73defe42fd23d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -659,6 +659,8 @@ struct task_struct { @@ -40,7 +40,7 @@ index d31da4867bb2..73defe42fd23 100644 #ifdef CONFIG_SMP diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 390b51366f5e..f6d40256c0d4 100644 +index 390b51366f5ef..f6d40256c0d4c 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3305,7 +3305,7 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) @@ -100,7 +100,7 @@ index 390b51366f5e..f6d40256c0d4 100644 { return try_to_wake_up(p, state, 0); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index c26b1c7009f4..d4bfc51358d3 100644 +index c26b1c7009f45..d4bfc51358d37 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1753,6 +1753,7 @@ static inline int task_on_rq_migrating(struct task_struct *p) @@ -112,5 +112,5 @@ index c26b1c7009f4..d4bfc51358d3 100644 /* * To aid in avoiding the subversion of "niceness" due to uneven distribution -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch index e8755a734..c55f0f504 100644 --- a/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch +++ b/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch @@ -1,8 +1,8 @@ -From 4c85c347eeb7dae59269d3a4a07388a00de563bf Mon Sep 17 00:00:00 2001 +From ba83adc3650c153ab5646945ab0690cc30240b21 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:11:19 +0200 Subject: [PATCH 170/323] locking/rtmutex: add sleeping lock implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> @@ -24,7 +24,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> create mode 100644 include/linux/spinlock_types_rt.h diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index 55d48d5627c7..7b4fdd5b2f7b 100644 +index 55d48d5627c71..7b4fdd5b2f7ba 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -223,6 +223,10 @@ extern void __cant_migrate(const char *file, int line); @@ -47,7 +47,7 @@ index 55d48d5627c7..7b4fdd5b2f7b 100644 # define cant_migrate() do { } while (0) # define sched_annotate_sleep() do { } while (0) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 9881eac0698f..4d244e295e85 100644 +index 9881eac0698fd..4d244e295e855 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -121,7 +121,11 @@ @@ -63,7 +63,7 @@ index 9881eac0698f..4d244e295e85 100644 /* * The preempt_count offset needed for things like: diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index b828b938c876..b02009f53026 100644 +index b828b938c8769..b02009f530263 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -19,6 +19,10 @@ @@ -109,7 +109,7 @@ index b828b938c876..b02009f53026 100644 #define DEFINE_RT_MUTEX(mutexname) \ struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 73defe42fd23..3650fdaac4ca 100644 +index 73defe42fd23d..3650fdaac4caa 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -141,6 +141,9 @@ struct io_uring_task; @@ -141,7 +141,7 @@ index 73defe42fd23..3650fdaac4ca 100644 #ifdef CONFIG_RT_MUTEXES /* PI waiters blocked on a rt_mutex held by this task: */ diff --git a/include/linux/sched/wake_q.h b/include/linux/sched/wake_q.h -index 26a2013ac39c..6e2dff721547 100644 +index 26a2013ac39c4..6e2dff721547c 100644 --- a/include/linux/sched/wake_q.h +++ b/include/linux/sched/wake_q.h @@ -58,6 +58,17 @@ static inline bool wake_q_empty(struct wake_q_head *head) @@ -165,7 +165,7 @@ index 26a2013ac39c..6e2dff721547 100644 #endif /* _LINUX_SCHED_WAKE_Q_H */ diff --git a/include/linux/spinlock_rt.h b/include/linux/spinlock_rt.h new file mode 100644 -index 000000000000..3085132eae38 +index 0000000000000..3085132eae383 --- /dev/null +++ b/include/linux/spinlock_rt.h @@ -0,0 +1,155 @@ @@ -326,7 +326,7 @@ index 000000000000..3085132eae38 +#endif diff --git a/include/linux/spinlock_types_rt.h b/include/linux/spinlock_types_rt.h new file mode 100644 -index 000000000000..446da786e5d5 +index 0000000000000..446da786e5d5c --- /dev/null +++ b/include/linux/spinlock_types_rt.h @@ -0,0 +1,38 @@ @@ -369,7 +369,7 @@ index 000000000000..446da786e5d5 + +#endif diff --git a/kernel/futex/core.c b/kernel/futex/core.c -index 706cd446ec71..909dcd708a52 100644 +index 706cd446ec719..909dcd708a527 100644 --- a/kernel/futex/core.c +++ b/kernel/futex/core.c @@ -1508,6 +1508,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ @@ -417,7 +417,7 @@ index 706cd446ec71..909dcd708a52 100644 ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE); if (unlikely(ret != 0)) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 40ae934c6caa..35cdbbb5daa9 100644 +index 40ae934c6caa7..35cdbbb5daa93 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -8,6 +8,11 @@ @@ -1081,7 +1081,7 @@ index 40ae934c6caa..35cdbbb5daa9 100644 return ret; diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index 9d1e974ca9c3..c1a280167e3c 100644 +index 9d1e974ca9c34..c1a280167e3cc 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -31,6 +31,7 @@ struct rt_mutex_waiter { @@ -1128,7 +1128,7 @@ index 9d1e974ca9c3..c1a280167e3c 100644 #ifdef CONFIG_DEBUG_RT_MUTEXES # include "rtmutex-debug.h" diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index f6d40256c0d4..be5d41ed6ff2 100644 +index f6d40256c0d4c..be5d41ed6ff21 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -511,9 +511,15 @@ static bool set_nr_if_polling(struct task_struct *p) @@ -1210,5 +1210,5 @@ index f6d40256c0d4..be5d41ed6ff2 100644 } } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch b/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch index 4c2c1b803..4786df44e 100644 --- a/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch +++ b/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch @@ -1,9 +1,9 @@ -From bcc9f5e2b7eb56660512649787ab651fc138d9e4 Mon Sep 17 00:00:00 2001 +From 798399a61f1200c1fc8bd90626fa50bceea494d5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 2 Dec 2015 11:34:07 +0100 Subject: [PATCH 171/323] locking/rtmutex: Allow rt_mutex_trylock() on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Non PREEMPT_RT kernel can deadlock on rt_mutex_trylock() in softirq context. @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 35cdbbb5daa9..1bf7a04688c5 100644 +index 35cdbbb5daa93..1bf7a04688c54 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1884,7 +1884,11 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock) @@ -33,5 +33,5 @@ index 35cdbbb5daa9..1bf7a04688c5 100644 return rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch b/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch index 655fd8534..311dc015a 100644 --- a/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch +++ b/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch @@ -1,9 +1,9 @@ -From c363a86a2fab38d43a50a8841e2b6d64b87ae69b Mon Sep 17 00:00:00 2001 +From 7c27acd6d2b3883ec5d9b41e8d9ca3e65b9fba82 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:17:03 +0200 Subject: [PATCH 172/323] locking/rtmutex: add mutex implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/include/linux/mutex_rt.h b/include/linux/mutex_rt.h new file mode 100644 -index 000000000000..f0b2e07cd5c5 +index 0000000000000..f0b2e07cd5c57 --- /dev/null +++ b/include/linux/mutex_rt.h @@ -0,0 +1,130 @@ @@ -152,7 +152,7 @@ index 000000000000..f0b2e07cd5c5 +#endif diff --git a/kernel/locking/mutex-rt.c b/kernel/locking/mutex-rt.c new file mode 100644 -index 000000000000..2b849e6b9b4a +index 0000000000000..2b849e6b9b4ae --- /dev/null +++ b/kernel/locking/mutex-rt.c @@ -0,0 +1,224 @@ @@ -381,5 +381,5 @@ index 000000000000..2b849e6b9b4a +} +EXPORT_SYMBOL(atomic_dec_and_mutex_lock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch b/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch index d1595ab45..a3649db63 100644 --- a/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch +++ b/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch @@ -1,9 +1,9 @@ -From 9095a37abced402fb5197fef8d126069f63ebfb4 Mon Sep 17 00:00:00 2001 +From daacf58f8a5cd99064f871cd9573582d96b04535 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:28:34 +0200 Subject: [PATCH 173/323] locking/rtmutex: add rwsem implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The RT specific R/W semaphore implementation restricts the number of readers to one because a writer cannot block on multiple readers and inherit its @@ -52,7 +52,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/include/linux/rwsem-rt.h b/include/linux/rwsem-rt.h new file mode 100644 -index 000000000000..0ba8aae9a198 +index 0000000000000..0ba8aae9a1983 --- /dev/null +++ b/include/linux/rwsem-rt.h @@ -0,0 +1,70 @@ @@ -128,7 +128,7 @@ index 000000000000..0ba8aae9a198 +#endif diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c new file mode 100644 -index 000000000000..a0771c150041 +index 0000000000000..a0771c150041e --- /dev/null +++ b/kernel/locking/rwsem-rt.c @@ -0,0 +1,318 @@ @@ -451,5 +451,5 @@ index 000000000000..a0771c150041 + __up_write_unlock(sem, WRITER_BIAS - 1, flags); +} -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch b/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch index 481610364..1d4a78d1d 100644 --- a/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch +++ b/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch @@ -1,9 +1,9 @@ -From 85ee193953134a79ee60def58e6d8c98b8cd8e55 Mon Sep 17 00:00:00 2001 +From 5b8ef89d78f5db246d2c8e33006539598d01e061 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:18:06 +0200 Subject: [PATCH 174/323] locking/rtmutex: add rwlock implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The implementation is bias-based, similar to the rwsem implementation. @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/include/linux/rwlock_rt.h b/include/linux/rwlock_rt.h new file mode 100644 -index 000000000000..aafdb0a685d5 +index 0000000000000..aafdb0a685d54 --- /dev/null +++ b/include/linux/rwlock_rt.h @@ -0,0 +1,109 @@ @@ -136,7 +136,7 @@ index 000000000000..aafdb0a685d5 +#endif diff --git a/include/linux/rwlock_types_rt.h b/include/linux/rwlock_types_rt.h new file mode 100644 -index 000000000000..4762391d659b +index 0000000000000..4762391d659bf --- /dev/null +++ b/include/linux/rwlock_types_rt.h @@ -0,0 +1,56 @@ @@ -197,7 +197,7 @@ index 000000000000..4762391d659b + +#endif diff --git a/kernel/Kconfig.locks b/kernel/Kconfig.locks -index 3de8fd11873b..4198f0273ecd 100644 +index 3de8fd11873b4..4198f0273ecdc 100644 --- a/kernel/Kconfig.locks +++ b/kernel/Kconfig.locks @@ -251,7 +251,7 @@ config ARCH_USE_QUEUED_RWLOCKS @@ -211,7 +211,7 @@ index 3de8fd11873b..4198f0273ecd 100644 bool diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c new file mode 100644 -index 000000000000..1ee16b8fedd7 +index 0000000000000..1ee16b8fedd77 --- /dev/null +++ b/kernel/locking/rwlock-rt.c @@ -0,0 +1,328 @@ @@ -544,5 +544,5 @@ index 000000000000..1ee16b8fedd7 +} +EXPORT_SYMBOL(__rt_rwlock_init); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch index 4a55d2f15..33267351f 100644 --- a/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch +++ b/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch @@ -1,8 +1,8 @@ -From 48720bc07f81cfe49fe8e2a7afa1f18acd9227dd Mon Sep 17 00:00:00 2001 +From 0e5272c5e589c6dcbccd3186136968479346695c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:31:14 +0200 Subject: [PATCH 175/323] locking/rtmutex: wire up RT's locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 11 files changed, 77 insertions(+), 19 deletions(-) diff --git a/include/linux/mutex.h b/include/linux/mutex.h -index 4d671fba3cab..e45774a337d2 100644 +index 4d671fba3cab4..e45774a337d2c 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -22,6 +22,20 @@ @@ -70,7 +70,7 @@ index 4d671fba3cab..e45774a337d2 100644 + #endif /* __LINUX_MUTEX_H */ diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h -index 4c715be48717..9323af8a9244 100644 +index 4c715be487171..9323af8a92445 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -16,6 +16,11 @@ @@ -100,7 +100,7 @@ index 4c715be48717..9323af8a9244 100644 * lock for reading */ diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h -index 79897841a2cc..c3c70291b46c 100644 +index 79897841a2cc8..c3c70291b46c5 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -309,7 +309,11 @@ static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock) @@ -137,7 +137,7 @@ index 79897841a2cc..c3c70291b46c 100644 * Pull the atomic_t declaration: * (asm-mips/atomic.h needs above definitions) diff --git a/include/linux/spinlock_api_smp.h b/include/linux/spinlock_api_smp.h -index 19a9be9d97ee..da38149f2843 100644 +index 19a9be9d97ee5..da38149f28431 100644 --- a/include/linux/spinlock_api_smp.h +++ b/include/linux/spinlock_api_smp.h @@ -187,6 +187,8 @@ static inline int __raw_spin_trylock_bh(raw_spinlock_t *lock) @@ -151,7 +151,7 @@ index 19a9be9d97ee..da38149f2843 100644 #endif /* __LINUX_SPINLOCK_API_SMP_H */ diff --git a/include/linux/spinlock_types.h b/include/linux/spinlock_types.h -index 5c8664d57fb8..8d896d3e1a01 100644 +index 5c8664d57fb86..8d896d3e1a017 100644 --- a/include/linux/spinlock_types.h +++ b/include/linux/spinlock_types.h @@ -11,8 +11,13 @@ @@ -172,7 +172,7 @@ index 5c8664d57fb8..8d896d3e1a01 100644 #endif /* __LINUX_SPINLOCK_TYPES_H */ diff --git a/include/linux/spinlock_types_up.h b/include/linux/spinlock_types_up.h -index c09b6407ae1b..d9b371fa13e0 100644 +index c09b6407ae1b3..d9b371fa13e09 100644 --- a/include/linux/spinlock_types_up.h +++ b/include/linux/spinlock_types_up.h @@ -1,7 +1,7 @@ @@ -185,7 +185,7 @@ index c09b6407ae1b..d9b371fa13e0 100644 #endif diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt -index bf82259cff96..cbe3aa495519 100644 +index bf82259cff965..cbe3aa495519b 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt @@ -59,6 +59,7 @@ config PREEMPT_RT @@ -197,7 +197,7 @@ index bf82259cff96..cbe3aa495519 100644 This option turns the kernel into a real-time kernel by replacing various locking primitives (spinlocks, rwlocks, etc.) with diff --git a/kernel/locking/Makefile b/kernel/locking/Makefile -index 6d11cfb9b41f..c7fbf737e16e 100644 +index 6d11cfb9b41f2..c7fbf737e16ea 100644 --- a/kernel/locking/Makefile +++ b/kernel/locking/Makefile @@ -3,7 +3,7 @@ @@ -236,7 +236,7 @@ index 6d11cfb9b41f..c7fbf737e16e 100644 obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o obj-$(CONFIG_WW_MUTEX_SELFTEST) += test-ww_mutex.o diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c -index cc5cc889b5b7..f7c909ef1261 100644 +index cc5cc889b5b7f..f7c909ef1261d 100644 --- a/kernel/locking/rwsem.c +++ b/kernel/locking/rwsem.c @@ -28,6 +28,7 @@ @@ -276,7 +276,7 @@ index cc5cc889b5b7..f7c909ef1261 100644 } EXPORT_SYMBOL(up_read_non_owner); diff --git a/kernel/locking/spinlock.c b/kernel/locking/spinlock.c -index 0ff08380f531..45445a2f1799 100644 +index 0ff08380f5318..45445a2f1799a 100644 --- a/kernel/locking/spinlock.c +++ b/kernel/locking/spinlock.c @@ -124,8 +124,11 @@ void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ @@ -310,7 +310,7 @@ index 0ff08380f531..45445a2f1799 100644 void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass) diff --git a/kernel/locking/spinlock_debug.c b/kernel/locking/spinlock_debug.c -index b9d93087ee66..72e306e0e8a3 100644 +index b9d93087ee669..72e306e0e8a3b 100644 --- a/kernel/locking/spinlock_debug.c +++ b/kernel/locking/spinlock_debug.c @@ -31,6 +31,7 @@ void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name, @@ -344,5 +344,5 @@ index b9d93087ee66..72e306e0e8a3 100644 + +#endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch index 4199d82f9..1ade43fa2 100644 --- a/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +++ b/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch @@ -1,8 +1,8 @@ -From 47ba586f2ade0d9f8cc9281cb08529146bfc3c5d Mon Sep 17 00:00:00 2001 +From 9b2b99d3a96fd3eb164a6f1993effe944ced9e40 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 12 Oct 2017 17:34:38 +0200 Subject: [PATCH 176/323] locking/rtmutex: add ww_mutex addon for mutex-rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 5 files changed, 262 insertions(+), 20 deletions(-) diff --git a/include/linux/mutex.h b/include/linux/mutex.h -index e45774a337d2..90923d3008fc 100644 +index e45774a337d2c..90923d3008fcd 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -82,14 +82,6 @@ struct mutex { @@ -33,7 +33,7 @@ index e45774a337d2..90923d3008fc 100644 * This is the control structure for tasks blocked on mutex, * which resides on the blocked task's kernel stack: diff --git a/include/linux/ww_mutex.h b/include/linux/ww_mutex.h -index 6ecf2a0220db..3145de598645 100644 +index 6ecf2a0220dbe..3145de5986450 100644 --- a/include/linux/ww_mutex.h +++ b/include/linux/ww_mutex.h @@ -28,6 +28,14 @@ struct ww_class { @@ -52,7 +52,7 @@ index 6ecf2a0220db..3145de598645 100644 struct task_struct *task; unsigned long stamp; diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 1bf7a04688c5..c095d1b92f70 100644 +index 1bf7a04688c54..c095d1b92f702 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -24,6 +24,7 @@ @@ -419,7 +419,7 @@ index 1bf7a04688c5..c095d1b92f70 100644 +EXPORT_SYMBOL(__rt_mutex_owner_current); +#endif diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index c1a280167e3c..248a7d91583b 100644 +index c1a280167e3cc..248a7d91583be 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -159,6 +159,7 @@ extern void rt_mutex_postunlock(struct wake_q_head *wake_q, @@ -439,7 +439,7 @@ index c1a280167e3c..248a7d91583b 100644 void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c -index a0771c150041..274172d5bb3a 100644 +index a0771c150041e..274172d5bb3a5 100644 --- a/kernel/locking/rwsem-rt.c +++ b/kernel/locking/rwsem-rt.c @@ -138,7 +138,7 @@ static int __sched __down_read_common(struct rw_semaphore *sem, int state) @@ -452,5 +452,5 @@ index a0771c150041..274172d5bb3a 100644 * The slowlock() above is guaranteed to return with the rtmutex (for * ret = 0) is now held, so there can't be a writer active. Increment -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch b/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch index 9cabce468..84f1a2bad 100644 --- a/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch +++ b/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch @@ -1,9 +1,9 @@ -From 0a34a9993d2798ba232792f998e5ae5fe7519730 Mon Sep 17 00:00:00 2001 +From cdfb8372ad6e17318e854ebfec3fd9201fa5602e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 6 Oct 2020 13:07:17 +0200 Subject: [PATCH 177/323] locking/rtmutex: Use custom scheduling function for spin-schedule() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT builds the rwsem, mutex, spinlock and rwlock typed locks on top of a rtmutex lock. While blocked task->pi_blocked_on is set @@ -40,7 +40,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 7 files changed, 32 insertions(+), 21 deletions(-) diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h -index e83f0982b99c..f1486b32502c 100644 +index e83f0982b99c1..f1486b32502c1 100644 --- a/arch/arm64/include/asm/preempt.h +++ b/arch/arm64/include/asm/preempt.h @@ -81,6 +81,9 @@ static inline bool should_resched(int preempt_offset) @@ -54,7 +54,7 @@ index e83f0982b99c..f1486b32502c 100644 void preempt_schedule_notrace(void); #define __preempt_schedule_notrace() preempt_schedule_notrace() diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h -index a334dd0d7c42..50e0c0ab7b97 100644 +index a334dd0d7c42c..50e0c0ab7b97b 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -103,6 +103,9 @@ static __always_inline bool should_resched(int preempt_offset) @@ -68,7 +68,7 @@ index a334dd0d7c42..50e0c0ab7b97 100644 # define __preempt_schedule() \ asm volatile ("call preempt_schedule_thunk" : ASM_CALL_CONSTRAINT) diff --git a/include/asm-generic/preempt.h b/include/asm-generic/preempt.h -index b4d43a4af5f7..ac255e889462 100644 +index b4d43a4af5f79..ac255e8894629 100644 --- a/include/asm-generic/preempt.h +++ b/include/asm-generic/preempt.h @@ -79,6 +79,9 @@ static __always_inline bool should_resched(int preempt_offset) @@ -82,7 +82,7 @@ index b4d43a4af5f7..ac255e889462 100644 #define __preempt_schedule() preempt_schedule() extern asmlinkage void preempt_schedule_notrace(void); diff --git a/include/linux/sched/rt.h b/include/linux/sched/rt.h -index e5af028c08b4..994c25640e15 100644 +index e5af028c08b49..994c25640e156 100644 --- a/include/linux/sched/rt.h +++ b/include/linux/sched/rt.h @@ -39,20 +39,12 @@ static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *p) @@ -107,7 +107,7 @@ index e5af028c08b4..994c25640e15 100644 extern void normalize_rt_tasks(void); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index c095d1b92f70..2fe178651254 100644 +index c095d1b92f702..2fe1786512543 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1067,7 +1067,7 @@ void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock, @@ -120,7 +120,7 @@ index c095d1b92f70..2fe178651254 100644 raw_spin_lock_irqsave(&lock->wait_lock, flags); diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c -index 1ee16b8fedd7..16be7111aae7 100644 +index 1ee16b8fedd77..16be7111aae71 100644 --- a/kernel/locking/rwlock-rt.c +++ b/kernel/locking/rwlock-rt.c @@ -211,7 +211,7 @@ static void __write_rt_lock(struct rt_rw_lock *lock) @@ -133,7 +133,7 @@ index 1ee16b8fedd7..16be7111aae7 100644 raw_spin_lock_irqsave(&m->wait_lock, flags); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index be5d41ed6ff2..aaeed4b14278 100644 +index be5d41ed6ff21..aaeed4b14278a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5001,7 +5001,7 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf) @@ -239,5 +239,5 @@ index be5d41ed6ff2..aaeed4b14278 100644 sched_preempt_enable_no_resched(); } while (need_resched()); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch b/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch index c90e0baa5..b7b44036f 100644 --- a/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch +++ b/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch @@ -1,8 +1,8 @@ -From 3d8d7beacea4da55fdd1b45bc8d5c19da1438dcb Mon Sep 17 00:00:00 2001 +From d54b3f588a5bed4ef85363c15fdd0314d9f6eb59 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 21 Sep 2011 19:57:12 +0200 Subject: [PATCH 178/323] signal: Revert ptrace preempt magic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 8 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c -index e487c4660921..5ab628e2afc5 100644 +index e487c4660921d..5ab628e2afc5f 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2193,16 +2193,8 @@ static void ptrace_stop(int exit_code, int why, int clear_code, kernel_siginfo_t @@ -35,5 +35,5 @@ index e487c4660921..5ab628e2afc5 100644 cgroup_leave_frozen(true); } else { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch index 044b63df6..2e237d15d 100644 --- a/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch +++ b/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch @@ -1,8 +1,8 @@ -From 500d1733493dabbf5baf698854070d3cb1b0990f Mon Sep 17 00:00:00 2001 +From 4eb065c1fc4ec01ed2b864a40ec7f0b9708557c4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 24 Jul 2009 12:38:56 +0200 Subject: [PATCH 179/323] preempt: Provide preempt_*_(no)rt variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 4d244e295e85..5ceac863e729 100644 +index 4d244e295e855..5ceac863e7298 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -188,7 +188,11 @@ do { \ @@ -49,5 +49,5 @@ index 4d244e295e85..5ceac863e729 100644 struct preempt_notifier; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch index 6512c18a9..2cc3a42f2 100644 --- a/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch +++ b/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch @@ -1,9 +1,9 @@ -From a066e44619e1a6f661cd861015a5b658adead8bc Mon Sep 17 00:00:00 2001 +From 297471550fb6005458604d6d94f98f6c7bee7f87 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:30:13 -0500 Subject: [PATCH 180/323] mm/vmstat: Protect per cpu variables with preempt disable on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 16 insertions(+) diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h -index 322dcbfcc933..9a3a10ea3e3c 100644 +index 322dcbfcc9337..9a3a10ea3e3c9 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -63,7 +63,9 @@ DECLARE_PER_CPU(struct vm_event_state, vm_event_states); @@ -41,7 +41,7 @@ index 322dcbfcc933..9a3a10ea3e3c 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 e292e63afebf..598e9317c7e0 100644 +index e292e63afebf2..598e9317c7e00 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -321,6 +321,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, @@ -141,5 +141,5 @@ index e292e63afebf..598e9317c7e0 100644 void __dec_zone_page_state(struct page *page, enum zone_stat_item item) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch b/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch index 2df18df08..4ec4b8383 100644 --- a/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch +++ b/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch @@ -1,9 +1,9 @@ -From 6f35e0e3a90abef410034d9900a21e68131aa5d5 Mon Sep 17 00:00:00 2001 +From 47e41ee895b7008487aab1065ba8880bd845a6b0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 28 Oct 2020 18:15:32 +0100 Subject: [PATCH 181/323] mm/memcontrol: Disable preemption in __mod_memcg_lruvec_state() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The callers expect disabled preemption/interrupts while invoking __mod_memcg_lruvec_state(). This works mainline because a lock of @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index ddc8ed096dec..49566afaef1c 100644 +index ddc8ed096deca..49566afaef1ca 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -816,6 +816,7 @@ void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, @@ -40,5 +40,5 @@ index ddc8ed096dec..49566afaef1c 100644 /** -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch b/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch index abce9d9d0..f727a5590 100644 --- a/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch +++ b/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch @@ -1,8 +1,8 @@ -From 17aae888f2940f55065824bd7c267df06be47fbb Mon Sep 17 00:00:00 2001 +From 90101d9fec396934a753169b265c47c3e53c880e Mon Sep 17 00:00:00 2001 From: "Ahmed S. Darwish" <a.darwish@linutronix.de> Date: Wed, 10 Jun 2020 12:53:22 +0200 Subject: [PATCH 182/323] xfrm: Use sequence counter with associated spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A sequence counter write side critical section must be protected by some form of locking to serialize writers. A plain seqcount_t does not @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c -index ba73014805a4..14e1f36bdda5 100644 +index ba73014805a4f..14e1f36bdda57 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -2691,7 +2691,8 @@ int __net_init xfrm_state_init(struct net *net) @@ -42,5 +42,5 @@ index ba73014805a4..14e1f36bdda5 100644 out_byspi: -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch b/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch index f100e0717..fe690eaf6 100644 --- a/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch +++ b/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch @@ -1,9 +1,9 @@ -From e6ec60749d80fcdde8451a7a544a218f7c5ef393 Mon Sep 17 00:00:00 2001 +From 8b79413c531cd633e6608aef388828e9742996c1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 17 Aug 2020 12:28:10 +0200 Subject: [PATCH 183/323] u64_stats: Disable preemption on 32bit-UP/SMP with RT during updates -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On RT the seqcount_t is required even on UP because the softirq can be preempted. The IRQ handler is threaded so it is also preemptible. @@ -18,8 +18,6 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> include/linux/u64_stats_sync.h | 42 ++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 14 deletions(-) -diff --git a/include/linux/u64_stats_sync.h b/include/linux/u64_stats_sync.h -index e81856c0ba13..66eb968a09d4 100644 --- a/include/linux/u64_stats_sync.h +++ b/include/linux/u64_stats_sync.h @@ -66,7 +66,7 @@ @@ -31,16 +29,16 @@ index e81856c0ba13..66eb968a09d4 100644 seqcount_t seq; #endif }; -@@ -115,7 +115,7 @@ static inline void u64_stats_inc(u64_stats_t *p) +@@ -115,7 +115,7 @@ } #endif -#if BITS_PER_LONG == 32 && defined(CONFIG_SMP) +#if BITS_PER_LONG == 32 && (defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT)) - #define u64_stats_init(syncp) seqcount_init(&(syncp)->seq) - #else - static inline void u64_stats_init(struct u64_stats_sync *syncp) -@@ -125,15 +125,19 @@ static inline void u64_stats_init(struct u64_stats_sync *syncp) + #define u64_stats_init(syncp) \ + do { \ + struct u64_stats_sync *__s = (syncp); \ +@@ -129,15 +129,19 @@ static inline void u64_stats_update_begin(struct u64_stats_sync *syncp) { @@ -62,7 +60,7 @@ index e81856c0ba13..66eb968a09d4 100644 #endif } -@@ -142,8 +146,11 @@ u64_stats_update_begin_irqsave(struct u64_stats_sync *syncp) +@@ -146,8 +150,11 @@ { unsigned long flags = 0; @@ -76,7 +74,7 @@ index e81856c0ba13..66eb968a09d4 100644 write_seqcount_begin(&syncp->seq); #endif return flags; -@@ -153,15 +160,18 @@ static inline void +@@ -157,15 +164,18 @@ u64_stats_update_end_irqrestore(struct u64_stats_sync *syncp, unsigned long flags) { @@ -98,7 +96,7 @@ index e81856c0ba13..66eb968a09d4 100644 return read_seqcount_begin(&syncp->seq); #else return 0; -@@ -170,7 +180,7 @@ static inline unsigned int __u64_stats_fetch_begin(const struct u64_stats_sync * +@@ -174,7 +184,7 @@ static inline unsigned int u64_stats_fetch_begin(const struct u64_stats_sync *syncp) { @@ -107,7 +105,7 @@ index e81856c0ba13..66eb968a09d4 100644 preempt_disable(); #endif return __u64_stats_fetch_begin(syncp); -@@ -179,7 +189,7 @@ static inline unsigned int u64_stats_fetch_begin(const struct u64_stats_sync *sy +@@ -183,7 +193,7 @@ static inline bool __u64_stats_fetch_retry(const struct u64_stats_sync *syncp, unsigned int start) { @@ -116,7 +114,7 @@ index e81856c0ba13..66eb968a09d4 100644 return read_seqcount_retry(&syncp->seq, start); #else return false; -@@ -189,7 +199,7 @@ static inline bool __u64_stats_fetch_retry(const struct u64_stats_sync *syncp, +@@ -193,7 +203,7 @@ static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp, unsigned int start) { @@ -125,7 +123,7 @@ index e81856c0ba13..66eb968a09d4 100644 preempt_enable(); #endif return __u64_stats_fetch_retry(syncp, start); -@@ -203,7 +213,9 @@ static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp, +@@ -207,7 +217,9 @@ */ static inline unsigned int u64_stats_fetch_begin_irq(const struct u64_stats_sync *syncp) { @@ -136,7 +134,7 @@ index e81856c0ba13..66eb968a09d4 100644 local_irq_disable(); #endif return __u64_stats_fetch_begin(syncp); -@@ -212,7 +224,9 @@ static inline unsigned int u64_stats_fetch_begin_irq(const struct u64_stats_sync +@@ -216,7 +228,9 @@ static inline bool u64_stats_fetch_retry_irq(const struct u64_stats_sync *syncp, unsigned int start) { @@ -147,6 +145,3 @@ index e81856c0ba13..66eb968a09d4 100644 local_irq_enable(); #endif return __u64_stats_fetch_retry(syncp, start); --- -2.43.0 - diff --git a/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch index 8a43098f4..bd836c1ba 100644 --- a/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -1,8 +1,8 @@ -From aeadd35a13f446ec84a832549b2815fc3de30917 Mon Sep 17 00:00:00 2001 +From 5cdea9eaefef34046668dc341e43f742c74cf980 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Sep 2016 14:35:49 +0200 Subject: [PATCH 184/323] fs/dcache: use swait_queue instead of waitqueue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 12 files changed, 31 insertions(+), 26 deletions(-) diff --git a/fs/afs/dir_silly.c b/fs/afs/dir_silly.c -index dae9a57d7ec0..9a6a0ec4d1fb 100644 +index dae9a57d7ec0c..9a6a0ec4d1fb5 100644 --- a/fs/afs/dir_silly.c +++ b/fs/afs/dir_silly.c @@ -239,7 +239,7 @@ int afs_silly_iput(struct dentry *dentry, struct inode *inode) @@ -37,7 +37,7 @@ index dae9a57d7ec0..9a6a0ec4d1fb 100644 _enter("%p{%pd},%llx", dentry, dentry, vnode->fid.vnode); diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c -index 799be3a5d25e..d5165a7da071 100644 +index 799be3a5d25e1..d5165a7da0718 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c @@ -81,7 +81,7 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name, @@ -50,10 +50,10 @@ index 799be3a5d25e..d5165a7da071 100644 cifs_dbg(FYI, "%s: for %s\n", __func__, name->name); diff --git a/fs/dcache.c b/fs/dcache.c -index ea0485861d93..1f4255ef8722 100644 +index 976c7474d62a9..4bcd832ace5dc 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -2518,21 +2518,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n) +@@ -2519,21 +2519,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n) static void d_wait_lookup(struct dentry *dentry) { @@ -89,7 +89,7 @@ index ea0485861d93..1f4255ef8722 100644 { unsigned int hash = name->hash; struct hlist_bl_head *b = in_lookup_hash(parent, hash); -@@ -2647,7 +2650,7 @@ void __d_lookup_done(struct dentry *dentry) +@@ -2648,7 +2651,7 @@ void __d_lookup_done(struct dentry *dentry) hlist_bl_lock(b); dentry->d_flags &= ~DCACHE_PAR_LOOKUP; __hlist_bl_del(&dentry->d_u.d_in_lookup_hash); @@ -99,7 +99,7 @@ index ea0485861d93..1f4255ef8722 100644 hlist_bl_unlock(b); INIT_HLIST_NODE(&dentry->d_u.d_alias); diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c -index 14e99ffa57af..eb899feaf82d 100644 +index 14e99ffa57af9..eb899feaf82dd 100644 --- a/fs/fuse/readdir.c +++ b/fs/fuse/readdir.c @@ -160,7 +160,7 @@ static int fuse_direntplus_link(struct file *file, @@ -112,7 +112,7 @@ index 14e99ffa57af..eb899feaf82d 100644 if (!o->nodeid) { /* diff --git a/fs/namei.c b/fs/namei.c -index 3ff954a2bbd1..01e3f8195ee1 100644 +index cb37d7c477e0b..f4961a4af74c5 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1532,7 +1532,7 @@ static struct dentry *__lookup_slow(const struct qstr *name, @@ -124,7 +124,7 @@ index 3ff954a2bbd1..01e3f8195ee1 100644 /* Don't go there if it's already dead */ if (unlikely(IS_DEADDIR(inode))) -@@ -3085,7 +3085,7 @@ static struct dentry *lookup_open(struct nameidata *nd, struct file *file, +@@ -3079,7 +3079,7 @@ static struct dentry *lookup_open(struct nameidata *nd, struct file *file, struct dentry *dentry; int error, create_error = 0; umode_t mode = op->mode; @@ -134,7 +134,7 @@ index 3ff954a2bbd1..01e3f8195ee1 100644 if (unlikely(IS_DEADDIR(dir_inode))) return ERR_PTR(-ENOENT); diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c -index 9f88ca7b2001..bc8a78ecfe1c 100644 +index 9f88ca7b20015..bc8a78ecfe1c3 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -484,7 +484,7 @@ void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry, @@ -156,7 +156,7 @@ index 9f88ca7b2001..bc8a78ecfe1c 100644 struct dentry *res; struct iattr attr = { .ia_valid = ATTR_OPEN }; diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c -index b27ebdccef70..f86c98a7ed04 100644 +index b27ebdccef703..f86c98a7ed047 100644 --- a/fs/nfs/unlink.c +++ b/fs/nfs/unlink.c @@ -13,7 +13,7 @@ @@ -178,7 +178,7 @@ index b27ebdccef70..f86c98a7ed04 100644 status = -EBUSY; spin_lock(&dentry->d_lock); diff --git a/fs/proc/base.c b/fs/proc/base.c -index 712948e97991..585d0afd1af6 100644 +index 712948e979911..585d0afd1af61 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -96,6 +96,7 @@ @@ -199,7 +199,7 @@ index 712948e97991..585d0afd1af6 100644 if (IS_ERR(child)) goto end_instantiate; diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c -index aff9593feb73..d1a29668bff8 100644 +index aff9593feb73c..d1a29668bff84 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -684,7 +684,7 @@ static bool proc_sys_fill_cache(struct file *file, @@ -212,7 +212,7 @@ index aff9593feb73..d1a29668bff8 100644 if (IS_ERR(child)) return false; diff --git a/include/linux/dcache.h b/include/linux/dcache.h -index 6f95c3300cbb..c1290db778bd 100644 +index 6f95c3300cbbb..c1290db778bdd 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -106,7 +106,7 @@ struct dentry { @@ -234,7 +234,7 @@ index 6f95c3300cbb..c1290db778bd 100644 extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *); extern struct dentry * d_exact_alias(struct dentry *, struct inode *); diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h -index 33442fd018a0..4612bb5be6ca 100644 +index 33442fd018a06..4612bb5be6ca4 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -1675,7 +1675,7 @@ struct nfs_unlinkdata { @@ -247,7 +247,7 @@ index 33442fd018a0..4612bb5be6ca 100644 struct nfs_fattr dir_attr; long timeout; diff --git a/kernel/sched/swait.c b/kernel/sched/swait.c -index e1c655f928c7..f230b1ac7f91 100644 +index e1c655f928c74..f230b1ac7f910 100644 --- a/kernel/sched/swait.c +++ b/kernel/sched/swait.c @@ -64,6 +64,7 @@ void swake_up_all(struct swait_queue_head *q) @@ -259,5 +259,5 @@ index e1c655f928c7..f230b1ac7f91 100644 list_splice_init(&q->task_list, &tmp); while (!list_empty(&tmp)) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch index e687b4d2d..83c9ac4c1 100644 --- a/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +++ b/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch @@ -1,9 +1,9 @@ -From 06c5210bfc8eff16e0d1df2430c7fcb07eae6c67 Mon Sep 17 00:00:00 2001 +From 84c3dc76def6dc05f7c4d5da3d1ca055631803c3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 20 Oct 2017 11:29:53 +0200 Subject: [PATCH 185/323] fs/dcache: disable preemption on i_dir_seq's write side -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz i_dir_seq is an opencoded seqcounter. Based on the code it looks like we could have two writers in parallel despite the fact that the d_lock is @@ -24,10 +24,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/fs/dcache.c b/fs/dcache.c -index 1f4255ef8722..26a187abf13a 100644 +index 4bcd832ace5dc..380c528e6e98c 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -2503,9 +2503,10 @@ EXPORT_SYMBOL(d_rehash); +@@ -2504,9 +2504,10 @@ EXPORT_SYMBOL(d_rehash); static inline unsigned start_dir_add(struct inode *dir) { @@ -40,7 +40,7 @@ index 1f4255ef8722..26a187abf13a 100644 return n; cpu_relax(); } -@@ -2513,7 +2514,8 @@ static inline unsigned start_dir_add(struct inode *dir) +@@ -2514,7 +2515,8 @@ static inline unsigned start_dir_add(struct inode *dir) static inline void end_dir_add(struct inode *dir, unsigned n) { @@ -50,7 +50,7 @@ index 1f4255ef8722..26a187abf13a 100644 } static void d_wait_lookup(struct dentry *dentry) -@@ -2549,7 +2551,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, +@@ -2550,7 +2552,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, retry: rcu_read_lock(); @@ -59,7 +59,7 @@ index 1f4255ef8722..26a187abf13a 100644 r_seq = read_seqbegin(&rename_lock); dentry = __d_lookup_rcu(parent, name, &d_seq); if (unlikely(dentry)) { -@@ -2577,7 +2579,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, +@@ -2578,7 +2580,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, } hlist_bl_lock(b); @@ -69,7 +69,7 @@ index 1f4255ef8722..26a187abf13a 100644 rcu_read_unlock(); goto retry; diff --git a/fs/inode.c b/fs/inode.c -index 5c7139aa2bda..4ee8239c055f 100644 +index 5c7139aa2bda7..4ee8239c055f1 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -158,7 +158,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode) @@ -82,10 +82,10 @@ index 5c7139aa2bda..4ee8239c055f 100644 inode->dirtied_when = 0; diff --git a/include/linux/fs.h b/include/linux/fs.h -index 82316863c71f..a29a0b8a1eca 100644 +index 6de70634e5471..16e5e3096a504 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -699,7 +699,7 @@ struct inode { +@@ -701,7 +701,7 @@ struct inode { struct block_device *i_bdev; struct cdev *i_cdev; char *i_link; @@ -95,5 +95,5 @@ index 82316863c71f..a29a0b8a1eca 100644 __u32 i_generation; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch index a289ccc4f..b1540a210 100644 --- a/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -1,8 +1,8 @@ -From a996bcbd8188409882599175697a464fa6265193 Mon Sep 17 00:00:00 2001 +From 1f37328d08b30476bad4a803b9278cfdbb857bf0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Sep 2016 17:36:35 +0200 Subject: [PATCH 186/323] net/Qdisc: use a seqlock instead seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The seqcount disables preemption on -RT while it is held which can't remove. Also we don't want the reader to spin for ages if the writer is @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> create mode 100644 include/net/net_seq_lock.h diff --git a/include/net/gen_stats.h b/include/net/gen_stats.h -index 1424e02cef90..163f8415e5db 100644 +index 1424e02cef90c..163f8415e5db5 100644 --- a/include/net/gen_stats.h +++ b/include/net/gen_stats.h @@ -6,6 +6,7 @@ @@ -70,7 +70,7 @@ index 1424e02cef90..163f8415e5db 100644 struct gnet_stats_rate_est64 *sample); diff --git a/include/net/net_seq_lock.h b/include/net/net_seq_lock.h new file mode 100644 -index 000000000000..95a497a72e51 +index 0000000000000..95a497a72e511 --- /dev/null +++ b/include/net/net_seq_lock.h @@ -0,0 +1,24 @@ @@ -99,7 +99,7 @@ index 000000000000..95a497a72e51 + +#endif diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h -index a62677be7452..8ce663a9b4f4 100644 +index a62677be74528..8ce663a9b4f45 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -10,6 +10,7 @@ @@ -169,7 +169,7 @@ index a62677be7452..8ce663a9b4f4 100644 struct Qdisc *root = qdisc_root_sleeping(qdisc); diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c -index 8e582e29a41e..e51f4854d8b2 100644 +index 8e582e29a41e3..e51f4854d8b2f 100644 --- a/net/core/gen_estimator.c +++ b/net/core/gen_estimator.c @@ -42,7 +42,7 @@ @@ -200,7 +200,7 @@ index 8e582e29a41e..e51f4854d8b2 100644 return gen_new_estimator(bstats, cpu_bstats, rate_est, lock, running, opt); diff --git a/net/core/gen_stats.c b/net/core/gen_stats.c -index e491b083b348..ef432cea2e10 100644 +index e491b083b3485..ef432cea2e105 100644 --- a/net/core/gen_stats.c +++ b/net/core/gen_stats.c @@ -137,7 +137,7 @@ __gnet_stats_copy_basic_cpu(struct gnet_stats_basic_packed *bstats, @@ -250,7 +250,7 @@ index e491b083b348..ef432cea2e10 100644 struct gnet_stats_basic_cpu __percpu *cpu, struct gnet_stats_basic_packed *b) diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c -index 5c2d230790db..a5430619ca5f 100644 +index 5c2d230790db9..a5430619ca5fc 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -1275,7 +1275,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev, @@ -263,7 +263,7 @@ index 5c2d230790db..a5430619ca5f 100644 err = -EOPNOTSUPP; if (sch->flags & TCQ_F_MQROOT) { diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c -index ecdd9e83f2f4..73b5aa797645 100644 +index ecdd9e83f2f49..73b5aa7976458 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -578,7 +578,11 @@ struct Qdisc noop_qdisc = { @@ -295,5 +295,5 @@ index ecdd9e83f2f4..73b5aa797645 100644 sch->ops = ops; sch->flags = ops->static_flags; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch b/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch index 130a8cb78..59fbf26a2 100644 --- a/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch +++ b/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch @@ -1,8 +1,8 @@ -From 442e014107fc616d529c73b0f0436980b817d021 Mon Sep 17 00:00:00 2001 +From 1bb2d66a2859bcb94d1fb58b0e2facdbf01335d1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 8 Sep 2020 16:57:11 +0200 Subject: [PATCH 187/323] net: Properly annotate the try-lock for the seqlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In patch ("net/Qdisc: use a seqlock instead seqcount") @@ -25,7 +25,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/include/net/net_seq_lock.h b/include/net/net_seq_lock.h -index 95a497a72e51..67710bace741 100644 +index 95a497a72e511..67710bace7418 100644 --- a/include/net/net_seq_lock.h +++ b/include/net/net_seq_lock.h @@ -6,15 +6,6 @@ @@ -45,7 +45,7 @@ index 95a497a72e51..67710bace741 100644 # define net_seqlock_t seqcount_t # define net_seq_begin(__r) read_seqcount_begin(__r) diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h -index 8ce663a9b4f4..eee11a1c9321 100644 +index 8ce663a9b4f45..eee11a1c93216 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -189,8 +189,16 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc) @@ -67,5 +67,5 @@ index 8ce663a9b4f4..eee11a1c9321 100644 #else /* Variant of write_seqcount_begin() telling lockdep a trylock -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch index 27d06fa44..70cd49be0 100644 --- a/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch +++ b/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch @@ -1,9 +1,9 @@ -From f4fb1a364b1dc97c110e6103ffe75b21e46a0e63 Mon Sep 17 00:00:00 2001 +From 734a98fe3cc0f2b9e691d240a60145fb9e011a09 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 24 Jul 2011 12:11:43 +0200 Subject: [PATCH 188/323] kconfig: Disable config options which are not RT compatible -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable stuff which is known to have issues on RT @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/Kconfig b/arch/Kconfig -index 628e1e7fe302..8bbbca8839e1 100644 +index 628e1e7fe3029..8bbbca8839e1f 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -37,6 +37,7 @@ config OPROFILE @@ -26,7 +26,7 @@ index 628e1e7fe302..8bbbca8839e1 100644 select RING_BUFFER_ALLOW_SWAP help diff --git a/mm/Kconfig b/mm/Kconfig -index 8c49d09da214..c8cbcb5118b0 100644 +index 8c49d09da2141..c8cbcb5118b02 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -387,7 +387,7 @@ config NOMMU_INITIAL_TRIM_EXCESS @@ -39,5 +39,5 @@ index 8c49d09da214..c8cbcb5118b0 100644 select XARRAY_MULTI help -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch b/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch index 9fc3d7351..1a4a4055a 100644 --- a/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch +++ b/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch @@ -1,8 +1,8 @@ -From 1da220d86ade67051c7c89743d6d037902c3839d Mon Sep 17 00:00:00 2001 +From 70adf5ebf9706c12042d4e636ac6fada7bf1ab29 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:44:03 -0500 Subject: [PATCH 189/323] mm: Allow only SLUB on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Memory allocation disables interrupts as part of the allocation and freeing process. For -RT it is important that this section remain short and don't @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+) diff --git a/init/Kconfig b/init/Kconfig -index 9807c66b24bb..df8d0d0f800f 100644 +index 9807c66b24bb6..df8d0d0f800f5 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1922,6 +1922,7 @@ choice @@ -43,5 +43,5 @@ index 9807c66b24bb..df8d0d0f800f 100644 SLOB replaces the stock allocator with a drastically simpler allocator. SLOB is generally more space efficient but -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch index eb62300e8..44914f42b 100644 --- a/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch +++ b/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch @@ -1,8 +1,8 @@ -From 4e23e134063807a9288e9b547e1955a9124ac5b7 Mon Sep 17 00:00:00 2001 +From 58a0e3606002b1e2e04a15a54888057ea26c9aec Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:03:52 +0200 Subject: [PATCH 190/323] sched: Disable CONFIG_RT_GROUP_SCHED on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Carsten reported problems when running: @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 1 insertion(+) diff --git a/init/Kconfig b/init/Kconfig -index df8d0d0f800f..7e9578a0176f 100644 +index df8d0d0f800f5..7e9578a0176f4 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -985,6 +985,7 @@ config CFS_BANDWIDTH @@ -31,5 +31,5 @@ index df8d0d0f800f..7e9578a0176f 100644 help This feature lets you explicitly allocate real CPU bandwidth -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch b/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch index aef82ca64..dc25d2fdd 100644 --- a/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch +++ b/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch @@ -1,8 +1,8 @@ -From 311a1cf04650b065502758f992df44702d23f6cd Mon Sep 17 00:00:00 2001 +From 6016903080533047579420eab847d34635ca0872 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 191/323] net/core: disable NET_RX_BUSY_POLL on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz napi_busy_loop() disables preemption and performs a NAPI poll. We can't acquire sleeping locks with disabled preemption so we would have to work around this @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/Kconfig b/net/Kconfig -index a22c3fb88564..5a17bded7136 100644 +index a22c3fb885647..5a17bded71365 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -280,7 +280,7 @@ config CGROUP_NET_CLASSID @@ -40,5 +40,5 @@ index a22c3fb88564..5a17bded7136 100644 config BQL bool -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch index ed06b5934..a82a6e62f 100644 --- a/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch +++ b/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch @@ -1,8 +1,8 @@ -From 6c6afc933fea370e5c90a34ed6b622bcc274af5a Mon Sep 17 00:00:00 2001 +From 1fc71b95bb75dea0164e3b70f52b0997d93fd9da 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 192/323] efi: Disable runtime services on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Based on meassurements the EFI functions get_variable / get_next_variable take up to 2us which looks okay. @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 332739f3eded..8d390091203f 100644 +index 332739f3eded5..8d390091203fc 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -66,7 +66,7 @@ struct mm_struct efi_mm = { @@ -42,5 +42,5 @@ index 332739f3eded..8d390091203f 100644 { disable_runtime = true; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0193-efi-Allow-efi-runtime.patch b/debian/patches-rt/0193-efi-Allow-efi-runtime.patch index f52a8c240..c87127b8e 100644 --- a/debian/patches-rt/0193-efi-Allow-efi-runtime.patch +++ b/debian/patches-rt/0193-efi-Allow-efi-runtime.patch @@ -1,8 +1,8 @@ -From 712d19894b0524bdc524334f6d76babef13db194 Mon Sep 17 00:00:00 2001 +From 14e8e26cecda340029684a9e960739fd4291678d 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 193/323] efi: Allow efi=runtime -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In case the command line option "efi=noruntime" is default at built-time, the user could overwrite its state by `efi=runtime' and allow it again. @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 8d390091203f..8589df0e8c1f 100644 +index 8d390091203fc..8589df0e8c1fc 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -97,6 +97,9 @@ static int __init parse_efi_cmdline(char *str) @@ -28,5 +28,5 @@ index 8d390091203f..8589df0e8c1f 100644 set_bit(EFI_MEM_NO_SOFT_RESERVE, &efi.flags); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0194-rt-Add-local-irq-locks.patch b/debian/patches-rt/0194-rt-Add-local-irq-locks.patch index 53b3fd552..80b543985 100644 --- a/debian/patches-rt/0194-rt-Add-local-irq-locks.patch +++ b/debian/patches-rt/0194-rt-Add-local-irq-locks.patch @@ -1,8 +1,8 @@ -From 0d3e0b0db513aac6e4cd2e2d084b7a76f4d28c44 Mon Sep 17 00:00:00 2001 +From c13ea7a1c00bf021e2dd8fc58b9b6a00c554f22b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 20 Jun 2011 09:03:47 +0200 Subject: [PATCH 194/323] rt: Add local irq locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 103 insertions(+), 8 deletions(-) diff --git a/include/linux/local_lock_internal.h b/include/linux/local_lock_internal.h -index 3f02b818625e..1b8ae034946f 100644 +index 3f02b818625ef..1b8ae034946fa 100644 --- a/include/linux/local_lock_internal.h +++ b/include/linux/local_lock_internal.h @@ -7,13 +7,39 @@ @@ -178,5 +178,5 @@ index 3f02b818625e..1b8ae034946f 100644 + +#endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch index af5ab46e8..9d78b67dd 100644 --- a/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch +++ b/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch @@ -1,8 +1,8 @@ -From f4ff44284474fd78b52414326c579dcd8196fc47 Mon Sep 17 00:00:00 2001 +From 4f7f9245f09c19b17efd7950f0751a8376620638 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov <oleg@redhat.com> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 195/323] signal/x86: Delay calling signals in atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -39,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 53 insertions(+) diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h -index 6fd8410a3910..f3bf2f515edb 100644 +index 6fd8410a3910c..f3bf2f515edb3 100644 --- a/arch/x86/include/asm/signal.h +++ b/arch/x86/include/asm/signal.h @@ -28,6 +28,19 @@ typedef struct { @@ -63,7 +63,7 @@ index 6fd8410a3910..f3bf2f515edb 100644 typedef sigset_t compat_sigset_t; #endif diff --git a/include/linux/sched.h b/include/linux/sched.h -index 3650fdaac4ca..d259126f46cf 100644 +index 3650fdaac4caa..d259126f46cf4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1001,6 +1001,10 @@ struct task_struct { @@ -78,7 +78,7 @@ index 3650fdaac4ca..d259126f46cf 100644 size_t sas_ss_size; unsigned int sas_ss_flags; diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index e6a66de1202a..e6da86039ccf 100644 +index e6a66de1202af..e6da86039ccf5 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -160,6 +160,14 @@ static unsigned long exit_to_user_mode_loop(struct pt_regs *regs, @@ -97,7 +97,7 @@ index e6a66de1202a..e6da86039ccf 100644 uprobe_notify_resume(regs); diff --git a/kernel/signal.c b/kernel/signal.c -index 5ab628e2afc5..e8819aabe3cd 100644 +index 5ab628e2afc5f..e8819aabe3cd5 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1314,6 +1314,34 @@ force_sig_info_to_task(struct kernel_siginfo *info, struct task_struct *t) @@ -136,5 +136,5 @@ index 5ab628e2afc5..e8819aabe3cd 100644 action = &t->sighand->action[sig-1]; ignored = action->sa.sa_handler == SIG_IGN; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index 999298a0e..65736b5c1 100644 --- a/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -1,9 +1,9 @@ -From 1e362e9e053f608c55deb05577371d61d5db1a92 Mon Sep 17 00:00:00 2001 +From d59e72b2bdf4ff6c85da3833dfd8c85a9b2df288 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 28 May 2018 15:24:20 +0200 Subject: [PATCH 196/323] Split IRQ-off and zone->lock while freeing pages from PCP list #1 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 124ab9324610..0dc0eb767fb6 100644 +index ed66601044be5..ec5501a84bfb3 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1331,7 +1331,7 @@ static inline void prefetch_buddy(struct page *page) @@ -168,5 +168,5 @@ index 124ab9324610..0dc0eb767fb6 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index 60c805684..dfb3aa695 100644 --- a/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -1,9 +1,9 @@ -From 3bb0aee1e418d977b819e6d0632d71cbb7cd1138 Mon Sep 17 00:00:00 2001 +From 5bc0456527b6898974f60e4b68b569032c459101 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 28 May 2018 15:24:21 +0200 Subject: [PATCH 197/323] Split IRQ-off and zone->lock while freeing pages from PCP list #2 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -18,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 0dc0eb767fb6..a3f1e4c6bdc8 100644 +index ec5501a84bfb3..ae573a3f91964 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1341,8 +1341,8 @@ static inline void prefetch_buddy(struct page *page) @@ -168,5 +168,5 @@ index 0dc0eb767fb6..a3f1e4c6bdc8 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch index 903ce7fd5..4fe9d6c2e 100644 --- a/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From 24eecb5c4b97d1a359a8b16be1dae2a499720795 Mon Sep 17 00:00:00 2001 +From d6ac960f2dd01afbee274b69b6a0f70c447669ff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 28 May 2018 15:24:22 +0200 Subject: [PATCH 198/323] mm/SLxB: change list_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 71 insertions(+), 71 deletions(-) diff --git a/mm/slab.c b/mm/slab.c -index b2cc2cf7d8a3..677c0651ef66 100644 +index b2cc2cf7d8a33..677c0651ef669 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -233,7 +233,7 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent) @@ -370,7 +370,7 @@ index b2cc2cf7d8a3..677c0651ef66 100644 num_objs = total_slabs * cachep->num; active_slabs = total_slabs - free_slabs; diff --git a/mm/slab.h b/mm/slab.h -index 6952e10cf33b..ed5dd6e9e0cc 100644 +index 6952e10cf33b4..ed5dd6e9e0cca 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -543,7 +543,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, @@ -383,7 +383,7 @@ index 6952e10cf33b..ed5dd6e9e0cc 100644 #ifdef CONFIG_SLAB struct list_head slabs_partial; /* partial list first, better asm code */ diff --git a/mm/slub.c b/mm/slub.c -index b0f637519ac9..863554db3323 100644 +index b0f637519ac99..863554db3323d 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1214,7 +1214,7 @@ static noinline int free_debug_processing( @@ -599,5 +599,5 @@ index b0f637519ac9..863554db3323 100644 for (i = 0; i < t.count; i++) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch index 8af579dea..10c4e6b99 100644 --- a/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +++ b/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch @@ -1,9 +1,9 @@ -From e620c8c3d37a6e6ff999f303521997d2950a71cd Mon Sep 17 00:00:00 2001 +From 4c89b48491a9f4a5982e6d78cb78bee7a4d8fbcb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 21 Jun 2018 17:29:19 +0200 Subject: [PATCH 199/323] mm/SLUB: delay giving back empty slubs to IRQ enabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz __free_slab() is invoked with disabled interrupts which increases the irq-off time while __free_pages() is doing the work. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index 863554db3323..faba29039375 100644 +index 863554db3323d..faba290393757 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1494,6 +1494,12 @@ static bool freelist_corrupted(struct kmem_cache *s, struct page *page, @@ -219,5 +219,5 @@ index 863554db3323..faba29039375 100644 if (debug_guardpage_minorder()) slub_max_order = 0; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch b/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch index 0fd8180bd..a3871d1b3 100644 --- a/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch +++ b/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch @@ -1,9 +1,9 @@ -From d903b2377e443ae1df59e15824b683d326e7c24b Mon Sep 17 00:00:00 2001 +From 0e1bfa62810b579032c9e4a5936054f1cf813f2d Mon Sep 17 00:00:00 2001 From: Kevin Hao <haokexin@gmail.com> Date: Mon, 4 May 2020 11:34:07 +0800 Subject: [PATCH 200/323] mm: slub: Always flush the delayed empty slubs in flush_all() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz After commit f0b231101c94 ("mm/SLUB: delay giving back empty slubs to IRQ enabled regions"), when the free_slab() is invoked with the IRQ @@ -43,7 +43,7 @@ Cc: stable-rt@vger.kernel.org 1 file changed, 3 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index faba29039375..cb414c1f9ef6 100644 +index faba290393757..cb414c1f9ef6b 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2501,9 +2501,6 @@ static void flush_all(struct kmem_cache *s) @@ -57,5 +57,5 @@ index faba29039375..cb414c1f9ef6 100644 raw_spin_lock_irq(&f->lock); list_splice_init(&f->list, &tofree); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch b/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch index c233be3ef..9d7b596a1 100644 --- a/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch +++ b/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch @@ -1,9 +1,9 @@ -From 6f5d1f04864beb65079068f48faf17c269c8509b Mon Sep 17 00:00:00 2001 +From d3f261aad58dac8596c9524a2565e5658a3de93e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 26 Feb 2021 17:26:04 +0100 Subject: [PATCH 201/323] mm: slub: Don't resize the location tracking cache on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The location tracking cache has a size of a page and is resized if its current size is too small. @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+) diff --git a/mm/slub.c b/mm/slub.c -index cb414c1f9ef6..57c598dd7454 100644 +index cb414c1f9ef6b..57c598dd7454e 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -4682,6 +4682,9 @@ static int alloc_loc_track(struct loc_track *t, unsigned long max, gfp_t flags) @@ -33,5 +33,5 @@ index cb414c1f9ef6..57c598dd7454 100644 l = (void *)__get_free_pages(flags, order); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch b/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch index 486873119..0b8182119 100644 --- a/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch +++ b/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch @@ -1,9 +1,9 @@ -From 4c4d7886b6c8d16df841ac103b4742481ad5f014 Mon Sep 17 00:00:00 2001 +From c01fbe44adc26256f7a7a641def9651107ad0525 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 2 Jul 2020 14:27:23 +0200 Subject: [PATCH 202/323] mm/page_alloc: Use migrate_disable() in drain_local_pages_wq() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz drain_local_pages_wq() disables preemption to avoid CPU migration during CPU hotplug. @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index a3f1e4c6bdc8..508650843235 100644 +index ae573a3f91964..9831b1fcda36f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3048,9 +3048,9 @@ static void drain_local_pages_wq(struct work_struct *work) @@ -35,5 +35,5 @@ index a3f1e4c6bdc8..508650843235 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch index 8102e89d2..f60b6d833 100644 --- a/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch +++ b/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -1,8 +1,8 @@ -From 9f33cce55eb2594c4602653658103381064572d7 Mon Sep 17 00:00:00 2001 +From f351af9d4f8fc2ac1fe1252ef2e57c22ce8e77b1 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:37 -0500 Subject: [PATCH 203/323] mm: page_alloc: rt-friendly per-cpu pages -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. @@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 508650843235..c5eb7d6844ae 100644 +index 9831b1fcda36f..16200cbddaf1c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -61,6 +61,7 @@ @@ -174,7 +174,7 @@ index 508650843235..c5eb7d6844ae 100644 return NULL; } -@@ -8892,7 +8901,7 @@ void zone_pcp_reset(struct zone *zone) +@@ -8894,7 +8903,7 @@ void zone_pcp_reset(struct zone *zone) struct per_cpu_pageset *pset; /* avoid races with drain_pages() */ @@ -183,7 +183,7 @@ index 508650843235..c5eb7d6844ae 100644 if (zone->pageset != &boot_pageset) { for_each_online_cpu(cpu) { pset = per_cpu_ptr(zone->pageset, cpu); -@@ -8901,7 +8910,7 @@ void zone_pcp_reset(struct zone *zone) +@@ -8903,7 +8912,7 @@ void zone_pcp_reset(struct zone *zone) free_percpu(zone->pageset); zone->pageset = &boot_pageset; } @@ -193,5 +193,5 @@ index 508650843235..c5eb7d6844ae 100644 #ifdef CONFIG_MEMORY_HOTREMOVE -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch b/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch index 28c14ea49..025f0cf77 100644 --- a/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch +++ b/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From d2d45bd13ad6112afefb224d46501b76473196eb Mon Sep 17 00:00:00 2001 +From 03f679c7fafaa80617b5184f7dfdc7e44e60f91b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 16 Jul 2020 18:47:50 +0200 Subject: [PATCH 204/323] mm/slub: Make object_map_lock a raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The variable object_map is protected by object_map_lock. The lock is always acquired in debug code and within already atomic context @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index 57c598dd7454..ac2ddf6a4220 100644 +index 57c598dd7454e..ac2ddf6a42204 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -435,7 +435,7 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page, @@ -46,5 +46,5 @@ index 57c598dd7454..ac2ddf6a4220 100644 static inline unsigned int size_from_object(struct kmem_cache *s) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch index d3496f78e..be6c33589 100644 --- a/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch +++ b/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch @@ -1,8 +1,8 @@ -From c0f57e0b6278391f1fec71ccb1e25fe46deade2b Mon Sep 17 00:00:00 2001 +From 42fdb68c7f5a176c19ee559ccd79a9466b580340 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 9 Jan 2013 12:08:15 +0100 Subject: [PATCH 205/323] slub: Enable irqs for __GFP_WAIT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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. @@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mm/slub.c b/mm/slub.c -index ac2ddf6a4220..00f1d1206dbc 100644 +index ac2ddf6a42204..00f1d1206dbcf 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1750,10 +1750,18 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) @@ -72,5 +72,5 @@ index ac2ddf6a4220..00f1d1206dbc 100644 s = slab_pre_alloc_hook(s, &objcg, size, flags); if (unlikely(!s)) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch index 9f521b566..0843b55c7 100644 --- a/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch +++ b/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch @@ -1,8 +1,8 @@ -From 8da7619853b38005d113af771657ad188006e1d5 Mon Sep 17 00:00:00 2001 +From df50613423cd56f6d8dc411cd384abb274ce5c8f 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 206/323] slub: Disable SLUB_CPU_PARTIAL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/Kconfig b/init/Kconfig -index 7e9578a0176f..c5f276d782de 100644 +index 7e9578a0176f4..c5f276d782def 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -2011,7 +2011,7 @@ config SHUFFLE_PAGE_ALLOCATOR @@ -50,5 +50,5 @@ index 7e9578a0176f..c5f276d782de 100644 help Per cpu partial caches accelerate objects allocation and freeing -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch b/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch index 73fbdfd8d..42e2c8a37 100644 --- a/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch +++ b/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch @@ -1,9 +1,9 @@ -From 7a4ec53aa79ebc416eb752e204669e0d4dc53a06 Mon Sep 17 00:00:00 2001 +From b614af0078225d0c18eefd9b4427bbbea648b10c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 18 Aug 2020 10:30:00 +0200 Subject: [PATCH 207/323] mm: memcontrol: Provide a local_lock for per-CPU memcg_stock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The interrupts are disabled to ensure CPU-local access to the per-CPU variable `memcg_stock'. @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 49566afaef1c..d2a47428831b 100644 +index 49566afaef1ca..d2a47428831b1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2202,6 +2202,7 @@ void unlock_page_memcg(struct page *page) @@ -140,5 +140,5 @@ index 49566afaef1c..d2a47428831b 100644 for_each_node(node) { struct mem_cgroup_tree_per_node *rtpn; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch index e1de69b43..d790badf8 100644 --- a/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +++ b/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -1,9 +1,9 @@ -From 915ee75a3da5732cf20be8f92b31d3ce33042c5b Mon Sep 17 00:00:00 2001 +From 02f40c13ec3c154a0f0264968448ca2add43db7b 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 208/323] mm/memcontrol: Don't call schedule_work_on in preemption disabled context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The following trace is triggered when running ltp oom test cases: @@ -48,7 +48,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 d2a47428831b..53522a52ff15 100644 +index d2a47428831b1..53522a52ff15a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2349,7 +2349,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) @@ -70,5 +70,5 @@ index d2a47428831b..53522a52ff15 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch index 143299bc1..e22defa86 100644 --- a/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch +++ b/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch @@ -1,9 +1,9 @@ -From aed289fe7a9923b6c8a98fa08048d56aa97c71c4 Mon Sep 17 00:00:00 2001 +From c572959d8cc9a8114dd9f86e32d7ec69c0596bd6 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 209/323] mm/memcontrol: Replace local_irq_disable with local locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There are a few local_irq_disable() which then take sleeping locks. This patch converts them local locks. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 53522a52ff15..5bf696318643 100644 +index 53522a52ff15a..5bf6963186431 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -63,6 +63,7 @@ @@ -119,5 +119,5 @@ index 53522a52ff15..5bf696318643 100644 css_put(&memcg->css); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch index f48595a8d..522264d1d 100644 --- a/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch +++ b/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch @@ -1,8 +1,8 @@ -From 7e86ac4a42c020de9b35b02a3ef02f2fc0dee2ed Mon Sep 17 00:00:00 2001 +From 831c1de27aa006ee17ae674620fedc22002dbffd Mon Sep 17 00:00:00 2001 From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Tue, 22 Mar 2016 11:16:09 +0100 Subject: [PATCH 210/323] mm/zsmalloc: copy with get_cpu_var() and locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz get_cpu_var() disables preemption and triggers a might_sleep() splat later. This is replaced with get_locked_var(). @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 79 insertions(+), 6 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c -index c18dc8e61d35..7dad2ff3e778 100644 +index c18dc8e61d352..7dad2ff3e7785 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -57,6 +57,7 @@ @@ -208,5 +208,5 @@ index c18dc8e61d35..7dad2ff3e778 100644 migrate_read_unlock(zspage); unpin_tag(handle); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch b/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch index 772cff44a..e2f0b6afe 100644 --- a/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch +++ b/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch @@ -1,8 +1,8 @@ -From 5bfa3eb76d50818c90253df970e7afbc747211c2 Mon Sep 17 00:00:00 2001 +From 1446b24799d0e4081dfc8c44d81a09511969fb08 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> Date: Tue, 25 Jun 2019 11:28:04 -0300 Subject: [PATCH 211/323] mm/zswap: Use local lock to protect per-CPU data -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz zwap uses per-CPU compression. The per-CPU data pointer is acquired with get_cpu_ptr() which implicitly disables preemption. It allocates @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/mm/zswap.c b/mm/zswap.c -index fbb782924ccc..b24f761b9241 100644 +index fbb782924ccc5..b24f761b9241c 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -18,6 +18,7 @@ @@ -146,5 +146,5 @@ index fbb782924ccc..b24f761b9241 100644 zpool_unmap_handle(entry->pool->zpool, entry->handle); BUG_ON(ret); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch index 461bb6d81..7f7938d49 100644 --- a/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch +++ b/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch @@ -1,8 +1,8 @@ -From 6ef3a23d8f37d55fa94b9f1212830a3b8018c76f Mon Sep 17 00:00:00 2001 +From 8fd65bce6a0966ab0fdfae10114be9846a37e993 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 6 Nov 2011 12:26:18 +0100 Subject: [PATCH 212/323] x86: kvm Require const tsc for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds @@ -15,10 +15,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 8 insertions(+) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 13e4699a0744..21a1aa76eb23 100644 +index 8e0b957c62193..32d1df47304ed 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -8167,6 +8167,14 @@ int kvm_arch_init(void *opaque) +@@ -8170,6 +8170,14 @@ int kvm_arch_init(void *opaque) goto out; } @@ -34,5 +34,5 @@ index 13e4699a0744..21a1aa76eb23 100644 x86_fpu_cache = kmem_cache_create("x86_fpu", sizeof(struct fpu), __alignof__(struct fpu), SLAB_ACCOUNT, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0213-wait.h-include-atomic.h.patch b/debian/patches-rt/0213-wait.h-include-atomic.h.patch index 1d060be29..3d879c8b0 100644 --- a/debian/patches-rt/0213-wait.h-include-atomic.h.patch +++ b/debian/patches-rt/0213-wait.h-include-atomic.h.patch @@ -1,11 +1,11 @@ -From 25ddd3a9a10e8b30e5c6ff85e57532a5f20ffa9d Mon Sep 17 00:00:00 2001 +From e047fc179906dbb87c4e16a6b10dbf11e5baf950 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 213/323] wait.h: include atomic.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz | CC init/main.o |In file included from include/linux/mmzone.h:9:0, @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+) diff --git a/include/linux/wait.h b/include/linux/wait.h -index 1663e47681a3..20aae69387aa 100644 +index 1663e47681a30..20aae69387aa2 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -10,6 +10,7 @@ @@ -38,5 +38,5 @@ index 1663e47681a3..20aae69387aa 100644 typedef struct wait_queue_entry wait_queue_entry_t; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch b/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch index c157da12c..e46b58e1e 100644 --- a/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch +++ b/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch @@ -1,8 +1,8 @@ -From a178dbd2a3f8eeedf39cde9582a29bc95f335b17 Mon Sep 17 00:00:00 2001 +From 1052e9d89733ee3d6eac5b928d11d558ccb3d255 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 6 Jun 2011 12:12:51 +0200 Subject: [PATCH 214/323] sched: Limit the number of task migrations per batch -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index aaeed4b14278..3d7e9ecbd376 100644 +index aaeed4b14278a..3d7e9ecbd3760 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -65,7 +65,11 @@ const_debug unsigned int sysctl_sched_features = @@ -29,5 +29,5 @@ index aaeed4b14278..3d7e9ecbd376 100644 /* * period over which we measure -rt task CPU usage in us. -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch index caf0a9bc6..72fc6b13a 100644 --- a/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch +++ b/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch @@ -1,8 +1,8 @@ -From e29feec1bad5cc39575600e68d6f5523b17c189a Mon Sep 17 00:00:00 2001 +From 7b41ff050923c688cd98eddadde916cf06dd3d8d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 6 Jun 2011 12:20:33 +0200 Subject: [PATCH 215/323] sched: Move mmdrop to RCU on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Takes sleeping locks and calls into the memory allocator, so nothing we want to do in task switch and oder atomic contexts. @@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h -index 4eb38918da8f..2a83d965b00e 100644 +index 4eb38918da8f8..2a83d965b00e1 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -12,6 +12,7 @@ @@ -38,7 +38,7 @@ index 4eb38918da8f..2a83d965b00e 100644 atomic_long_t hugetlb_usage; #endif diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h -index e3e5e149b00e..6d39ad0f55bb 100644 +index e3e5e149b00e6..6d39ad0f55bb9 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -49,6 +49,17 @@ static inline void mmdrop(struct mm_struct *mm) @@ -60,7 +60,7 @@ index e3e5e149b00e..6d39ad0f55bb 100644 * mmget() - Pin the address space associated with a &struct mm_struct. * @mm: The address space to pin. diff --git a/kernel/fork.c b/kernel/fork.c -index 32b9d7205ac1..078058436f2f 100644 +index 32b9d7205ac1b..078058436f2f9 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -691,6 +691,19 @@ void __mmdrop(struct mm_struct *mm) @@ -84,7 +84,7 @@ index 32b9d7205ac1..078058436f2f 100644 { struct mm_struct *mm; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3d7e9ecbd376..5e5d28f5d970 100644 +index 3d7e9ecbd3760..5e5d28f5d9706 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4269,9 +4269,13 @@ static struct rq *finish_task_switch(struct task_struct *prev) @@ -111,5 +111,5 @@ index 3d7e9ecbd376..5e5d28f5d970 100644 * Ensure that the idle task is using init_mm right before its CPU goes * offline. -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch index c420a7438..ccd4a4751 100644 --- a/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +++ b/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch @@ -1,9 +1,9 @@ -From 0d19bdfa59a3f9976aacac9944e5c2519f1a508b Mon Sep 17 00:00:00 2001 +From 88448f51d42fa9645d4f45c42a9b16239fba967f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 21 Nov 2016 19:31:08 +0100 Subject: [PATCH 216/323] kernel/sched: move stack + kprobe clean up to __put_task_struct() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no need to free the stack before the task struct (except for reasons mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if @@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c -index 078058436f2f..2a11bf5f9e30 100644 +index 078058436f2f9..2a11bf5f9e301 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -42,6 +42,7 @@ @@ -57,7 +57,7 @@ index 078058436f2f..2a11bf5f9e30 100644 cgroup_free(tsk); task_numa_free(tsk, true); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 5e5d28f5d970..81bc9efbd191 100644 +index 5e5d28f5d9706..81bc9efbd1916 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4281,15 +4281,6 @@ static struct rq *finish_task_switch(struct task_struct *prev) @@ -77,5 +77,5 @@ index 5e5d28f5d970..81bc9efbd191 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch index 71686f72d..67181bf6c 100644 --- a/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch +++ b/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch @@ -1,9 +1,9 @@ -From 55d4bd8636745b8d1b987b6561ae2b14cebace78 Mon Sep 17 00:00:00 2001 +From 30c69824d118b7c3798a98c48e256ec61955ae79 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 7 Jun 2011 09:19:06 +0200 Subject: [PATCH 217/323] sched: Do not account rcu_preempt_depth on RT in might_sleep() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT changes the rcu_preempt_depth semantics, so we cannot check for it in might_sleep(). @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h -index bb9681309e0d..cbeea5c61a3a 100644 +index a276bb69ee59c..952c9785f1860 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -54,6 +54,11 @@ void __rcu_read_unlock(void); @@ -40,7 +40,7 @@ index bb9681309e0d..cbeea5c61a3a 100644 /* Internal to kernel */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 81bc9efbd191..2f689b4fa68b 100644 +index 81bc9efbd1916..2f689b4fa68b5 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -7878,7 +7878,7 @@ void __init sched_init(void) @@ -53,5 +53,5 @@ index 81bc9efbd191..2f689b4fa68b 100644 return (nested == preempt_offset); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch index 77eb3b029..8826721a3 100644 --- a/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch +++ b/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch @@ -1,8 +1,8 @@ -From 5b867d72795af288909e6370aabef927a70c8d78 Mon Sep 17 00:00:00 2001 +From 8b31e28f84d9038c778f2edab0fa272e6f741369 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 13 Sep 2011 16:42:35 +0200 Subject: [PATCH 218/323] sched: Disable TTWU_QUEUE on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The queued remote wakeup mechanism can introduce rather large latencies if the number of migrated tasks is high. Disable it for RT. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 5 insertions(+) diff --git a/kernel/sched/features.h b/kernel/sched/features.h -index f1bf5e12d889..402fd37fb340 100644 +index f1bf5e12d889e..402fd37fb340a 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -45,11 +45,16 @@ SCHED_FEAT(DOUBLE_TICK, false) @@ -34,5 +34,5 @@ index f1bf5e12d889..402fd37fb340 100644 /* * When doing wakeups, attempt to limit superfluous scans of the LLC domain. -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch index 173c118c2..6ed414720 100644 --- a/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,8 +1,8 @@ -From c63275b524df4d3556c7cf1690bc874d4a8cd72e Mon Sep 17 00:00:00 2001 +From 5deee6753f583147f213b46951835c512c5068ff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 13 Nov 2011 17:17:09 +0100 Subject: [PATCH 219/323] softirq: Check preemption after reenabling interrupts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 3 files changed, 15 insertions(+) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 5ceac863e729..fb140e00f74d 100644 +index 5ceac863e7298..fb140e00f74dc 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -190,8 +190,10 @@ do { \ @@ -44,7 +44,7 @@ index 5ceac863e729..fb140e00f74d 100644 #endif /* CONFIG_PREEMPT_COUNT */ diff --git a/lib/irq_poll.c b/lib/irq_poll.c -index 2f17b488d58e..7557bf7ecf1f 100644 +index 2f17b488d58e1..7557bf7ecf1f1 100644 --- a/lib/irq_poll.c +++ b/lib/irq_poll.c @@ -37,6 +37,7 @@ void irq_poll_sched(struct irq_poll *iop) @@ -88,7 +88,7 @@ index 2f17b488d58e..7557bf7ecf1f 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 3fc27b52bf42..3f23ac2ad497 100644 +index 0e2c433bebcd4..55d0c53864989 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3052,6 +3052,7 @@ static void __netif_reschedule(struct Qdisc *q) @@ -107,7 +107,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4596,6 +4598,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4604,6 +4606,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -115,7 +115,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -6348,12 +6351,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -6356,12 +6359,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) sd->rps_ipi_list = NULL; local_irq_enable(); @@ -130,7 +130,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -6431,6 +6436,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -6439,6 +6444,7 @@ void __napi_schedule(struct napi_struct *n) local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -138,7 +138,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -10962,6 +10968,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -10970,6 +10976,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); @@ -147,5 +147,5 @@ index 3fc27b52bf42..3f23ac2ad497 100644 #ifdef CONFIG_RPS remsd = oldsd->rps_ipi_list; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch index 90e5f9abf..e7ea088e2 100644 --- a/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch +++ b/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch @@ -1,8 +1,8 @@ -From 539938b186e370ddf9bfc1d68703cfddf80a3f42 Mon Sep 17 00:00:00 2001 +From 5d7696053592d0d28b59006bca62a36ea81449cd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 13:59:17 +0200 Subject: [PATCH 220/323] softirq: Disable softirq stacks for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. @@ -20,7 +20,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 8 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c -index e8a548447dd6..5ad4f27cba10 100644 +index e8a548447dd68..5ad4f27cba104 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c @@ -753,10 +753,12 @@ void *mcheckirq_ctx[NR_CPUS] __read_mostly; @@ -37,7 +37,7 @@ index e8a548447dd6..5ad4f27cba10 100644 irq_hw_number_t virq_to_hw(unsigned int virq) { diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S -index 717e658b90fd..08ee95ad6593 100644 +index 717e658b90fd8..08ee95ad6593a 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S @@ -31,6 +31,7 @@ @@ -57,7 +57,7 @@ index 717e658b90fd..08ee95ad6593 100644 /* * void call_do_irq(struct pt_regs *regs, void *sp); diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S -index 070465825c21..a6b33f7b3264 100644 +index 070465825c210..a6b33f7b32646 100644 --- a/arch/powerpc/kernel/misc_64.S +++ b/arch/powerpc/kernel/misc_64.S @@ -27,6 +27,7 @@ @@ -77,7 +77,7 @@ index 070465825c21..a6b33f7b3264 100644 _GLOBAL(call_do_irq) mflr r0 diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c -index ab5f790b0cd2..5db7af565dec 100644 +index ab5f790b0cd27..5db7af565decc 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -148,6 +148,7 @@ void irq_ctx_exit(int cpu) @@ -97,7 +97,7 @@ index ab5f790b0cd2..5db7af565dec 100644 static inline void handle_one_irq(unsigned int irq) { diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c -index 3ec9f1402aad..eb21682abfcb 100644 +index 3ec9f1402aad3..eb21682abfcb1 100644 --- a/arch/sparc/kernel/irq_64.c +++ b/arch/sparc/kernel/irq_64.c @@ -854,6 +854,7 @@ void __irq_entry handler_irq(int pil, struct pt_regs *regs) @@ -117,7 +117,7 @@ index 3ec9f1402aad..eb21682abfcb 100644 #ifdef CONFIG_HOTPLUG_CPU void fixup_irqs(void) diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c -index 0b79efc87be5..93c6b88b382a 100644 +index 0b79efc87be52..93c6b88b382a0 100644 --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c @@ -131,6 +131,7 @@ int irq_init_percpu_irqstack(unsigned int cpu) @@ -137,7 +137,7 @@ index 0b79efc87be5..93c6b88b382a 100644 void __handle_irq(struct irq_desc *desc, struct pt_regs *regs) { diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c -index 440eed558558..7cfc4e6b7c94 100644 +index 440eed558558d..7cfc4e6b7c94a 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c @@ -72,7 +72,9 @@ int irq_init_percpu_irqstack(unsigned int cpu) @@ -151,7 +151,7 @@ index 440eed558558..7cfc4e6b7c94 100644 } +#endif diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index a1c64d969532..7f185482ea22 100644 +index a1c64d969532d..7f185482ea221 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -564,7 +564,7 @@ struct softirq_action @@ -164,5 +164,5 @@ index a1c64d969532..7f185482ea22 100644 #else static inline void do_softirq_own_stack(void) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch b/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch index aeba8e9de..a8f1ac957 100644 --- a/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch +++ b/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch @@ -1,8 +1,8 @@ -From 3f41204b42e2804a8eff4dbae9f811c5112a5e49 Mon Sep 17 00:00:00 2001 +From 9726c5dc121fa7f5aedda9dd3b39e1924984a2ac Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 16 Jun 2017 19:03:16 +0200 Subject: [PATCH 221/323] net/core: use local_bh_disable() in netif_rx_ni() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In 2004 netif_rx_ni() gained a preempt_disable() section around netif_rx() and its do_softirq() + testing for it. The do_softirq() part @@ -19,10 +19,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 3f23ac2ad497..f973f53c7a1f 100644 +index 55d0c53864989..7d95a0251617e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4870,11 +4870,9 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4878,11 +4878,9 @@ int netif_rx_ni(struct sk_buff *skb) trace_netif_rx_ni_entry(skb); @@ -37,5 +37,5 @@ index 3f23ac2ad497..f973f53c7a1f 100644 return err; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0222-pid.h-include-atomic.h.patch b/debian/patches-rt/0222-pid.h-include-atomic.h.patch index 159e5afbe..dc7ae5443 100644 --- a/debian/patches-rt/0222-pid.h-include-atomic.h.patch +++ b/debian/patches-rt/0222-pid.h-include-atomic.h.patch @@ -1,8 +1,8 @@ -From 281d6228df38fdd331290ccf7753daee6ee7e520 Mon Sep 17 00:00:00 2001 +From 9a53ce786cf1397ad140733c2fc7ee3c9ffee186 Mon Sep 17 00:00:00 2001 From: Grygorii Strashko <Grygorii.Strashko@linaro.org> Date: Tue, 21 Jul 2015 19:43:56 +0300 Subject: [PATCH 222/323] pid.h: include atomic.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This patch fixes build error: CC kernel/pid_namespace.o @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+) diff --git a/include/linux/pid.h b/include/linux/pid.h -index fa10acb8d6a4..2f86f84e9fc1 100644 +index fa10acb8d6a42..2f86f84e9fc1a 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h @@ -3,6 +3,7 @@ @@ -39,5 +39,5 @@ index fa10acb8d6a4..2f86f84e9fc1 100644 #include <linux/refcount.h> -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch index efff232da..c2cfa07bf 100644 --- a/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +++ b/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -1,8 +1,8 @@ -From 2b742ac53e22db703a46b21ff3817c797b7cb071 Mon Sep 17 00:00:00 2001 +From 27d5c6ef64ac2461259d6edd971b61408e4bfda4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 29 Aug 2013 18:21:04 +0200 Subject: [PATCH 223/323] ptrace: fix ptrace vs tasklist_lock race -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz As explained by Alexander Fyodorov <halcy@yandex.ru>: @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 3 files changed, 68 insertions(+), 7 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index d259126f46cf..bd0c9c633438 100644 +index d259126f46cf4..bd0c9c633438a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -112,12 +112,8 @@ struct io_uring_task; @@ -100,7 +100,7 @@ index d259126f46cf..bd0c9c633438 100644 * cond_resched() and cond_resched_lock(): latency reduction via * explicit rescheduling in places that are safe. The return diff --git a/kernel/ptrace.c b/kernel/ptrace.c -index aab480e24bd6..71acb6341e63 100644 +index aab480e24bd60..71acb6341e639 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -196,7 +196,14 @@ static bool ptrace_freeze_traced(struct task_struct *task) @@ -120,7 +120,7 @@ index aab480e24bd6..71acb6341e63 100644 } spin_unlock_irq(&task->sighand->siglock); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 2f689b4fa68b..8ac1f0526476 100644 +index 2f689b4fa68b5..8ac1f0526476f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2587,6 +2587,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, @@ -162,5 +162,5 @@ index 2f689b4fa68b..8ac1f0526476 100644 task_rq_unlock(rq, p, &rf); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch b/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch index 4e61137e3..2aaa8bb0e 100644 --- a/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch +++ b/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch @@ -1,9 +1,9 @@ -From 10d5d8e25cce1695bb99f7149038d97b9a160201 Mon Sep 17 00:00:00 2001 +From 22e9788899df87296f03af052e125f3aacd518ae Mon Sep 17 00:00:00 2001 From: Oleg Nesterov <oleg@redhat.com> Date: Tue, 3 Nov 2020 12:39:01 +0100 Subject: [PATCH 224/323] ptrace: fix ptrace_unfreeze_traced() race with rt-lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The patch "ptrace: fix ptrace vs tasklist_lock race" changed ptrace_freeze_traced() to take task->saved_state into account, but @@ -20,7 +20,7 @@ Cc: stable-rt@vger.kernel.org 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/kernel/ptrace.c b/kernel/ptrace.c -index 71acb6341e63..fb5d1a19507d 100644 +index 71acb6341e639..fb5d1a19507da 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -213,8 +213,8 @@ static bool ptrace_freeze_traced(struct task_struct *task) @@ -61,5 +61,5 @@ index 71acb6341e63..fb5d1a19507d 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch b/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch index 6a6e0620c..8eab351cb 100644 --- a/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch +++ b/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch @@ -1,8 +1,8 @@ -From f5e1368135f9f3d520828544dc31762f19f43848 Mon Sep 17 00:00:00 2001 +From 0effec3f5dac0e6d4484e41f8f7ea4071bffa2f2 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 225/323] kernel/sched: add {put|get}_cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- @@ -10,7 +10,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+) diff --git a/include/linux/smp.h b/include/linux/smp.h -index 04f44e0aa2e0..cae66815f9e2 100644 +index 04f44e0aa2e0b..cae66815f9e20 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -239,6 +239,9 @@ static inline int get_boot_cpu_id(void) @@ -24,5 +24,5 @@ index 04f44e0aa2e0..cae66815f9e2 100644 * Callback to arch code if there's nosmp or maxcpus=0 on the * boot command line: -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch index 23ba35a68..15e62ee94 100644 --- a/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch +++ b/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch @@ -1,8 +1,8 @@ -From 61f802c21cb2e063c6e8b39e9f497f2d38440b5a Mon Sep 17 00:00:00 2001 +From e1ebcfc55175c2efa073ac38379ddd363e827f68 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 21:56:42 +0200 Subject: [PATCH 226/323] trace: Add migrate-disabled counter to tracing output -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index 2fea9fcd4d4e..2151524a10f0 100644 +index 2fea9fcd4d4e9..2151524a10f04 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -69,6 +69,7 @@ struct trace_entry { @@ -33,10 +33,10 @@ index 2fea9fcd4d4e..2151524a10f0 100644 entry->type = type; entry->flags = trace_ctx >> 16; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 5d6730589823..02dffb1862b8 100644 +index aa1da411d181b..78a7c776fd9b7 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2575,6 +2575,15 @@ enum print_line_t trace_handle_return(struct trace_seq *s) +@@ -2603,6 +2603,15 @@ enum print_line_t trace_handle_return(struct trace_seq *s) } EXPORT_SYMBOL_GPL(trace_handle_return); @@ -52,7 +52,7 @@ index 5d6730589823..02dffb1862b8 100644 unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) { unsigned int trace_flags = irqs_status; -@@ -2593,7 +2602,8 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2621,7 +2630,8 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) trace_flags |= TRACE_FLAG_NEED_RESCHED; if (test_preempt_need_resched()) trace_flags |= TRACE_FLAG_PREEMPT_RESCHED; @@ -62,7 +62,7 @@ index 5d6730589823..02dffb1862b8 100644 } struct ring_buffer_event * -@@ -3856,9 +3866,10 @@ static void print_lat_help_header(struct seq_file *m) +@@ -3884,9 +3894,10 @@ static void print_lat_help_header(struct seq_file *m) "# | / _----=> need-resched \n" "# || / _---=> hardirq/softirq \n" "# ||| / _--=> preempt-depth \n" @@ -76,7 +76,7 @@ index 5d6730589823..02dffb1862b8 100644 } static void print_event_info(struct array_buffer *buf, struct seq_file *m) -@@ -3896,9 +3907,10 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file +@@ -3924,9 +3935,10 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file seq_printf(m, "# %.*s / _----=> need-resched\n", prec, space); seq_printf(m, "# %.*s| / _---=> hardirq/softirq\n", prec, space); seq_printf(m, "# %.*s|| / _--=> preempt-depth\n", prec, space); @@ -91,7 +91,7 @@ index 5d6730589823..02dffb1862b8 100644 void diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c -index df64b92c5edc..636fb7df3714 100644 +index df64b92c5edc3..636fb7df3714a 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -184,6 +184,7 @@ static int trace_define_common_fields(void) @@ -103,7 +103,7 @@ index df64b92c5edc..636fb7df3714 100644 return ret; } diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c -index 94b0991717b6..b3619b21217c 100644 +index 753b84c50848a..8bd207443f4f4 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -497,6 +497,11 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry) @@ -119,5 +119,5 @@ index 94b0991717b6..b3619b21217c 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch index aeea997ea..b600e47aa 100644 --- a/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +++ b/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch @@ -1,9 +1,9 @@ -From d9e2f0098c8afde2f68ff94ea5dcdf818bc454d9 Mon Sep 17 00:00:00 2001 +From d00303479b8d382f204665f880622bf035fd37a7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 4 Aug 2017 17:40:42 +0200 Subject: [PATCH 227/323] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream uses arch_spinlock_t within spinlock_t and requests that spinlock_types.h header file is included first. @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 9 files changed, 36 deletions(-) diff --git a/arch/alpha/include/asm/spinlock_types.h b/arch/alpha/include/asm/spinlock_types.h -index 1d5716bc060b..6883bc952d22 100644 +index 1d5716bc060be..6883bc952d224 100644 --- a/arch/alpha/include/asm/spinlock_types.h +++ b/arch/alpha/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -42,7 +42,7 @@ index 1d5716bc060b..6883bc952d22 100644 volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/arm/include/asm/spinlock_types.h b/arch/arm/include/asm/spinlock_types.h -index 5976958647fe..a37c0803954b 100644 +index 5976958647fe1..a37c0803954ba 100644 --- a/arch/arm/include/asm/spinlock_types.h +++ b/arch/arm/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -57,7 +57,7 @@ index 5976958647fe..a37c0803954b 100644 typedef struct { diff --git a/arch/arm64/include/asm/spinlock_types.h b/arch/arm64/include/asm/spinlock_types.h -index 18782f0c4721..6672b05350b4 100644 +index 18782f0c47212..6672b05350b4e 100644 --- a/arch/arm64/include/asm/spinlock_types.h +++ b/arch/arm64/include/asm/spinlock_types.h @@ -5,10 +5,6 @@ @@ -72,7 +72,7 @@ index 18782f0c4721..6672b05350b4 100644 #include <asm-generic/qrwlock_types.h> diff --git a/arch/hexagon/include/asm/spinlock_types.h b/arch/hexagon/include/asm/spinlock_types.h -index 19d233497ba5..de72fb23016d 100644 +index 19d233497ba52..de72fb23016dc 100644 --- a/arch/hexagon/include/asm/spinlock_types.h +++ b/arch/hexagon/include/asm/spinlock_types.h @@ -8,10 +8,6 @@ @@ -87,7 +87,7 @@ index 19d233497ba5..de72fb23016d 100644 volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/ia64/include/asm/spinlock_types.h b/arch/ia64/include/asm/spinlock_types.h -index 6e345fefcdca..681408d6816f 100644 +index 6e345fefcdcab..681408d6816fb 100644 --- a/arch/ia64/include/asm/spinlock_types.h +++ b/arch/ia64/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -102,7 +102,7 @@ index 6e345fefcdca..681408d6816f 100644 volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/powerpc/include/asm/spinlock_types.h b/arch/powerpc/include/asm/spinlock_types.h -index c5d742f18021..cc6922a011ba 100644 +index c5d742f18021d..cc6922a011ba1 100644 --- a/arch/powerpc/include/asm/spinlock_types.h +++ b/arch/powerpc/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -117,7 +117,7 @@ index c5d742f18021..cc6922a011ba 100644 #include <asm-generic/qspinlock_types.h> #include <asm-generic/qrwlock_types.h> diff --git a/arch/s390/include/asm/spinlock_types.h b/arch/s390/include/asm/spinlock_types.h -index cfed272e4fd5..8e28e8176ec8 100644 +index cfed272e4fd59..8e28e8176ec88 100644 --- a/arch/s390/include/asm/spinlock_types.h +++ b/arch/s390/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -132,7 +132,7 @@ index cfed272e4fd5..8e28e8176ec8 100644 int lock; } __attribute__ ((aligned (4))) arch_spinlock_t; diff --git a/arch/sh/include/asm/spinlock_types.h b/arch/sh/include/asm/spinlock_types.h -index e82369f286a2..22ca9a98bbb8 100644 +index e82369f286a20..22ca9a98bbb8b 100644 --- a/arch/sh/include/asm/spinlock_types.h +++ b/arch/sh/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -147,7 +147,7 @@ index e82369f286a2..22ca9a98bbb8 100644 volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/xtensa/include/asm/spinlock_types.h b/arch/xtensa/include/asm/spinlock_types.h -index 64c9389254f1..dc846323b1cd 100644 +index 64c9389254f13..dc846323b1cd7 100644 --- a/arch/xtensa/include/asm/spinlock_types.h +++ b/arch/xtensa/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -162,5 +162,5 @@ index 64c9389254f1..dc846323b1cd 100644 #include <asm-generic/qrwlock_types.h> -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch index 77ce72c24..44d1001af 100644 --- a/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch +++ b/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch @@ -1,9 +1,9 @@ -From 166485c3d38dd51a1a9a35edb7b2d3c1054a2418 Mon Sep 17 00:00:00 2001 +From 4913939096213a3f24320657859a170bfb140b13 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 19 Nov 2019 09:25:04 +0100 Subject: [PATCH 228/323] locking: Make spinlock_t and rwlock_t a RCU section on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On !RT a locked spinlock_t and rwlock_t disables preemption which implies a RCU read section. There is code that relies on that behaviour. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 12 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 2fe178651254..31b374d36d04 100644 +index 2fe1786512543..31b374d36d04b 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1136,6 +1136,7 @@ void __lockfunc rt_spin_lock(spinlock_t *lock) @@ -70,7 +70,7 @@ index 2fe178651254..31b374d36d04 100644 } else { local_bh_enable(); diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c -index 16be7111aae7..3d2d1f14b513 100644 +index 16be7111aae71..3d2d1f14b5135 100644 --- a/kernel/locking/rwlock-rt.c +++ b/kernel/locking/rwlock-rt.c @@ -270,6 +270,7 @@ int __lockfunc rt_read_trylock(rwlock_t *rwlock) @@ -122,5 +122,5 @@ index 16be7111aae7..3d2d1f14b513 100644 } EXPORT_SYMBOL(rt_write_unlock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch index c699a1ab7..1adda840f 100644 --- a/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +++ b/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch @@ -1,9 +1,9 @@ -From 61aced1d729a22bbaf66e1f68806e04058bafb3f Mon Sep 17 00:00:00 2001 +From 5fdaecbbbcb293a0c8849436164d5128b5a6e0a5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 12 Jul 2011 11:39:36 +0200 Subject: [PATCH 229/323] mm/vmalloc: Another preempt disable region which sucks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Avoid the preempt disable version of get_cpu_var(). The inner-lock should provide enough serialisation. @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c -index d6a4794fa8ca..8113e4f0d2f2 100644 +index d6a4794fa8ca8..8113e4f0d2f25 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1542,7 +1542,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) @@ -69,5 +69,5 @@ index d6a4794fa8ca..8113e4f0d2f2 100644 /* Allocate new block if nothing was found */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch index d1f8234d5..721c8817d 100644 --- a/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch +++ b/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch @@ -1,8 +1,8 @@ -From 0470292c7761cc1cd2847e60b43b202b1be7ee29 Mon Sep 17 00:00:00 2001 +From 6c7fb806f2b6273b132d75f8003c552ea5806000 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 230/323] block/mq: do not invoke preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz preempt_disable() and get_cpu() don't play well together with the sleeping locks it tries to allocate later. @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c -index a6618bf45992..37466b3a4ba5 100644 +index 927b1dc3476a2..a027c6734e9a2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c -@@ -1575,14 +1575,14 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async, +@@ -1591,14 +1591,14 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async, return; if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { @@ -36,5 +36,5 @@ index a6618bf45992..37466b3a4ba5 100644 kblockd_mod_delayed_work_on(blk_mq_hctx_next_cpu(hctx), &hctx->run_work, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch index 33a40d5fc..81d925b74 100644 --- a/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +++ b/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch @@ -1,8 +1,8 @@ -From 4af1829664e98b9b3ec542a03ee30aeee8f47f6c Mon Sep 17 00:00:00 2001 +From b33f3c18470c1cadf855885a039b6918ae839364 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 6 Apr 2010 16:51:31 +0200 Subject: [PATCH 231/323] md: raid5: Make raid5_percpu handling RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic @@ -20,7 +20,7 @@ Tested-by: Udo van den Heuvel <udovdh@xs4all.nl> 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 9f114b9d8dc6..7e0eb8defeaf 100644 +index 9f114b9d8dc6b..7e0eb8defeafc 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2218,8 +2218,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request) @@ -53,7 +53,7 @@ index 9f114b9d8dc6..7e0eb8defeaf 100644 } diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h -index 5c05acf20e1f..665fe138ab4f 100644 +index 5c05acf20e1f2..665fe138ab4f7 100644 --- a/drivers/md/raid5.h +++ b/drivers/md/raid5.h @@ -635,6 +635,7 @@ struct r5conf { @@ -65,5 +65,5 @@ index 5c05acf20e1f..665fe138ab4f 100644 void *scribble; /* space for constructing buffer * lists and performing address -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch b/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch index dbe99481a..999c4e0f3 100644 --- a/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch +++ b/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch @@ -1,8 +1,8 @@ -From a2eaf0c262e1151f5978da03d033819e82104cce Mon Sep 17 00:00:00 2001 +From 525f92d9c071e954a828335732617211748cece4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 12 Nov 2011 14:00:48 +0100 Subject: [PATCH 232/323] scsi/fcoe: Make RT aware. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c -index 30afcbbe1f86..4ae5b8152ece 100644 +index 30afcbbe1f862..4ae5b8152ece8 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c @@ -1452,11 +1452,11 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, @@ -73,10 +73,10 @@ index 30afcbbe1f86..4ae5b8152ece 100644 } diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c -index a2d60ad2a683..3fdc403bc7d8 100644 +index bbc5d6b9be737..8f9a02912938c 100644 --- a/drivers/scsi/fcoe/fcoe_ctlr.c +++ b/drivers/scsi/fcoe/fcoe_ctlr.c -@@ -830,7 +830,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) +@@ -828,7 +828,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) INIT_LIST_HEAD(&del_list); @@ -85,7 +85,7 @@ index a2d60ad2a683..3fdc403bc7d8 100644 list_for_each_entry_safe(fcf, next, &fip->fcfs, list) { deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2; -@@ -866,7 +866,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) +@@ -864,7 +864,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) sel_time = fcf->time; } } @@ -95,7 +95,7 @@ index a2d60ad2a683..3fdc403bc7d8 100644 list_for_each_entry_safe(fcf, next, &del_list, list) { /* Removes fcf from current list */ diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c -index 4261380af97b..65160eaaa929 100644 +index 4261380af97b4..65160eaaa9295 100644 --- a/drivers/scsi/libfc/fc_exch.c +++ b/drivers/scsi/libfc/fc_exch.c @@ -826,10 +826,10 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport, @@ -112,5 +112,5 @@ index 4261380af97b..65160eaaa929 100644 /* peek cache of free slot */ if (pool->left != FC_XID_UNKNOWN) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch index 22b2f6973..3fdce081b 100644 --- a/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch +++ b/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -1,9 +1,9 @@ -From 971df27cc65fb6805b2253bd66e81bd244887ecc Mon Sep 17 00:00:00 2001 +From b76e2bca2b99402fb8a609ce88d3ff5c7d0f9dbd Mon Sep 17 00:00:00 2001 From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Wed, 18 Feb 2015 16:05:28 +0100 Subject: [PATCH 233/323] sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd @@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c -index 06e503466c32..16bd1278a989 100644 +index 06e503466c32c..16bd1278a9890 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c @@ -422,7 +422,7 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt) @@ -56,5 +56,5 @@ index 06e503466c32..16bd1278a989 100644 } EXPORT_SYMBOL_GPL(svc_xprt_do_enqueue); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch index f2a8eeee5..deb3d9e71 100644 --- a/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch +++ b/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch @@ -1,8 +1,8 @@ -From 38e8018fba96ecd6e7c7a47e18ed06324fd1d0e2 Mon Sep 17 00:00:00 2001 +From a34603cdc819a58c40f020fdd9e59ffc84fbfc38 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 7 Mar 2012 20:51:03 +0100 Subject: [PATCH 234/323] rt: Introduce cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill() @@ -62,7 +62,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 36 insertions(+) diff --git a/include/linux/delay.h b/include/linux/delay.h -index 1d0e2ce6b6d9..02b37178b54f 100644 +index 1d0e2ce6b6d9f..02b37178b54f4 100644 --- a/include/linux/delay.h +++ b/include/linux/delay.h @@ -76,4 +76,10 @@ static inline void fsleep(unsigned long usecs) @@ -77,10 +77,10 @@ index 1d0e2ce6b6d9..02b37178b54f 100644 + #endif /* defined(_LINUX_DELAY_H) */ diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c -index ede09dda36e9..9dcc6215599f 100644 +index 2b2a6e29219dc..b8f4075d42247 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c -@@ -2054,6 +2054,36 @@ SYSCALL_DEFINE2(nanosleep_time32, struct old_timespec32 __user *, rqtp, +@@ -2055,6 +2055,36 @@ SYSCALL_DEFINE2(nanosleep_time32, struct old_timespec32 __user *, rqtp, } #endif @@ -118,5 +118,5 @@ index ede09dda36e9..9dcc6215599f 100644 * Functions related to boot-time initialization: */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch b/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch index 046c48516..5b644cf77 100644 --- a/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch +++ b/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch @@ -1,8 +1,8 @@ -From e174bc8c285602601d09d4e7997654e66a18bc87 Mon Sep 17 00:00:00 2001 +From 05e3d91fc2ff6e6be5129bf59467b031923fc64a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 7 Mar 2012 21:00:34 +0100 Subject: [PATCH 235/323] fs: namespace: Use cpu_chill() in trylock loops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/namespace.c b/fs/namespace.c -index 046b084136c5..6a550e342d6b 100644 +index b020a12c53a2a..364ba37d62d33 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -14,6 +14,7 @@ @@ -40,5 +40,5 @@ index 046b084136c5..6a550e342d6b 100644 * After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will * be set to match its requirements. So we must not load that until -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch b/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch index 48d95d023..9af269249 100644 --- a/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch +++ b/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch @@ -1,8 +1,8 @@ -From d58fbc3fc363cee50de0ac64be0b90fd2666956a Mon Sep 17 00:00:00 2001 +From 0200f240cf9712f1b3d03597bd4282380f9771ce Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 12 Jul 2011 15:38:34 +0200 Subject: [PATCH 236/323] net: Use skbufhead with raw lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Use the rps lock as rawlock so we can keep irq-off regions. It looks low latency. However we can't kfree() from this context therefore we defer this @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h -index a210f1995862..af89bd5e7d56 100644 +index a210f19958621..af89bd5e7d568 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -296,6 +296,7 @@ struct sk_buff_head { @@ -40,7 +40,7 @@ index a210f1995862..af89bd5e7d56 100644 struct lock_class_key *class) { diff --git a/net/core/dev.c b/net/core/dev.c -index f973f53c7a1f..895eb42bb5d6 100644 +index 7d95a0251617e..48fcb050b5a7b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -221,14 +221,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) @@ -60,7 +60,7 @@ index f973f53c7a1f..895eb42bb5d6 100644 #endif } -@@ -11296,7 +11296,7 @@ static int __init net_dev_init(void) +@@ -11304,7 +11304,7 @@ static int __init net_dev_init(void) INIT_WORK(flush, flush_backlog); @@ -70,5 +70,5 @@ index f973f53c7a1f..895eb42bb5d6 100644 #ifdef CONFIG_XFRM_OFFLOAD skb_queue_head_init(&sd->xfrm_backlog); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch b/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch index 36e0d28d2..d39bd9cc6 100644 --- a/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch +++ b/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch @@ -1,8 +1,8 @@ -From 95dbb10c81619c9a35a63f73dadd7379d95fdec0 Mon Sep 17 00:00:00 2001 +From 4945a58297bdc5e20dac7ac3364e6fe143f48866 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 16 Sep 2020 16:15:39 +0200 Subject: [PATCH 237/323] net: Dequeue in dev_cpu_dead() without the lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream uses skb_dequeue() to acquire lock of `input_pkt_queue'. The reason is to synchronize against a remote CPU which still thinks that the CPU is online @@ -20,10 +20,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 895eb42bb5d6..c55993848233 100644 +index 48fcb050b5a7b..7e8a78e1c749a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10980,7 +10980,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -10988,7 +10988,7 @@ static int dev_cpu_dead(unsigned int oldcpu) netif_rx_ni(skb); input_queue_head_incr(oldsd); } @@ -33,5 +33,5 @@ index 895eb42bb5d6..c55993848233 100644 input_queue_head_incr(oldsd); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch index fe05e1e78..1a5c70dd5 100644 --- a/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +++ b/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch @@ -1,9 +1,9 @@ -From 3a7ff2036ac29effdf8fc39fc7ea9610f98ca5e4 Mon Sep 17 00:00:00 2001 +From 3e47240cfe1a82349cea76a692623862615c8b12 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 30 Mar 2016 13:36:29 +0200 Subject: [PATCH 238/323] net: dev: always take qdisc's busylock in __dev_xmit_skb() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The root-lock is dropped before dev_hard_start_xmit() is invoked and after setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c -index c55993848233..c3b4e5e320ca 100644 +index 7e8a78e1c749a..f512f18c09584 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3796,7 +3796,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, +@@ -3804,7 +3804,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, * This permits qdisc->running owner to get the lock more * often and dequeue packets faster. */ @@ -38,5 +38,5 @@ index c55993848233..c3b4e5e320ca 100644 spin_lock(&q->busylock); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch b/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch index 1ac41992f..0dbda1aee 100644 --- a/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch +++ b/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch @@ -1,8 +1,8 @@ -From 57453ffdf0bcba3fa27ca0b19f622ea371c2c686 Mon Sep 17 00:00:00 2001 +From bb7de8f232a9b833a0eb51424dbd79c12ca93e21 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 23 Jun 2015 15:32:51 +0200 Subject: [PATCH 239/323] irqwork: push most work into softirq context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Initially we defered all irqwork into softirq because we didn't want the latency spikes if perf or another user was busy and delayed the RT task. @@ -30,7 +30,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 4 files changed, 55 insertions(+), 12 deletions(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index 30823780c192..f941f2d7d71c 100644 +index 30823780c1928..f941f2d7d71ce 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -55,4 +55,10 @@ static inline void irq_work_run(void) { } @@ -45,7 +45,7 @@ index 30823780c192..f941f2d7d71c 100644 + #endif /* _LINUX_IRQ_WORK_H */ diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index eca83965b631..8183d30e1bb1 100644 +index eca83965b631a..8183d30e1bb1c 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -18,6 +18,7 @@ @@ -160,7 +160,7 @@ index eca83965b631..8183d30e1bb1 100644 /* * Synchronize against the irq_work @entry, ensures the entry is not diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c -index ff2c6d3ba6c7..2f1bea4f7dba 100644 +index ff2c6d3ba6c79..2f1bea4f7dba2 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -514,6 +514,7 @@ static int init_rootdomain(struct root_domain *rd) @@ -172,10 +172,10 @@ index ff2c6d3ba6c7..2f1bea4f7dba 100644 init_dl_bw(&rd->dl_bw); diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index a4fdc7cfb723..1cad0efd635c 100644 +index 68246a8c31bc2..4ff559fed1e49 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1770,6 +1770,8 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) +@@ -1800,6 +1800,8 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) { struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); @@ -185,5 +185,5 @@ index a4fdc7cfb723..1cad0efd635c 100644 if (IS_ENABLED(CONFIG_NO_HZ_COMMON)) __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch index b84653cfb..5c0d196ff 100644 --- a/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch +++ b/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch @@ -1,8 +1,8 @@ -From 523f64f1a87e6454e46f5e25ae797b6a7050a6a8 Mon Sep 17 00:00:00 2001 +From 55fdf1608946d1937d8e6da7e94b046a52f53418 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 14 Nov 2011 18:19:27 +0100 Subject: [PATCH 240/323] x86: crypto: Reduce preempt disabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c -index be891fdf8d17..29c716ed103f 100644 +index be891fdf8d174..29c716ed103f9 100644 --- a/arch/x86/crypto/aesni-intel_glue.c +++ b/arch/x86/crypto/aesni-intel_glue.c @@ -379,14 +379,14 @@ static int ecb_encrypt(struct skcipher_request *req) @@ -114,5 +114,5 @@ index be891fdf8d17..29c716ed103f 100644 return err; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch index f02d88086..50ded8543 100644 --- a/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch +++ b/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -1,8 +1,8 @@ -From e9bc715aa25df5aa654a5243e90ee31fb1b1e010 Mon Sep 17 00:00:00 2001 +From e995e2e7743b69d3d0a7012d60b9818f82a6c302 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2014 17:24:04 +0100 Subject: [PATCH 241/323] crypto: Reduce preempt disabled regions, more algos -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Don Estabrook reported | kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() @@ -43,7 +43,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/arch/x86/crypto/cast5_avx_glue.c b/arch/x86/crypto/cast5_avx_glue.c -index 384ccb00f9e1..2f8df8ef8644 100644 +index 384ccb00f9e15..2f8df8ef8644e 100644 --- a/arch/x86/crypto/cast5_avx_glue.c +++ b/arch/x86/crypto/cast5_avx_glue.c @@ -46,7 +46,7 @@ static inline void cast5_fpu_end(bool fpu_enabled) @@ -126,7 +126,7 @@ index 384ccb00f9e1..2f8df8ef8644 100644 ctr_crypt_final(&walk, ctx); err = skcipher_walk_done(&walk, 0); diff --git a/arch/x86/crypto/glue_helper.c b/arch/x86/crypto/glue_helper.c -index d3d91a0abf88..6d0774721514 100644 +index d3d91a0abf88f..6d07747215147 100644 --- a/arch/x86/crypto/glue_helper.c +++ b/arch/x86/crypto/glue_helper.c @@ -24,7 +24,7 @@ int glue_ecb_req_128bit(const struct common_glue_ctx *gctx, @@ -236,5 +236,5 @@ index d3d91a0abf88..6d0774721514 100644 nbytes = walk.nbytes; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch index 9f98cd223..a8552909c 100644 --- a/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch +++ b/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch @@ -1,11 +1,11 @@ -From dd8a48342b4ff4b80a32a4ae49115db93ad069c1 Mon Sep 17 00:00:00 2001 +From b8af1a198712fc9567d6bebdf3993d8e64b2af03 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 30 Nov 2017 13:40:10 +0100 Subject: [PATCH 242/323] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Those crypto drivers use SSE/AVX/… for their crypto work and in order to do so in kernel they need to enable the "FPU" in kernel mode which @@ -35,7 +35,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 13 insertions(+) diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h -index ad2fee785310..d31b0886592a 100644 +index ad2fee7853108..d31b0886592a1 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -28,6 +28,7 @@ extern void kernel_fpu_begin_mask(unsigned int kfpu_mask); @@ -47,7 +47,7 @@ index ad2fee785310..d31b0886592a 100644 /* Code that is unaware of kernel_fpu_begin_mask() can use this */ static inline void kernel_fpu_begin(void) diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c -index 835b948095cd..8cfc2f972fe5 100644 +index 835b948095cde..8cfc2f972fe56 100644 --- a/arch/x86/kernel/fpu/core.c +++ b/arch/x86/kernel/fpu/core.c @@ -144,6 +144,18 @@ void kernel_fpu_end(void) @@ -70,5 +70,5 @@ index 835b948095cd..8cfc2f972fe5 100644 * Save the FPU state (mark it for reload if necessary): * -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch index fbcd9407a..88344cf59 100644 --- a/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch +++ b/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch @@ -1,9 +1,9 @@ -From e0a748983b07205d9f2f52230c897f49a2c84c8d Mon Sep 17 00:00:00 2001 +From 82c235e4a2f2ab9d0be75ac6cd1bfd282aa83f0d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 243/323] panic: skip get_random_bytes for RT_FULL in init_oops_id -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable on -RT. If this is invoked from irq-context we will have problems to acquire the sleeping lock. @@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 2 insertions(+) diff --git a/kernel/panic.c b/kernel/panic.c -index 5a1a4bf2feb3..aa36078657be 100644 +index 0681472a2041a..efd853ce1deb6 100644 --- a/kernel/panic.c +++ b/kernel/panic.c -@@ -621,9 +621,11 @@ static u64 oops_id; +@@ -629,9 +629,11 @@ static u64 oops_id; static int init_oops_id(void) { @@ -30,5 +30,5 @@ index 5a1a4bf2feb3..aa36078657be 100644 return 0; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch index c8e46ef39..29e10a406 100644 --- a/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch +++ b/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch @@ -1,8 +1,8 @@ -From f7c4220e56be1d8fc2bc339984fb5919ee02cf4f Mon Sep 17 00:00:00 2001 +From e19f4592b7c7639a521effd6d271f9c710f0bcfd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 16 Dec 2010 14:25:18 +0100 Subject: [PATCH 244/323] x86: stackprotector: Avoid random pool on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz CPU bringup calls into the random pool to initialize the stack canary. During boot that works nicely even on RT as the might sleep @@ -19,10 +19,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h -index 7fb482f0f25b..3df0a95c9e13 100644 +index b6ffe58c70fab..e79e75ede9516 100644 --- a/arch/x86/include/asm/stackprotector.h +++ b/arch/x86/include/asm/stackprotector.h -@@ -65,7 +65,7 @@ +@@ -50,7 +50,7 @@ */ static __always_inline void boot_init_stack_canary(void) { @@ -31,7 +31,7 @@ index 7fb482f0f25b..3df0a95c9e13 100644 u64 tsc; #ifdef CONFIG_X86_64 -@@ -76,8 +76,14 @@ static __always_inline void boot_init_stack_canary(void) +@@ -61,8 +61,14 @@ static __always_inline void boot_init_stack_canary(void) * of randomness. The TSC only matters for very early init, * there it already has some randomness on most systems. Later * on during the bootup the random pool has true entropy too. @@ -47,5 +47,5 @@ index 7fb482f0f25b..3df0a95c9e13 100644 canary += tsc + (tsc << 32UL); canary &= CANARY_MASK; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch index 88ffbf8ad..473b2284c 100644 --- a/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch +++ b/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch @@ -1,8 +1,8 @@ -From ceda0e136831589d22c9bd35844b3fafcc722e7c Mon Sep 17 00:00:00 2001 +From e9c4be58fe0aef35d6b70aa6757652ea2b5954ad Mon Sep 17 00:00:00 2001 From: Priyanka Jain <Priyanka.Jain@freescale.com> Date: Thu, 17 May 2012 09:35:11 +0530 Subject: [PATCH 245/323] net: Remove preemption disabling in netif_rx() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by @@ -33,10 +33,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index c3b4e5e320ca..fb00a777f559 100644 +index f512f18c09584..8dc7653a22dfe 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4818,7 +4818,7 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4826,7 +4826,7 @@ static int netif_rx_internal(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; @@ -45,7 +45,7 @@ index c3b4e5e320ca..fb00a777f559 100644 rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); -@@ -4828,14 +4828,14 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4836,14 +4836,14 @@ static int netif_rx_internal(struct sk_buff *skb) ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); @@ -64,5 +64,5 @@ index c3b4e5e320ca..fb00a777f559 100644 return ret; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch b/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch index 6c7174f34..361bc63f2 100644 --- a/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch +++ b/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch @@ -1,8 +1,8 @@ -From 9d9c323e950c13cde64d5ae87dd12e0e3b81abd8 Mon Sep 17 00:00:00 2001 +From afcd4bbae6caa07552386e7d10e4e3529ebc314d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 18:51:23 +0200 Subject: [PATCH 246/323] lockdep: Make it RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz teach lockdep that we don't really do softirqs on -RT. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h -index 3ed4e8771b64..a437b2e70d37 100644 +index 3ed4e8771b64e..a437b2e70d379 100644 --- a/include/linux/irqflags.h +++ b/include/linux/irqflags.h @@ -71,14 +71,6 @@ do { \ @@ -54,7 +54,7 @@ index 3ed4e8771b64..a437b2e70d37 100644 defined(CONFIG_PREEMPT_TRACER) extern void stop_critical_timings(void); diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c -index 7471d85f54ae..4fb9e6301018 100644 +index 7471d85f54ae5..4fb9e63010189 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -5414,6 +5414,7 @@ static noinstr void check_flags(unsigned long flags) @@ -74,5 +74,5 @@ index 7471d85f54ae..4fb9e6301018 100644 if (!debug_locks) print_irqtrace_events(current); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch index c4ca02928..7927ef075 100644 --- a/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +++ b/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch @@ -1,9 +1,9 @@ -From 98d28c479e8b02a795109f6bc0b6aa1da54f6ede Mon Sep 17 00:00:00 2001 +From 4653130930ec2cc87ba79a4b19d16763b189a570 Mon Sep 17 00:00:00 2001 From: Yong Zhang <yong.zhang@windriver.com> Date: Mon, 16 Apr 2012 15:01:56 +0800 Subject: [PATCH 247/323] lockdep: selftest: Only do hardirq context test for raw spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On -rt there is no softirq context any more and rwlock is sleepable, disable softirq context test and rwlock+irq test. @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 23 insertions(+) diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c -index 76c52b0b76d3..663c071bc445 100644 +index 76c52b0b76d38..663c071bc445e 100644 --- a/lib/locking-selftest.c +++ b/lib/locking-selftest.c @@ -2456,6 +2456,7 @@ void locking_selftest(void) @@ -58,5 +58,5 @@ index 76c52b0b76d3..663c071bc445 100644 force_read_lock_recursive = 0; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch index dbb683c42..312584551 100644 --- a/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +++ b/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -1,9 +1,9 @@ -From c10790e859050b8a0a251e2e57b7fffb9ffa75df Mon Sep 17 00:00:00 2001 +From aba827685081cd46768e25f14e2c1b381d997773 Mon Sep 17 00:00:00 2001 From: Josh Cartwright <josh.cartwright@ni.com> Date: Wed, 28 Jan 2015 13:08:45 -0600 Subject: [PATCH 248/323] lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz "lockdep: Selftest: Only do hardirq context test for raw spinlock" disabled the execution of certain tests with PREEMPT_RT, but did @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 28 insertions(+) diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c -index 663c071bc445..98c376b02dff 100644 +index 663c071bc445e..98c376b02dff9 100644 --- a/lib/locking-selftest.c +++ b/lib/locking-selftest.c @@ -787,6 +787,8 @@ GENERATE_TESTCASE(init_held_rtmutex); @@ -145,5 +145,5 @@ index 663c071bc445..98c376b02dff 100644 * read-lock / write-lock recursion that is unsafe. */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0249-lockdep-disable-self-test.patch b/debian/patches-rt/0249-lockdep-disable-self-test.patch index bd19a4f00..18d5822b3 100644 --- a/debian/patches-rt/0249-lockdep-disable-self-test.patch +++ b/debian/patches-rt/0249-lockdep-disable-self-test.patch @@ -1,11 +1,11 @@ -From da32b1f1c20ebd096acfb511cf3a608169d210c7 Mon Sep 17 00:00:00 2001 +From a329d91a9f582f226fbb63aa414fa07b00de66db 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 249/323] lockdep: disable self-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug -index 24ca61cf86dd..70172d5ab82a 100644 +index 24ca61cf86ddc..70172d5ab82a8 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1373,7 +1373,7 @@ config DEBUG_ATOMIC_SLEEP @@ -31,5 +31,5 @@ index 24ca61cf86dd..70172d5ab82a 100644 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.43.0 +2.44.0 diff --git a/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch index c0e7434f2..5573efa34 100644 --- a/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +++ b/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch @@ -1,9 +1,9 @@ -From 2c69acb6875156b092516fc81bd2a05b96973c2b Mon Sep 17 00:00:00 2001 +From b9f57823ffad3df30fb72183ff9a09346979fcf0 Mon Sep 17 00:00:00 2001 From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sat, 27 Feb 2016 08:09:11 +0100 Subject: [PATCH 250/323] drm,radeon,i915: Use preempt_disable/enable_rt() where recommended -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz DRM folks identified the spots, so use them. @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 759f523c6a6b..7339a42ab2b8 100644 +index 759f523c6a6bf..7339a42ab2b80 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -847,6 +847,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc, @@ -37,10 +37,10 @@ index 759f523c6a6b..7339a42ab2b8 100644 spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c -index 71bdafac9210..95ce311f434b 100644 +index 07d23a1e62a07..add8e60440b2b 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c -@@ -1823,6 +1823,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, +@@ -1828,6 +1828,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, struct radeon_device *rdev = dev->dev_private; /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */ @@ -48,7 +48,7 @@ index 71bdafac9210..95ce311f434b 100644 /* Get optional system timestamp before query. */ if (stime) -@@ -1915,6 +1916,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, +@@ -1920,6 +1921,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, *etime = ktime_get(); /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */ @@ -57,5 +57,5 @@ index 71bdafac9210..95ce311f434b 100644 /* Decode into vertical and horizontal scanout position. */ *vpos = position & 0x1fff; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch b/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch index dd9329591..3c5b785e1 100644 --- a/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch +++ b/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch @@ -1,9 +1,9 @@ -From 940e64f8d4b797c592e6736a1fae0d0ff2087e95 Mon Sep 17 00:00:00 2001 +From c00cad98a46e5c1d3cca633ab8ea32952d8da9c1 Mon Sep 17 00:00:00 2001 From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sat, 27 Feb 2016 09:01:42 +0100 Subject: [PATCH 251/323] drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Commit 8d7849db3eab7 ("drm/i915: Make sprite updates atomic") @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c -index 12f7128b777f..a65061e3e1d3 100644 +index 12f7128b777f6..a65061e3e1d3d 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -118,7 +118,8 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state) @@ -76,5 +76,5 @@ index 12f7128b777f..a65061e3e1d3 100644 if (intel_vgpu_active(dev_priv)) return; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch index 833c9d37f..d66c821ab 100644 --- a/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch +++ b/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch @@ -1,8 +1,8 @@ -From 0e88cde8cbd40cc7e519bccaf1ba847de2d9bd02 Mon Sep 17 00:00:00 2001 +From 27fa42742e24ba8a4d277671d1caed1a8c88fdaa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 6 Dec 2018 09:52:20 +0100 Subject: [PATCH 252/323] drm/i915: disable tracing on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h -index a4addcc64978..0ba5a0a0fd25 100644 +index a4addcc649782..0ba5a0a0fd252 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -2,6 +2,10 @@ @@ -43,5 +43,5 @@ index a4addcc64978..0ba5a0a0fd25 100644 #include <linux/types.h> #include <linux/tracepoint.h> -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index 9aa6af966..607c34279 100644 --- a/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -1,9 +1,9 @@ -From 2c550981e43f1612f6999bbc04634e0d6eb16760 Mon Sep 17 00:00:00 2001 +From 74c192a8194911bc1214bcb76aad904ce7b38565 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 19 Dec 2018 10:47:02 +0100 Subject: [PATCH 253/323] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The order of the header files is important. If this header file is included after tracepoint.h was included then the NOTRACE here becomes a @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h -index 0ba5a0a0fd25..396b6598694d 100644 +index 0ba5a0a0fd252..396b6598694d3 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -782,7 +782,7 @@ DEFINE_EVENT(i915_request, i915_request_add, @@ -29,5 +29,5 @@ index 0ba5a0a0fd25..396b6598694d 100644 TP_PROTO(struct i915_request *rq), TP_ARGS(rq) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch b/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch index 722c5567e..0bb3bb149 100644 --- a/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch +++ b/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch @@ -1,9 +1,9 @@ -From 63884dc87002ed5187007558a7356e7a4f570e75 Mon Sep 17 00:00:00 2001 +From 70e95b1d6352930a4b00e9cb58929c25bde4c219 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 7 Jul 2020 12:25:11 +0200 Subject: [PATCH 254/323] drm/i915/gt: Only disable interrupts for the timeline lock on !force-threaded -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz According to commit d67739268cf0e ("drm/i915/gt: Mark up the nested engine-pm timeline lock as irqsafe") @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c -index f7b2e07e2229..313d8a28e776 100644 +index f9fdbd79c0f37..fe71184156818 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c @@ -60,9 +60,10 @@ static int __engine_unpark(struct intel_wakeref *wf) @@ -48,5 +48,5 @@ index f7b2e07e2229..313d8a28e776 100644 #else -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch index bb6e6895a..fe0194328 100644 --- a/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From ebc27a7d1ceef838efef4feecd2bcb490552f0ec Mon Sep 17 00:00:00 2001 +From 42a8716470e57e68acd35cd033870ab69de63228 Mon Sep 17 00:00:00 2001 From: Mike Galbraith <efault@gmx.de> Date: Sun, 8 Jan 2017 09:32:25 +0100 Subject: [PATCH 255/323] cpuset: Convert callback_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The two commits below add up to a cpuset might_sleep() splat for RT: @@ -52,7 +52,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c -index 195f9cccab20..fd371215b81f 100644 +index 195f9cccab20b..fd371215b81ff 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -368,7 +368,7 @@ void cpuset_unlock(void) @@ -363,5 +363,5 @@ index 195f9cccab20..fd371215b81f 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch b/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch index 50535647c..b7b34eb36 100644 --- a/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From 6ab508c3cdd4fa46f17f940bd56007189d4984e6 Mon Sep 17 00:00:00 2001 +From 9f42f4880e8c5f36237d5b2173303919f4313c84 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 7 Aug 2019 18:15:38 +0200 Subject: [PATCH 256/323] x86: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 54e5284a6ae1..c72d66a0e840 100644 +index 59db07b61c0f8..79e2b63eba407 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -27,6 +27,7 @@ config X86_64 @@ -24,5 +24,5 @@ index 54e5284a6ae1..c72d66a0e840 100644 select HAVE_ARCH_SOFT_DIRTY select MODULES_USE_ELF_RELA -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch index c97153016..21e92b417 100644 --- a/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch +++ b/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch @@ -1,8 +1,8 @@ -From 767e9014ec3dbfeee9323cfcc34acac5315c262e Mon Sep 17 00:00:00 2001 +From cbcb42b0d809a1279688d1e2881f56859ec243fb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 3 Jul 2009 08:44:34 -0500 Subject: [PATCH 257/323] mm/scatterlist: Do not disable irqs on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz For -RT it is enough to keep pagefault disabled (which is currently handled by kmap_atomic()). @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scatterlist.c b/lib/scatterlist.c -index a59778946404..907f59045998 100644 +index a597789464043..907f590459983 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -892,7 +892,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter) @@ -26,5 +26,5 @@ index a59778946404..907f59045998 100644 } else kunmap(miter->page); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch index 12d064860..fc04c5d86 100644 --- a/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From e8b4a64bf2eb6ff6330544895c0f69696059ffda Mon Sep 17 00:00:00 2001 +From ed95947ad84cd7475aee1d39d1070299af9e0617 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 26 Oct 2012 18:50:54 +0100 Subject: [PATCH 258/323] sched: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -69,7 +69,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 12 files changed, 254 insertions(+), 36 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index fb140e00f74d..af39859f02ee 100644 +index fb140e00f74dc..af39859f02ee1 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -174,6 +174,20 @@ extern void preempt_count_sub(int val); @@ -176,7 +176,7 @@ index fb140e00f74d..af39859f02ee 100644 #endif /* CONFIG_SMP */ diff --git a/include/linux/sched.h b/include/linux/sched.h -index bd0c9c633438..665a17e4f69b 100644 +index bd0c9c633438a..665a17e4f69be 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1882,6 +1882,44 @@ static inline int test_tsk_need_resched(struct task_struct *tsk) @@ -225,7 +225,7 @@ index bd0c9c633438..665a17e4f69b 100644 { if (task->state & (__TASK_STOPPED | __TASK_TRACED)) diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h -index f3040b0b4b23..3cb02ced141b 100644 +index f3040b0b4b235..3cb02ced141b8 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -110,7 +110,17 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag) @@ -248,7 +248,7 @@ index f3040b0b4b23..3cb02ced141b 100644 #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES static inline int arch_within_stack_frames(const void * const stack, diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index 2151524a10f0..e7afd9fe35e5 100644 +index 2151524a10f04..e7afd9fe35e5f 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -70,6 +70,7 @@ struct trace_entry { @@ -280,7 +280,7 @@ index 2151524a10f0..e7afd9fe35e5 100644 #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt -index cbe3aa495519..b5cd1e278eb5 100644 +index cbe3aa495519b..b5cd1e278eb58 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt @@ -1,5 +1,11 @@ @@ -296,7 +296,7 @@ index cbe3aa495519..b5cd1e278eb5 100644 prompt "Preemption Model" default PREEMPT_NONE diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 8ac1f0526476..c847d17e3b04 100644 +index 8ac1f0526476f..c847d17e3b04a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -656,6 +656,48 @@ void resched_curr(struct rq *rq) @@ -445,7 +445,7 @@ index 8ac1f0526476..c847d17e3b04 100644 * The idle tasks have their own, simple scheduling class: */ diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 73a89fbd81be..f4928e5b6611 100644 +index 73a89fbd81be8..f4928e5b6611b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4570,7 +4570,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) @@ -521,7 +521,7 @@ index 73a89fbd81be..f4928e5b6611 100644 check_preempt_curr(rq, p, 0); } diff --git a/kernel/sched/features.h b/kernel/sched/features.h -index 402fd37fb340..bc2466af142e 100644 +index 402fd37fb340a..bc2466af142eb 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -47,6 +47,9 @@ SCHED_FEAT(NONTASK_CAPACITY, true) @@ -535,7 +535,7 @@ index 402fd37fb340..bc2466af142e 100644 /* diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index d4bfc51358d3..ad854a670701 100644 +index d4bfc51358d37..ad854a670701b 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1997,6 +1997,15 @@ extern void reweight_task(struct task_struct *p, int prio); @@ -555,10 +555,10 @@ index d4bfc51358d3..ad854a670701 100644 extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 02dffb1862b8..7caae85af03d 100644 +index 78a7c776fd9b7..a8285643a7cc0 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2602,8 +2602,16 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2630,8 +2630,16 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) trace_flags |= TRACE_FLAG_NEED_RESCHED; if (test_preempt_need_resched()) trace_flags |= TRACE_FLAG_PREEMPT_RESCHED; @@ -577,7 +577,7 @@ index 02dffb1862b8..7caae85af03d 100644 } struct ring_buffer_event * -@@ -3861,15 +3869,17 @@ unsigned long trace_total_entries(struct trace_array *tr) +@@ -3889,15 +3897,17 @@ unsigned long trace_total_entries(struct trace_array *tr) static void print_lat_help_header(struct seq_file *m) { @@ -604,7 +604,7 @@ index 02dffb1862b8..7caae85af03d 100644 } static void print_event_info(struct array_buffer *buf, struct seq_file *m) -@@ -3903,14 +3913,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file +@@ -3931,14 +3941,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file print_event_info(buf, m); @@ -630,7 +630,7 @@ index 02dffb1862b8..7caae85af03d 100644 void diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c -index 636fb7df3714..245b8289ecdf 100644 +index 636fb7df3714a..245b8289ecdf3 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -185,6 +185,7 @@ static int trace_define_common_fields(void) @@ -642,7 +642,7 @@ index 636fb7df3714..245b8289ecdf 100644 return ret; } diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c -index b3619b21217c..5a71964ade3a 100644 +index 8bd207443f4f4..18f091dceea3f 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -451,6 +451,7 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry) @@ -687,5 +687,5 @@ index b3619b21217c..5a71964ade3a 100644 trace_seq_printf(s, "%x", entry->migrate_disable); else -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch b/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch index 44c4cc8c2..65d2dc863 100644 --- a/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch +++ b/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch @@ -1,9 +1,9 @@ -From 367fe43dc09205ecc5fcdca95276fc481e7ccd9f Mon Sep 17 00:00:00 2001 +From 005400302baf6837eb1c17a2ed4b81870a0b810c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 30 Jun 2020 11:45:14 +0200 Subject: [PATCH 259/323] x86/entry: Use should_resched() in idtentry_exit_cond_resched() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The TIF_NEED_RESCHED bit is inlined on x86 into the preemption counter. By using should_resched(0) instead of need_resched() the same check can @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index e6da86039ccf..f32250adb681 100644 +index e6da86039ccf5..f32250adb6815 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -371,7 +371,7 @@ void irqentry_exit_cond_resched(void) @@ -31,5 +31,5 @@ index e6da86039ccf..f32250adb681 100644 } } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch index 1b4da37ab..0da420ec7 100644 --- a/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch +++ b/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 3e75dc5bbc430b2a1db27fe101ed508b067af7b0 Mon Sep 17 00:00:00 2001 +From da69dbf20c66f9416307996dd025edaa49931fb2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 1 Nov 2012 11:03:47 +0100 Subject: [PATCH 260/323] x86: Support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement the x86 pieces for lazy preempt. @@ -17,7 +17,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index c72d66a0e840..b9f68b01a8c8 100644 +index 79e2b63eba407..f461b699c25d0 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -213,6 +213,7 @@ config X86 @@ -29,7 +29,7 @@ index c72d66a0e840..b9f68b01a8c8 100644 select HAVE_POSIX_CPU_TIMERS_TASK_WORK select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h -index 50e0c0ab7b97..afe37a8c6c24 100644 +index 50e0c0ab7b97b..afe37a8c6c248 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -89,17 +89,48 @@ static __always_inline void __preempt_count_sub(int val) @@ -83,7 +83,7 @@ index 50e0c0ab7b97..afe37a8c6c24 100644 #ifdef CONFIG_PREEMPTION diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h -index 012c8ee93b67..d77e99ba7610 100644 +index 012c8ee93b67f..d77e99ba76102 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -56,17 +56,24 @@ struct task_struct; @@ -137,7 +137,7 @@ index 012c8ee93b67..d77e99ba7610 100644 /* diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h -index 46c42479f950..b902af13d05f 100644 +index 46c42479f9501..b902af13d05fd 100644 --- a/include/linux/entry-common.h +++ b/include/linux/entry-common.h @@ -67,9 +67,9 @@ @@ -154,7 +154,7 @@ index 46c42479f950..b902af13d05f 100644 /** diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index f32250adb681..cdf97ea30b4c 100644 +index f32250adb6815..cdf97ea30b4c0 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -157,7 +157,7 @@ static unsigned long exit_to_user_mode_loop(struct pt_regs *regs, @@ -167,5 +167,5 @@ index f32250adb681..cdf97ea30b4c 100644 #ifdef ARCH_RT_DELAYS_SIGNAL_SEND -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch index 18012c8d8..1eff85e34 100644 --- a/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 125d4e163b1aa93781f9cf4673f729053af2bc53 Mon Sep 17 00:00:00 2001 +From 750131496b762a1185ae9e9953a569ed1d80d31a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 31 Oct 2012 12:04:11 +0100 Subject: [PATCH 261/323] arm: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement the arm pieces for lazy preempt. @@ -18,7 +18,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index c01251683018..ee2cbe8ad502 100644 +index c01251683018d..ee2cbe8ad502d 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -107,6 +107,7 @@ config ARM @@ -30,7 +30,7 @@ index c01251683018..ee2cbe8ad502 100644 select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RSEQ diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h -index fcccf35f5cf9..3b981ad0c322 100644 +index fcccf35f5cf96..3b981ad0c3222 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h @@ -46,6 +46,7 @@ struct cpu_context_save { @@ -70,7 +70,7 @@ index fcccf35f5cf9..3b981ad0c322 100644 #endif /* __KERNEL__ */ diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c -index 70993af22d80..024c65c3a0f2 100644 +index 70993af22d80c..024c65c3a0f23 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c @@ -43,6 +43,7 @@ int main(void) @@ -82,7 +82,7 @@ index 70993af22d80..024c65c3a0f2 100644 DEFINE(TI_TASK, offsetof(struct thread_info, task)); DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S -index 030351d169aa..d6086559168d 100644 +index 030351d169aac..d6086559168db 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -206,11 +206,18 @@ __irq_svc: @@ -123,7 +123,7 @@ index 030351d169aa..d6086559168d 100644 __und_fault: diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S -index 9b3c737575e9..a30b1a1cc4d1 100644 +index 9b3c737575e91..a30b1a1cc4d18 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -92,6 +92,7 @@ __ret_fast_syscall: @@ -135,7 +135,7 @@ index 9b3c737575e9..a30b1a1cc4d1 100644 ENDPROC(ret_fast_syscall) diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c -index a3a38d0a4c85..f04ccf19ab1f 100644 +index a3a38d0a4c853..f04ccf19ab1fd 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -649,7 +649,8 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall) @@ -149,5 +149,5 @@ index a3a38d0a4c85..f04ccf19ab1f 100644 } else { if (unlikely(!user_mode(regs))) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch index 259c9928b..97f02d390 100644 --- a/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 8e5e88a7528b5f0b0f2b9835deaf8b6db693500f Mon Sep 17 00:00:00 2001 +From 84c0c07316ac8fa0e8f692bb0b27bb5fa2cbf0c0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 1 Nov 2012 10:14:11 +0100 Subject: [PATCH 262/323] powerpc: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement the powerpc pieces for lazy preempt. @@ -18,7 +18,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 6 files changed, 49 insertions(+), 18 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig -index b3ab6c2d9f66..6d8ce54ad6dd 100644 +index b3ab6c2d9f66c..6d8ce54ad6dd0 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -230,6 +230,7 @@ config PPC @@ -30,7 +30,7 @@ index b3ab6c2d9f66..6d8ce54ad6dd 100644 select MMU_GATHER_PAGE_SIZE select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h -index ff31d2fa2140..23bfe231fda3 100644 +index ff31d2fa2140f..23bfe231fda3e 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h @@ -54,6 +54,8 @@ @@ -88,7 +88,7 @@ index ff31d2fa2140..23bfe231fda3 100644 /* Bits in local_flags */ /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */ diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c -index 5c125255571c..597379121407 100644 +index 5c125255571cd..597379121407a 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c @@ -189,6 +189,7 @@ int main(void) @@ -100,7 +100,7 @@ index 5c125255571c..597379121407 100644 #ifdef CONFIG_PPC64 OFFSET(DCACHEL1BLOCKSIZE, ppc64_caches, l1d.block_size); diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S -index 459f5d00b990..fc9517a97640 100644 +index 459f5d00b9904..fc9517a976407 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S @@ -414,7 +414,9 @@ ret_from_syscall: @@ -179,7 +179,7 @@ index 459f5d00b990..fc9517a97640 100644 andi. r0,r9,_TIF_USER_WORK_MASK beq restore_user diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S -index f579ce46eef2..715ff292a8f8 100644 +index f579ce46eef2d..715ff292a8f8a 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S @@ -1080,7 +1080,7 @@ _GLOBAL(ret_from_except_lite) @@ -224,7 +224,7 @@ index f579ce46eef2..715ff292a8f8 100644 restore: /* diff --git a/arch/powerpc/kernel/syscall_64.c b/arch/powerpc/kernel/syscall_64.c -index 310bcd768cd5..ae3212dcf562 100644 +index 310bcd768cd5a..ae3212dcf5627 100644 --- a/arch/powerpc/kernel/syscall_64.c +++ b/arch/powerpc/kernel/syscall_64.c @@ -193,7 +193,7 @@ notrace unsigned long syscall_exit_prepare(unsigned long r3, @@ -263,5 +263,5 @@ index 310bcd768cd5..ae3212dcf562 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch index bf46cf898..d3ef2cb19 100644 --- a/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch +++ b/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch @@ -1,8 +1,8 @@ -From 7499fc472caecd0270f69d5857ca8a53cc6dad83 Mon Sep 17 00:00:00 2001 +From f521236471a577e15243b9cc9a7b705a00b68443 Mon Sep 17 00:00:00 2001 From: Anders Roxell <anders.roxell@linaro.org> Date: Thu, 14 May 2015 17:52:17 +0200 Subject: [PATCH 263/323] arch/arm64: Add lazy preempt support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz arm64 is missing support for PREEMPT_RT. The main feature which is lacking is support for lazy preemption. The arch-specific entry code, @@ -23,7 +23,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 13cf137da999..7681d7b65c7d 100644 +index 13cf137da999a..7681d7b65c7d4 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -173,6 +173,7 @@ config ARM64 @@ -35,7 +35,7 @@ index 13cf137da999..7681d7b65c7d 100644 select HAVE_FUNCTION_ARG_ACCESS_API select HAVE_FUTEX_CMPXCHG if FUTEX diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h -index f1486b32502c..7a5770d825b9 100644 +index f1486b32502c1..7a5770d825b91 100644 --- a/arch/arm64/include/asm/preempt.h +++ b/arch/arm64/include/asm/preempt.h @@ -70,13 +70,36 @@ static inline bool __preempt_count_dec_and_test(void) @@ -77,7 +77,7 @@ index f1486b32502c..7a5770d825b9 100644 #ifdef CONFIG_PREEMPTION diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h -index cdcf307764aa..6eb36a2126e8 100644 +index cdcf307764aad..6eb36a2126e84 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -29,6 +29,7 @@ struct thread_info { @@ -114,7 +114,7 @@ index cdcf307764aa..6eb36a2126e8 100644 _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \ _TIF_SYSCALL_EMU) diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c -index 7d32fc959b1a..b2f29bd2ae87 100644 +index 7d32fc959b1a0..b2f29bd2ae871 100644 --- a/arch/arm64/kernel/asm-offsets.c +++ b/arch/arm64/kernel/asm-offsets.c @@ -30,6 +30,7 @@ int main(void) @@ -126,10 +126,10 @@ index 7d32fc959b1a..b2f29bd2ae87 100644 #ifdef CONFIG_ARM64_SW_TTBR0_PAN DEFINE(TSK_TI_TTBR0, offsetof(struct task_struct, thread_info.ttbr0)); diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S -index a94acea770c7..0bfa079043f8 100644 +index 020a455824bed..d9dd46d7aa72d 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S -@@ -523,9 +523,18 @@ alternative_if ARM64_HAS_IRQ_PRIO_MASKING +@@ -527,9 +527,18 @@ alternative_if ARM64_HAS_IRQ_PRIO_MASKING mrs x0, daif orr x24, x24, x0 alternative_else_nop_endif @@ -151,7 +151,7 @@ index a94acea770c7..0bfa079043f8 100644 mov x0, sp diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c -index b6fbbd527dd7..94eed0dc3afc 100644 +index b6fbbd527dd79..94eed0dc3afcd 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -921,7 +921,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, @@ -164,5 +164,5 @@ index b6fbbd527dd7..94eed0dc3afc 100644 local_daif_restore(DAIF_PROCCTX_NOIRQ); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch b/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch index 168745160..4bcede1d5 100644 --- a/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch +++ b/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch @@ -1,8 +1,8 @@ -From 915e18f01ac0c97a6dc374b940a96a105bf57c62 Mon Sep 17 00:00:00 2001 +From 66667665cd371c8bab9c810092e117a5022639ec Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 8 Jul 2015 17:14:48 +0200 Subject: [PATCH 264/323] jump-label: disable if stop_machine() is used -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Some architectures are using stop_machine() while switching the opcode which leads to latency spikes. @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index ee2cbe8ad502..73c55cb2f296 100644 +index ee2cbe8ad502d..73c55cb2f2968 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -67,7 +67,7 @@ config ARM @@ -38,5 +38,5 @@ index ee2cbe8ad502..73c55cb2f296 100644 select HAVE_ARCH_MMAP_RND_BITS if MMU select HAVE_ARCH_SECCOMP -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch index 87bc1d736..50c13efb8 100644 --- a/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch +++ b/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch @@ -1,8 +1,8 @@ -From 524ea188033506aaa1b70534af78b30fe718ae98 Mon Sep 17 00:00:00 2001 +From 6bdcaba379cad265cf5e29cf7f7dbc54de351b1b 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 265/323] leds: trigger: disable CPU trigger on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+) diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig -index ce9429ca6dde..29ccbd6acf43 100644 +index ce9429ca6ddea..29ccbd6acf43f 100644 --- a/drivers/leds/trigger/Kconfig +++ b/drivers/leds/trigger/Kconfig @@ -64,6 +64,7 @@ config LEDS_TRIGGER_BACKLIGHT @@ -36,5 +36,5 @@ index ce9429ca6dde..29ccbd6acf43 100644 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.43.0 +2.44.0 diff --git a/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch index e926c5ed8..3114f2992 100644 --- a/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,8 +1,8 @@ -From c436953e83166f6588469c76032a7038a50cc585 Mon Sep 17 00:00:00 2001 +From e012f26787562417f3425ebe333df5140eaacf86 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 28 Jul 2011 13:32:57 +0200 Subject: [PATCH 266/323] tty/serial/omap: Make the locking RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c -index 84e8158088cd..342005ed5ebf 100644 +index 84e8158088cd2..342005ed5ebf8 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1311,13 +1311,10 @@ serial_omap_console_write(struct console *co, const char *s, @@ -45,5 +45,5 @@ index 84e8158088cd..342005ed5ebf 100644 static int __init -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch index 73b68ab8d..db00ce8ce 100644 --- a/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch +++ b/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch @@ -1,8 +1,8 @@ -From 822739997ff16caa50f619a00344655f21d65a4b Mon Sep 17 00:00:00 2001 +From 2cd854436b15583e89ae35df3346a5b9fb934086 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 8 Jan 2013 21:36:51 +0100 Subject: [PATCH 267/323] tty/serial/pl011: Make the locking work on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and non-RT. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index d4a93a94b4ca..275c625e3eb9 100644 +index d4a93a94b4ca6..275c625e3eb95 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2207,18 +2207,24 @@ pl011_console_write(struct console *co, const char *s, unsigned int count) @@ -56,5 +56,5 @@ index d4a93a94b4ca..275c625e3eb9 100644 clk_disable(uap->clk); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch index 35e0764d9..2739bcc5f 100644 --- a/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,4 +1,4 @@ -From 0a5ad9dd4773a61fe0f0d6928ef603081390df21 Mon Sep 17 00:00:00 2001 +From 4c7d7e9c87e17c07e0f216c449fc5dfb5f46233c Mon Sep 17 00:00:00 2001 From: "Yadi.hu" <yadi.hu@windriver.com> Date: Wed, 10 Dec 2014 10:32:09 +0800 Subject: [PATCH 268/323] ARM: enable irq in translation/section permission @@ -6,7 +6,7 @@ Subject: [PATCH 268/323] ARM: enable irq in translation/section permission MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Probably happens on all ARM, with CONFIG_PREEMPT_RT @@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 6 insertions(+) diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c -index af5177801fb1..1de016008e2e 100644 +index af5177801fb10..1de016008e2ee 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -400,6 +400,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr, @@ -91,5 +91,5 @@ index af5177801fb1..1de016008e2e 100644 return 0; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch index aae472078..23798ead7 100644 --- a/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch +++ b/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch @@ -1,8 +1,8 @@ -From 0eeda295a1e21ff716f482a4115822e9789e305f Mon Sep 17 00:00:00 2001 +From 0b1b363dab2cf6ca9d71117560a36d8c4bf2a28c Mon Sep 17 00:00:00 2001 From: Josh Cartwright <joshc@ni.com> Date: Thu, 11 Feb 2016 11:54:00 -0600 Subject: [PATCH 269/323] genirq: update irq_set_irqchip_state documentation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On -rt kernels, the use of migrate_disable()/migrate_enable() is sufficient to guarantee a task isn't moved to another CPU. Update the @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index 5ec167fb77b9..228699d9c85c 100644 +index 5ec167fb77b91..228699d9c85ca 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2756,7 +2756,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state); @@ -28,5 +28,5 @@ index 5ec167fb77b9..228699d9c85c 100644 */ int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index e9a9de0ad..e786450e8 100644 --- a/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -1,9 +1,9 @@ -From bbb0b6e29c89355e0fb77bef3b06badef0ccc946 Mon Sep 17 00:00:00 2001 +From dcfc08f2fd2de1d5511f3d81b854f34fc8f95319 Mon Sep 17 00:00:00 2001 From: Josh Cartwright <joshc@ni.com> Date: Thu, 11 Feb 2016 11:54:01 -0600 Subject: [PATCH 270/323] KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating the vgic and timer states to prevent the calling task from migrating to @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c -index 4d63fcd7574b..06fced951e75 100644 +index 4d63fcd7574b2..06fced951e754 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -708,7 +708,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) @@ -55,5 +55,5 @@ index 4d63fcd7574b..06fced951e75 100644 /* * The ARMv8 architecture doesn't give the hypervisor -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch b/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch index 733617e78..1dd2ec997 100644 --- a/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch +++ b/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch @@ -1,9 +1,9 @@ -From d0fe894184b649a8d383fa8d2db7ae3233b04428 Mon Sep 17 00:00:00 2001 +From b38461511249843a7d75791bdf86bcdfa9d2bd16 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 25 Jul 2018 14:02:38 +0200 Subject: [PATCH 271/323] arm64: fpsimd: Delay freeing memory in fpsimd_flush_thread() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz fpsimd_flush_thread() invokes kfree() via sve_free() within a preempt disabled section which is not working on -RT. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c -index a9bbfb800ec2..aa631771e0dc 100644 +index a9bbfb800ec2b..aa631771e0dcd 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -226,6 +226,16 @@ static void sve_free(struct task_struct *task) @@ -62,5 +62,5 @@ index a9bbfb800ec2..aa631771e0dc 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch b/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch index e7c39e069..c99996360 100644 --- a/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch +++ b/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch @@ -1,8 +1,8 @@ -From b4def70f635385c0a02c2261e1915671363eeccd Mon Sep 17 00:00:00 2001 +From c1e264bdca999c7fc08f769dc80833767f1d2a89 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 7 Nov 2019 17:49:20 +0100 Subject: [PATCH 272/323] x86: Enable RT also on 32bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- @@ -10,7 +10,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index b9f68b01a8c8..ca79a831f611 100644 +index f461b699c25d0..5de3655b3e410 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -27,7 +27,6 @@ config X86_64 @@ -30,5 +30,5 @@ index b9f68b01a8c8..ca79a831f611 100644 select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch b/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch index 9392f0977..926b87abf 100644 --- a/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From 98a5d5b92ddcd0df7aa708accc20a07b6008d86a Mon Sep 17 00:00:00 2001 +From a2c097a17b4106044f83dd26796464e34ffed4ab Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Oct 2019 13:14:29 +0200 Subject: [PATCH 273/323] ARM: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 73c55cb2f296..adf9347724ed 100644 +index 73c55cb2f2968..adf9347724ed8 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -32,6 +32,7 @@ config ARM @@ -32,5 +32,5 @@ index 73c55cb2f296..adf9347724ed 100644 select SET_FS select SYS_SUPPORTS_APM_EMULATION -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch b/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch index 5176f9521..98788e37c 100644 --- a/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From 27aef9eb166603124a97edf3a14035b406f36096 Mon Sep 17 00:00:00 2001 +From 9e80e759aedc7fcd7c5fd84554645e47d0a7bc29 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Oct 2019 13:14:35 +0200 Subject: [PATCH 274/323] ARM64: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 7681d7b65c7d..ab8b86b23190 100644 +index 7681d7b65c7d4..ab8b86b231909 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -76,6 +76,7 @@ config ARM64 @@ -32,5 +32,5 @@ index 7681d7b65c7d..ab8b86b23190 100644 select POWER_SUPPLY select SET_FS -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch b/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch index 75ece9602..97c4d78b4 100644 --- a/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch +++ b/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From 25b6e91e812b8fe81cda3732be60b3d8402fee43 Mon Sep 17 00:00:00 2001 +From adc90a882bfc81c045e47cef64d7bfbdaa33e23e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 26 Jul 2019 11:30:49 +0200 Subject: [PATCH 275/323] powerpc: traps: Use PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add PREEMPT_RT to the backtrace if enabled. @@ -12,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c -index d39a4a6b4ddf..75a6c83299ad 100644 +index 5dfe1aea62054..51a101747b79a 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -259,12 +259,17 @@ static char *get_mmu_str(void) @@ -35,5 +35,5 @@ index d39a4a6b4ddf..75a6c83299ad 100644 IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "", debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "", -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch index fbd35f4c7..3f25b6fd9 100644 --- a/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch +++ b/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch @@ -1,9 +1,9 @@ -From afebcd1022d509a6887f066b6601caf561ee1ee5 Mon Sep 17 00:00:00 2001 +From ab9ea5baea539a220a12cd2b360bd4aa839effc4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Mar 2019 18:31:54 +0100 Subject: [PATCH 276/323] powerpc/pseries/iommu: Use a locallock instead local_irq_save() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The locallock protects the per-CPU variable tce_page. The function attempts to allocate memory while tce_page is protected (by disabling @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c -index 245f1f8df656..f05555dde8e7 100644 +index 245f1f8df6563..f05555dde8e7f 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -24,6 +24,7 @@ @@ -113,5 +113,5 @@ index 245f1f8df656..f05555dde8e7 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index 1d465fba1..f3b8bf52f 100644 --- a/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -1,9 +1,9 @@ -From f6ff6354df6d4609ce786969f2fd16afeaf88fba Mon Sep 17 00:00:00 2001 +From 868a7b96570b72a59be9cd5e44281790f0f08938 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 277/323] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.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 @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 1 insertion(+) diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig -index 549591d9aaa2..efb5bfe93f70 100644 +index 549591d9aaa2c..efb5bfe93f705 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig @@ -178,6 +178,7 @@ config KVM_E500MC @@ -41,5 +41,5 @@ index 549591d9aaa2..efb5bfe93f70 100644 select HAVE_KVM_IRQFD select HAVE_KVM_IRQ_ROUTING -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch b/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch index a46f2fadf..fdd40cc96 100644 --- a/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch +++ b/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch @@ -1,9 +1,9 @@ -From fdb2b0b4898a26e8910152ed1ab6fa6748d1b839 Mon Sep 17 00:00:00 2001 +From 8a5fd92365934ca6cf2c26a16c1eb3a859048ff4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Mar 2019 18:31:29 +0100 Subject: [PATCH 278/323] powerpc/stackprotector: work around stack-guard init from atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is invoked from the secondary CPU in atomic context. On x86 we use tsc instead. On Power we XOR it against mftb() so lets use stack address @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 4 insertions(+) diff --git a/arch/powerpc/include/asm/stackprotector.h b/arch/powerpc/include/asm/stackprotector.h -index 1c8460e23583..b1653c160bab 100644 +index 1c8460e235838..b1653c160bab9 100644 --- a/arch/powerpc/include/asm/stackprotector.h +++ b/arch/powerpc/include/asm/stackprotector.h @@ -24,7 +24,11 @@ static __always_inline void boot_init_stack_canary(void) @@ -32,5 +32,5 @@ index 1c8460e23583..b1653c160bab 100644 canary ^= LINUX_VERSION_CODE; canary &= CANARY_MASK; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch b/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch index 64bf1e545..144b6319c 100644 --- a/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch +++ b/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch @@ -1,8 +1,8 @@ -From 725e44480dc7376b55d990292c119883ddc51288 Mon Sep 17 00:00:00 2001 +From 48858c584eb71cb0b2fd001b8738dd142a37cfd7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 8 Jan 2021 19:48:21 +0100 Subject: [PATCH 279/323] powerpc: Avoid recursive header includes -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz - The include of bug.h leads to an include of printk.h which gets back to spinlock.h and complains then about missing xchg(). @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/cmpxchg.h b/arch/powerpc/include/asm/cmpxchg.h -index cf091c4c22e5..7371f7e23c35 100644 +index cf091c4c22e53..7371f7e23c357 100644 --- a/arch/powerpc/include/asm/cmpxchg.h +++ b/arch/powerpc/include/asm/cmpxchg.h @@ -5,7 +5,7 @@ @@ -31,7 +31,7 @@ index cf091c4c22e5..7371f7e23c35 100644 #ifdef __BIG_ENDIAN #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) diff --git a/arch/powerpc/include/asm/simple_spinlock_types.h b/arch/powerpc/include/asm/simple_spinlock_types.h -index 0f3cdd8faa95..d45561e9e6ba 100644 +index 0f3cdd8faa959..d45561e9e6bab 100644 --- a/arch/powerpc/include/asm/simple_spinlock_types.h +++ b/arch/powerpc/include/asm/simple_spinlock_types.h @@ -2,7 +2,7 @@ @@ -44,5 +44,5 @@ index 0f3cdd8faa95..d45561e9e6ba 100644 #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch b/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch index 955781532..b2d71230c 100644 --- a/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From 934b061dd0089023163d44f7670bc3b0a4ebb7b1 Mon Sep 17 00:00:00 2001 +From 28b743e33eb850b2026c045127f7fd99b65d4467 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Oct 2019 13:14:41 +0200 Subject: [PATCH 280/323] POWERPC: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig -index 6d8ce54ad6dd..065ed526be1a 100644 +index 6d8ce54ad6dd0..065ed526be1a3 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -146,6 +146,7 @@ config PPC @@ -32,5 +32,5 @@ index 6d8ce54ad6dd..065ed526be1a 100644 select IOMMU_HELPER if PPC64 select IRQ_DOMAIN -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch index 4c370a764..0d32590b9 100644 --- a/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +++ b/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -1,9 +1,9 @@ -From b7d25d7dc9f6a1923426c6e235061e825434e4fd Mon Sep 17 00:00:00 2001 +From 6d3e29ed264529d441b4190e9c857dc5b6fd3f26 Mon Sep 17 00:00:00 2001 From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Thu, 31 Mar 2016 04:08:28 +0200 Subject: [PATCH 281/323] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz They're nondeterministic, and lead to ___might_sleep() splats in -rt. OTOH, they're a lot less wasteful than an rtmutex per page. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2 files changed, 37 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c -index 0636df6b67db..1a7523cefbe9 100644 +index 0636df6b67db6..1a7523cefbe9b 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -59,6 +59,40 @@ static void zram_free_page(struct zram *zram, size_t index); @@ -77,7 +77,7 @@ index 0636df6b67db..1a7523cefbe9 100644 } diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h -index f2fd46daa760..7e4dd447e1dd 100644 +index f2fd46daa7604..7e4dd447e1ddd 100644 --- a/drivers/block/zram/zram_drv.h +++ b/drivers/block/zram/zram_drv.h @@ -63,6 +63,7 @@ struct zram_table_entry { @@ -89,5 +89,5 @@ index f2fd46daa760..7e4dd447e1dd 100644 ktime_t ac_time; #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch index 8452ac49c..42de82173 100644 --- a/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch +++ b/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,8 +1,8 @@ -From ae8783c450876b505b7c6066ccda3b68e8d08c58 Mon Sep 17 00:00:00 2001 +From b24225376d8eaf32f7f3b42ac86a689baf6303f2 Mon Sep 17 00:00:00 2001 From: Haris Okanovic <haris.okanovic@ni.com> Date: Tue, 15 Aug 2017 15:13:08 -0500 Subject: [PATCH 282/323] tpm_tis: fix stall after iowrite*()s -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c -index 3e1bb28b7efd..c26ed0ce6b34 100644 +index 3e1bb28b7efdf..c26ed0ce6b348 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c @@ -50,6 +50,31 @@ static inline struct tpm_tis_tcg_phy *to_tpm_tis_tcg_phy(struct tpm_tis_data *da @@ -80,5 +80,5 @@ index 3e1bb28b7efd..c26ed0ce6b34 100644 return 0; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch index a34a3538f..10dad7c2d 100644 --- a/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,8 +1,8 @@ -From 1f9d07b4cf227f0cf0800f96c10f9ef143b5d663 Mon Sep 17 00:00:00 2001 +From 86ce77309a47255d844f6973c90de72cfaa7bec1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 3 Jul 2009 08:44:56 -0500 Subject: [PATCH 283/323] signals: Allow rt tasks to cache one sigqueue struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 5 files changed, 69 insertions(+), 5 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 665a17e4f69b..a73528e8235d 100644 +index 665a17e4f69be..a73528e8235d4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -992,6 +992,7 @@ struct task_struct { @@ -29,7 +29,7 @@ index 665a17e4f69b..a73528e8235d 100644 sigset_t real_blocked; /* Restored if set_restore_sigmask() was used: */ diff --git a/include/linux/signal.h b/include/linux/signal.h -index b256f9c65661..ebf6c515a7b2 100644 +index b256f9c65661c..ebf6c515a7b20 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -265,6 +265,7 @@ static inline void init_sigpending(struct sigpending *sig) @@ -41,7 +41,7 @@ index b256f9c65661..ebf6c515a7b2 100644 /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */ static inline int valid_signal(unsigned long sig) diff --git a/kernel/exit.c b/kernel/exit.c -index bacdaf980933..b86f388d3e64 100644 +index bacdaf980933b..b86f388d3e642 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -199,7 +199,7 @@ static void __exit_signal(struct task_struct *tsk) @@ -54,7 +54,7 @@ index bacdaf980933..b86f388d3e64 100644 spin_unlock(&sighand->siglock); diff --git a/kernel/fork.c b/kernel/fork.c -index 2a11bf5f9e30..dfefb6e7e082 100644 +index 2a11bf5f9e301..dfefb6e7e082b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2046,6 +2046,7 @@ static __latent_entropy struct task_struct *copy_process( @@ -66,7 +66,7 @@ index 2a11bf5f9e30..dfefb6e7e082 100644 p->utime = p->stime = p->gtime = 0; #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME diff --git a/kernel/signal.c b/kernel/signal.c -index e8819aabe3cd..e1f263cbcf09 100644 +index e8819aabe3cd5..e1f263cbcf09a 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -20,6 +20,7 @@ @@ -208,5 +208,5 @@ index e8819aabe3cd..e1f263cbcf09 100644 if (q) q->flags |= SIGQUEUE_PREALLOC; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch b/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch index 8a50b4089..69978cd81 100644 --- a/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch +++ b/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch @@ -1,8 +1,8 @@ -From 9a8853e64ab5f1c44db176464996da3ba86d2a8e Mon Sep 17 00:00:00 2001 +From 83c6119b2a9dac70fd3d5c95c6537cb537172a27 Mon Sep 17 00:00:00 2001 From: Matt Fleming <matt@codeblueprint.co.uk> Date: Tue, 7 Apr 2020 10:54:13 +0100 Subject: [PATCH 284/323] signal: Prevent double-free of user struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The way user struct reference counting works changed significantly with, @@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c -index e1f263cbcf09..a1eeecb4922d 100644 +index e1f263cbcf09a..a1eeecb4922db 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -495,8 +495,8 @@ static void sigqueue_free_current(struct sigqueue *q) @@ -48,5 +48,5 @@ index e1f263cbcf09..a1eeecb4922d 100644 __sigqueue_free(q); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch b/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch index 8033dbbab..7a8c2b60a 100644 --- a/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch +++ b/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch @@ -1,8 +1,8 @@ -From 4795907a92ad1bf9383b0c748facb436cac71e36 Mon Sep 17 00:00:00 2001 +From 3248e85351bbdc0e8d61c0b854d0ac1e22deb504 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:57 -0500 Subject: [PATCH 285/323] genirq: Disable irqpoll on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Creates long latencies for no value @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 1 file changed, 8 insertions(+) diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c -index f865e5f4d382..dc7311dd74b1 100644 +index f865e5f4d3825..dc7311dd74b11 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c @@ -443,6 +443,10 @@ MODULE_PARM_DESC(noirqdebug, "Disable irq lockup detection when true"); @@ -39,5 +39,5 @@ index f865e5f4d382..dc7311dd74b1 100644 printk(KERN_WARNING "Misrouted IRQ fixup and polling support " "enabled\n"); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch index e28616641..4bf92c4ce 100644 --- a/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,8 +1,8 @@ -From e7909a8ac08579fb76c51cde86c1171c8d1c6c36 Mon Sep 17 00:00:00 2001 +From 8518e39d983ac366a89d0844f908b50e80ef94b3 Mon Sep 17 00:00:00 2001 From: Clark Williams <williams@redhat.com> Date: Sat, 30 Jul 2011 21:55:53 -0500 Subject: [PATCH 286/323] sysfs: Add /sys/kernel/realtime entry -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. @@ -20,7 +20,7 @@ Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> 1 file changed, 12 insertions(+) diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c -index e20c19e3ba49..777168d58f02 100644 +index e20c19e3ba49c..777168d58f02e 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -143,6 +143,15 @@ KERNEL_ATTR_RO(vmcoreinfo); @@ -50,5 +50,5 @@ index e20c19e3ba49..777168d58f02 100644 NULL }; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0287-Add-localversion-for-RT-release.patch b/debian/patches-rt/0287-Add-localversion-for-RT-release.patch index ee5bf247a..1c5fa1db2 100644 --- a/debian/patches-rt/0287-Add-localversion-for-RT-release.patch +++ b/debian/patches-rt/0287-Add-localversion-for-RT-release.patch @@ -1,8 +1,8 @@ -From 180a0118d4485cb909de0be0f7ebb61adce763e1 Mon Sep 17 00:00:00 2001 +From 8c5e16acf632039df23dc17f11d5ebecdb80f6a5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 8 Jul 2011 20:25:16 +0200 Subject: [PATCH 287/323] Add localversion for -RT release -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- @@ -12,11 +12,11 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> diff --git a/localversion-rt b/localversion-rt new file mode 100644 -index 000000000000..21988f9ad53f +index 0000000000000..21988f9ad53f1 --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ +-rt34 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch b/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch index df8a062a3..cea3301c7 100644 --- a/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch +++ b/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch @@ -1,9 +1,9 @@ -From 97138dbb6886695284b96e3680f1533beae6e43a Mon Sep 17 00:00:00 2001 +From 349854c1b05d1d8a452bd32104ceec210d2612f2 Mon Sep 17 00:00:00 2001 From: "Ahmed S. Darwish" <a.darwish@linutronix.de> Date: Tue, 16 Mar 2021 11:56:30 +0100 Subject: [PATCH 288/323] net: xfrm: Use sequence counter with associated spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A sequence counter write section must be serialized or its internal state can get corrupted. A plain seqcount_t does not contain the @@ -26,7 +26,7 @@ Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h -index 7b87da22b295..fef22e029c0d 100644 +index 7b87da22b2950..fef22e029c0d3 100644 --- a/include/net/netns/xfrm.h +++ b/include/net/netns/xfrm.h @@ -77,7 +77,7 @@ struct netns_xfrm { @@ -39,5 +39,5 @@ index 7b87da22b295..fef22e029c0d 100644 spinlock_t xfrm_policy_lock; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch b/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch index 54a798b25..ca488bf08 100644 --- a/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch +++ b/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch @@ -1,8 +1,8 @@ -From 013f5d7501b106952e04d54b0803c2d1ae9a4876 Mon Sep 17 00:00:00 2001 +From e50b6857b0abf2d6d9d1dda8ef960165b53fa268 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 8 Jun 2021 00:37:30 -0400 Subject: [PATCH 289/323] sched: Fix migration_cpu_stop() requeueing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 8a6edb5257e2a84720fe78cb179eca58ba76126f upstream. @@ -64,7 +64,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c847d17e3b04..df9c4c3838c0 100644 +index c847d17e3b04a..df9c4c3838c00 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1974,6 +1974,24 @@ static int migration_cpu_stop(void *data) @@ -143,5 +143,5 @@ index c847d17e3b04..df9c4c3838c0 100644 } else { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch b/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch index 4d0841707..63e4cfd7d 100644 --- a/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch +++ b/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch @@ -1,8 +1,8 @@ -From 4f468832c2a5bb5c0bb23b453038ff4fed722061 Mon Sep 17 00:00:00 2001 +From 8c83028791cd3c1ffa615c82535020759b6adf99 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 8 Jun 2021 00:37:31 -0400 Subject: [PATCH 290/323] sched: Simplify migration_cpu_stop() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit c20cf065d4a619d394d23290093b1002e27dff86 upstream. @@ -28,7 +28,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 8 insertions(+), 48 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index df9c4c3838c0..31fa925852e5 100644 +index df9c4c3838c00..31fa925852e5b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1950,8 +1950,8 @@ static struct rq *__migrate_task(struct rq *rq, struct rq_flags *rf, @@ -138,5 +138,5 @@ index df9c4c3838c0..31fa925852e5 100644 wake_up_var(&pending->refs); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch b/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch index b73fb91be..15cadab32 100644 --- a/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch +++ b/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch @@ -1,8 +1,8 @@ -From e62b758a0149648256ed0fa194d9e107e294d8aa Mon Sep 17 00:00:00 2001 +From aebf4a48df8de27ad8c21a27c8840b03ce9dbef2 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 8 Jun 2021 00:37:32 -0400 Subject: [PATCH 291/323] sched: Collate affine_move_task() stoppers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 58b1a45086b5f80f2b2842aa7ed0da51a64a302b upstream. @@ -22,7 +22,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 31fa925852e5..3130289baf79 100644 +index 31fa925852e5b..3130289baf79d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2291,30 +2291,23 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag @@ -65,5 +65,5 @@ index 31fa925852e5..3130289baf79 100644 if (!is_migration_disabled(p)) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch b/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch index 87ca79ca8..8f133de72 100644 --- a/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch +++ b/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch @@ -1,8 +1,8 @@ -From b1353ab8df1e6dd3bf9afaef3096749db2a193f1 Mon Sep 17 00:00:00 2001 +From 918554944b05fe63566fcc038f0e680fbd618323 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 8 Jun 2021 00:37:33 -0400 Subject: [PATCH 292/323] sched: Optimize migration_cpu_stop() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 3f1bc119cd7fc987c8ed25ffb717f99403bb308c upstream. @@ -23,7 +23,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3130289baf79..e28fb33afa95 100644 +index 3130289baf79d..e28fb33afa954 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1988,14 +1988,25 @@ static int migration_cpu_stop(void *data) @@ -54,5 +54,5 @@ index 3130289baf79..e28fb33afa95 100644 /* * This happens when we get migrated between migrate_enable()'s -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch b/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch index 4a906f7cb..358d71987 100644 --- a/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch +++ b/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch @@ -1,8 +1,8 @@ -From e9faaf024fdd553b55aaed31855385da7e9d505a Mon Sep 17 00:00:00 2001 +From bc2dcc47f1948e98b64ad439afcfa5fbe39a311c Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 8 Jun 2021 00:37:34 -0400 Subject: [PATCH 293/323] sched: Fix affine_move_task() self-concurrency -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 9e81889c7648d48dd5fe13f41cbc99f3c362484a upstream. @@ -33,7 +33,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index e28fb33afa95..76fa3daf1f60 100644 +index e28fb33afa954..76fa3daf1f60b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1916,6 +1916,7 @@ struct migration_arg { @@ -92,5 +92,5 @@ index e28fb33afa95..76fa3daf1f60 100644 if (flags & SCA_MIGRATE_ENABLE) return 0; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch b/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch index 1230259b8..abde48af0 100644 --- a/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch +++ b/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch @@ -1,8 +1,8 @@ -From 6681b566fe9ffe9365121a790537ada2e4ef97ba Mon Sep 17 00:00:00 2001 +From e687fc6a201ebfd56b68770af596e08be89af58b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra <peterz@infradead.org> Date: Tue, 8 Jun 2021 00:37:35 -0400 Subject: [PATCH 294/323] sched: Simplify set_affinity_pending refcounts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 50caf9c14b1498c90cf808dbba2ca29bd32ccba4 upstream. @@ -24,7 +24,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 76fa3daf1f60..d3b9d69171a2 100644 +index 76fa3daf1f60b..d3b9d69171a2e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1914,6 +1914,10 @@ struct migration_arg { @@ -125,5 +125,5 @@ index 76fa3daf1f60..d3b9d69171a2 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch b/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch index e05440c01..f3c3b79f1 100644 --- a/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch +++ b/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch @@ -1,8 +1,8 @@ -From b625852d41e17fb13b4caf7192734866534d9799 Mon Sep 17 00:00:00 2001 +From 3ec88f282d46a8158f44cb992c001e730008d864 Mon Sep 17 00:00:00 2001 From: Valentin Schneider <valentin.schneider@arm.com> Date: Tue, 8 Jun 2021 00:37:36 -0400 Subject: [PATCH 295/323] sched: Don't defer CPU pick to migration_cpu_stop() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 475ea6c60279e9f2ddf7e4cf2648cd8ae0608361 upstream. @@ -37,7 +37,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index d3b9d69171a2..81b342d6629b 100644 +index d3b9d69171a2e..81b342d6629bb 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1958,7 +1958,6 @@ static int migration_cpu_stop(void *data) @@ -96,5 +96,5 @@ index d3b9d69171a2..81b342d6629b 100644 } pending = p->migration_pending; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch b/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch index 72589519a..a8a8760d7 100644 --- a/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch +++ b/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch @@ -1,9 +1,9 @@ -From 6e1b154dfc59c96068eafef9fafbda28b723d3e6 Mon Sep 17 00:00:00 2001 +From 9b4c735dc4d95cc8a653acaf8078cdadc77f096f Mon Sep 17 00:00:00 2001 From: Chao Qin <chao.qin@intel.com> Date: Mon, 19 Jul 2021 10:26:50 +0800 Subject: [PATCH 296/323] printk: Enhance the condition check of msleep in pr_flush() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz [ Upstream commit 83e9288d9c4295d1195e9d780fcbc42c72ba4a83 ] @@ -29,10 +29,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 14cb111fe9f0..d2205872304d 100644 +index 3fdd06c05f4ea..ea7a14a485382 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3554,7 +3554,9 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) +@@ -3577,7 +3577,9 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) u64 diff; u64 seq; @@ -44,5 +44,5 @@ index 14cb111fe9f0..d2205872304d 100644 seq = prb_next_seq(prb); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch b/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch index 91a9ede63..a66f1d2fb 100644 --- a/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch +++ b/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch @@ -1,8 +1,8 @@ -From 7131b777e7276a566838fdfb4a0b2ddc44ad2eca Mon Sep 17 00:00:00 2001 +From fa02c4e204fc73b01612c59d6ad3fcb0b9ab80a8 Mon Sep 17 00:00:00 2001 From: Andrew Halaney <ahalaney@redhat.com> Date: Tue, 6 Apr 2021 17:19:52 -0500 Subject: [PATCH 297/323] locking/rwsem-rt: Remove might_sleep() in __up_read() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There's no chance of sleeping here, the reader is giving up the lock and possibly waking up the writer who is waiting on it. @@ -15,7 +15,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 1 deletion(-) diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c -index 274172d5bb3a..b61edc4dcb73 100644 +index 274172d5bb3a5..b61edc4dcb739 100644 --- a/kernel/locking/rwsem-rt.c +++ b/kernel/locking/rwsem-rt.c @@ -198,7 +198,6 @@ void __up_read(struct rw_semaphore *sem) @@ -27,5 +27,5 @@ index 274172d5bb3a..b61edc4dcb73 100644 /* * Wake the writer, i.e. the rtmutex owner. It might release the -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch b/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch index d26ff0ea0..9eac39caf 100644 --- a/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch +++ b/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch @@ -1,9 +1,9 @@ -From b4a9c84408720dd6da0cdb52fc3e7070aef9c4fe Mon Sep 17 00:00:00 2001 +From 8fa6b236cbdb58b7fb6358b0ea25889987c7765b Mon Sep 17 00:00:00 2001 From: Mike Galbraith <efault@gmx.de> Date: Tue, 24 Aug 2021 13:08:14 +0200 Subject: [PATCH 298/323] mm, zsmalloc: Convert zsmalloc_handle.lock to spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz local_lock_t becoming a synonym of spinlock_t had consequences for the RT mods to zsmalloc, which were taking a mutex while holding a local_lock, @@ -20,7 +20,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c -index 7dad2ff3e778..16ce2b05df90 100644 +index 7dad2ff3e7785..16ce2b05df904 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -82,7 +82,7 @@ @@ -78,5 +78,5 @@ index 7dad2ff3e778..16ce2b05df90 100644 bit_spin_unlock(HANDLE_PIN_BIT, (unsigned long *)handle); #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch b/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch index f59c122c0..d19f62d23 100644 --- a/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch +++ b/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch @@ -1,8 +1,8 @@ -From 93c4258bc009109bee258c30fa2a53680c8b1f9a Mon Sep 17 00:00:00 2001 +From 03d41accee2585cf05b399e1feeb58c3c2dc26c3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Aug 2021 15:37:38 +0200 Subject: [PATCH 299/323] sched: Fix get_push_task() vs migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz push_rt_task() attempts to move the currently running task away if the next runnable task has migration disabled and therefore is pinned on the @@ -28,7 +28,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 3 insertions(+) diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index ad854a670701..bda12827832e 100644 +index ad854a670701b..bda12827832e9 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1949,6 +1949,9 @@ static inline struct task_struct *get_push_task(struct rq *rq) @@ -42,5 +42,5 @@ index ad854a670701..bda12827832e 100644 return get_task_struct(p); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch b/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch index 720b08fc7..1d729b399 100644 --- a/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch +++ b/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch @@ -1,9 +1,9 @@ -From f29a6f7bb4568b4ac2d5a9226d503db7a2c69bab Mon Sep 17 00:00:00 2001 +From c58157127499876388024179720f201107eef2fe Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 24 Aug 2021 22:47:37 +0200 Subject: [PATCH 300/323] sched: Switch wait_task_inactive to HRTIMER_MODE_REL_HARD -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With PREEMPT_RT enabled all hrtimers callbacks will be invoked in softirq mode unless they are explicitly marked as HRTIMER_MODE_HARD. @@ -31,7 +31,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 81b342d6629b..6735872a8508 100644 +index 81b342d6629bb..6735872a8508b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2739,7 +2739,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) @@ -44,5 +44,5 @@ index 81b342d6629b..6735872a8508 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch b/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch index 41de0ba3d..6ea5df304 100644 --- a/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch +++ b/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch @@ -1,9 +1,9 @@ -From 8cc1a32ca44ae3484956295c75afcc2234e809ae Mon Sep 17 00:00:00 2001 +From 9a8af8cf25c2266997a715afdfce6804667f5cf3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 22 Sep 2021 19:34:40 +0200 Subject: [PATCH 301/323] preempt: Move preempt_enable_no_resched() to the RT block -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz preempt_enable_no_resched() should point to preempt_enable() on PREEMPT_RT so nobody is playing any preempt tricks and enables @@ -21,7 +21,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index af39859f02ee..7b5b2ed55531 100644 +index af39859f02ee1..7b5b2ed55531a 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -208,12 +208,12 @@ do { \ @@ -41,5 +41,5 @@ index af39859f02ee..7b5b2ed55531 100644 #define preemptible() (preempt_count() == 0 && !irqs_disabled()) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch b/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch index e9b579280..4549f148f 100644 --- a/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch +++ b/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch @@ -1,9 +1,9 @@ -From 4e8d89996a692bd5d4a094e55c0a88044993057f Mon Sep 17 00:00:00 2001 +From abac8a6ec90894bf97f3d395bc2329c03c6b9f75 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 29 Oct 2021 10:07:11 +0200 Subject: [PATCH 302/323] mm: Disable NUMA_BALANCING_DEFAULT_ENABLED and TRANSPARENT_HUGEPAGE on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz TRANSPARENT_HUGEPAGE: There are potential non-deterministic delays to an RT thread if a critical @@ -34,7 +34,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/Kconfig b/init/Kconfig -index c5f276d782de..a62d2961064b 100644 +index c5f276d782def..a62d2961064b2 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -878,7 +878,7 @@ config NUMA_BALANCING @@ -47,5 +47,5 @@ index c5f276d782de..a62d2961064b 100644 This option adds support for automatic NUMA aware memory/task placement. The mechanism is quite primitive and is based on migrating memory when -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch b/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch index a2f67e27c..1f05bc3f0 100644 --- a/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch +++ b/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch @@ -1,8 +1,8 @@ -From 9ebcbc0c3bbeaa6e13b623ff2d84d3b29e0a1431 Mon Sep 17 00:00:00 2001 +From 811779e6a823e7bdf8dcbd8ee78f4265a5afe052 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 28 Oct 2021 17:30:50 +0200 Subject: [PATCH 303/323] fscache: Use only one fscache_object_cong_wait. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In the commit mentioned below, fscache was converted from slow-work to workqueue. slow_work_enqueue() and slow_work_sleep_till_thread_needed() @@ -36,7 +36,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h -index 64aa552b296d..7dae569dafb9 100644 +index 64aa552b296d7..7dae569dafb9d 100644 --- a/fs/fscache/internal.h +++ b/fs/fscache/internal.h @@ -95,7 +95,6 @@ extern unsigned fscache_debug; @@ -48,7 +48,7 @@ index 64aa552b296d..7dae569dafb9 100644 extern unsigned int fscache_hash(unsigned int salt, unsigned int *data, unsigned int n); diff --git a/fs/fscache/main.c b/fs/fscache/main.c -index 4207f98e405f..85f8cf3a323d 100644 +index 4207f98e405fd..85f8cf3a323d5 100644 --- a/fs/fscache/main.c +++ b/fs/fscache/main.c @@ -41,8 +41,6 @@ struct kobject *fscache_root; @@ -79,7 +79,7 @@ index 4207f98e405f..85f8cf3a323d 100644 if (ret < 0) goto error_proc; diff --git a/fs/fscache/object.c b/fs/fscache/object.c -index cb2146e02cd5..55158f30d093 100644 +index cb2146e02cd54..55158f30d0935 100644 --- a/fs/fscache/object.c +++ b/fs/fscache/object.c @@ -807,6 +807,8 @@ void fscache_object_destroy(struct fscache_object *object) @@ -125,5 +125,5 @@ index cb2146e02cd5..55158f30d093 100644 return fscache_object_congested(); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch b/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch index ca5c5cbd4..0ee8f77a8 100644 --- a/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch +++ b/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch @@ -1,8 +1,8 @@ -From 5fe656c51fcb73a09cf33665bcee0341edaf14c3 Mon Sep 17 00:00:00 2001 +From 9bf6dbd205a71b61785d2d7e5d5ca74183b5de13 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 2 Nov 2021 11:52:05 +0100 Subject: [PATCH 304/323] fscache: Use only one fscache_object_cong_wait. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is an update of the original patch, removing put_cpu_var() which was overseen in the initial patch. @@ -14,7 +14,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 2 deletions(-) diff --git a/fs/fscache/object.c b/fs/fscache/object.c -index 55158f30d093..fb9794dce721 100644 +index 55158f30d0935..fb9794dce721c 100644 --- a/fs/fscache/object.c +++ b/fs/fscache/object.c @@ -823,8 +823,6 @@ void fscache_enqueue_object(struct fscache_object *object) @@ -27,5 +27,5 @@ index 55158f30d093..fb9794dce721 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch b/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch index f424e077f..05603f7ab 100644 --- a/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch +++ b/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch @@ -1,9 +1,9 @@ -From 8eddd2dc82853a3df908061f6ddf71bde523917b Mon Sep 17 00:00:00 2001 +From c881df2fc1bc108783550d50d500909aeb6e3c79 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 6 Sep 2021 18:19:16 +0200 Subject: [PATCH 305/323] locking: Drop might_resched() from might_sleep_no_state_check() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz might_sleep_no_state_check() serves the same purpose as might_sleep() except it is used before sleeping locks are acquired and therefore does @@ -23,7 +23,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index 7b4fdd5b2f7b..4e88ae0b2578 100644 +index 7b4fdd5b2f7ba..4e88ae0b2578e 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -225,7 +225,7 @@ extern void __cant_migrate(const char *file, int line); @@ -36,5 +36,5 @@ index 7b4fdd5b2f7b..4e88ae0b2578 100644 /** * cant_sleep - annotation for functions that cannot sleep -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch b/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch index c7e1e5838..d1a9228ee 100644 --- a/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch +++ b/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch @@ -1,8 +1,8 @@ -From 45cb435eff7cd17311c87552c32c3a202b09bf51 Mon Sep 17 00:00:00 2001 +From b86c99ff5aafee64c17b20537abaae4196510e4d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Oct 2021 13:40:53 +0200 Subject: [PATCH 306/323] drm/i915/gt: Queue and wait for the irq_work item. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disabling interrupts and invoking the irq_work function directly breaks on PREEMPT_RT. @@ -28,7 +28,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c -index 0040b4765a54..3f4f854786f2 100644 +index 0040b4765a54d..3f4f854786f2b 100644 --- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c +++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c @@ -342,10 +342,9 @@ void intel_breadcrumbs_park(struct intel_breadcrumbs *b) @@ -45,5 +45,5 @@ index 0040b4765a54..3f4f854786f2 100644 GEM_BUG_ON(!list_empty(&b->signalers)); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch b/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch index 2c0ed1db3..07e80d758 100644 --- a/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch +++ b/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch @@ -1,9 +1,9 @@ -From cf4bb976aef7af85b7134aa7cffdfa8e058dc5c6 Mon Sep 17 00:00:00 2001 +From a906df425c7fd4b1e1b3e0c9112cc71b528db166 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 24 Nov 2021 17:12:19 +0100 Subject: [PATCH 307/323] irq_work: Allow irq_work_sync() to sleep if irq_work() no IRQ support. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_work() triggers instantly an interrupt if supported by the architecture. Otherwise the work will be processed on the next timer @@ -27,7 +27,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index f941f2d7d71c..3c6d3a96bca0 100644 +index f941f2d7d71ce..3c6d3a96bca0f 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -3,6 +3,7 @@ @@ -68,7 +68,7 @@ index f941f2d7d71c..3c6d3a96bca0 100644 bool irq_work_queue(struct irq_work *work); bool irq_work_queue_on(struct irq_work *work, int cpu); diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index 8183d30e1bb1..8969aff790e2 100644 +index 8183d30e1bb1c..8969aff790e21 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -165,6 +165,9 @@ void irq_work_single(void *arg) @@ -96,5 +96,5 @@ index 8183d30e1bb1..8969aff790e2 100644 while (atomic_read(&work->flags) & IRQ_WORK_BUSY) cpu_relax(); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch b/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch index a6aea41c0..d286c5578 100644 --- a/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch +++ b/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch @@ -1,9 +1,9 @@ -From 2b803272d74039863a77523d79f79cc938eff7cf Mon Sep 17 00:00:00 2001 +From ec1b643ed7842f97135ba1dab4d1709c44d22164 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 24 Nov 2021 17:12:20 +0100 Subject: [PATCH 308/323] irq_work: Handle some irq_work in a per-CPU thread on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The irq_work callback is invoked in hard IRQ context. By default all callbacks are scheduled for invocation right away (given supported by @@ -58,7 +58,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 3 files changed, 106 insertions(+), 43 deletions(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index 3c6d3a96bca0..f551ba9c99d4 100644 +index 3c6d3a96bca0f..f551ba9c99d40 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -40,6 +40,16 @@ void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) @@ -90,7 +90,7 @@ index 3c6d3a96bca0..f551ba9c99d4 100644 - #endif /* _LINUX_IRQ_WORK_H */ diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index 8969aff790e2..03d09d779ee1 100644 +index 8969aff790e21..03d09d779ee12 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -18,12 +18,37 @@ @@ -290,10 +290,10 @@ index 8969aff790e2..03d09d779ee1 100644 +} +early_initcall(irq_work_init_threads); diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 1cad0efd635c..a4fdc7cfb723 100644 +index 4ff559fed1e49..68246a8c31bc2 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1770,8 +1770,6 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) +@@ -1800,8 +1800,6 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) { struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); @@ -303,5 +303,5 @@ index 1cad0efd635c..a4fdc7cfb723 100644 if (IS_ENABLED(CONFIG_NO_HZ_COMMON)) __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch b/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch index ed320f6b7..f57d01edc 100644 --- a/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch +++ b/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch @@ -1,9 +1,9 @@ -From ca685c962ea2301291d3459ec8717208395b3cf9 Mon Sep 17 00:00:00 2001 +From 98e2aeb90b235d7ba3ff92a3aa508752f4d9daea Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 24 Nov 2021 17:12:21 +0100 Subject: [PATCH 309/323] irq_work: Also rcuwait for !IRQ_WORK_HARD_IRQ on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On PREEMPT_RT most items are processed as LAZY via softirq context. Avoid to spin-wait for them because irq_work_sync() could have higher @@ -21,7 +21,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index f551ba9c99d4..2c0059340871 100644 +index f551ba9c99d40..2c0059340871d 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -55,6 +55,11 @@ static inline bool irq_work_is_busy(struct irq_work *work) @@ -37,7 +37,7 @@ index f551ba9c99d4..2c0059340871 100644 bool irq_work_queue_on(struct irq_work *work, int cpu); diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index 03d09d779ee1..cbec10c32ead 100644 +index 03d09d779ee12..cbec10c32eade 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -211,7 +211,8 @@ void irq_work_single(void *arg) @@ -61,5 +61,5 @@ index 03d09d779ee1..cbec10c32ead 100644 TASK_UNINTERRUPTIBLE); return; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch b/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch index 719316f76..b83fec72f 100644 --- a/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch +++ b/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch @@ -1,8 +1,8 @@ -From 17c41196e72418f94cf308a8b23fe478612a1610 Mon Sep 17 00:00:00 2001 +From 563a8863b188e15be8027634bc3788c810e6ee74 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 17 Dec 2021 11:32:09 +0100 Subject: [PATCH 310/323] eventfd: Make signal recursion protection a task bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream commit b542e383d8c005f06a131e2b40d5889b812f19c6 @@ -40,10 +40,10 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/fs/aio.c b/fs/aio.c -index c90e045a37bc..e1181dc37be1 100644 +index 43315af1c83ac..7030157e99338 100644 --- a/fs/aio.c +++ b/fs/aio.c -@@ -1765,7 +1765,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, +@@ -1776,7 +1776,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, list_del_init(&req->wait.entry); list_del(&iocb->ki_list); iocb->ki_res.res = mangle_poll(mask); @@ -53,7 +53,7 @@ index c90e045a37bc..e1181dc37be1 100644 INIT_WORK(&req->work, aio_poll_put_work); schedule_work(&req->work); diff --git a/fs/eventfd.c b/fs/eventfd.c -index 3673eb8de035..ce9ca07d6c00 100644 +index 3673eb8de0356..ce9ca07d6c004 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -25,8 +25,6 @@ @@ -93,7 +93,7 @@ index 3673eb8de035..ce9ca07d6c00 100644 return n; diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h -index c1bd4883e2fa..842d223dfe17 100644 +index c1bd4883e2faf..842d223dfe175 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -14,6 +14,7 @@ @@ -131,7 +131,7 @@ index c1bd4883e2fa..842d223dfe17 100644 static inline void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt) diff --git a/include/linux/sched.h b/include/linux/sched.h -index a73528e8235d..13d4957189bb 100644 +index a73528e8235d4..13d4957189bb9 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -848,6 +848,10 @@ struct task_struct { @@ -146,5 +146,5 @@ index a73528e8235d..13d4957189bb 100644 unsigned long atomic_flags; /* Flags requiring atomic access. */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch b/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch index 653909e6e..a3f67e2a5 100644 --- a/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch +++ b/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch @@ -1,9 +1,9 @@ -From ce2910a453196930e7083aaf13240adcec160afd Mon Sep 17 00:00:00 2001 +From a5139972bb01a32f194dc711e88e864708280dee Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 17 Dec 2021 11:32:08 +0100 Subject: [PATCH 311/323] stop_machine: Remove this_cpu_ptr() from print_stop_info(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This aligns the patch ("stop_machine: Add function and caller debug info) with commit @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c -index dbf585cf4b9f..971d8acceaec 100644 +index dbf585cf4b9f8..971d8acceaecb 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -51,7 +51,11 @@ static bool stop_machine_initialized = false; @@ -34,5 +34,5 @@ index dbf585cf4b9f..971d8acceaec 100644 if (task != stopper->thread) return; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch b/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch index 978a2de7d..47686c026 100644 --- a/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch +++ b/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch @@ -1,8 +1,8 @@ -From fd840c98e310adf2a03ee242969a9597a909a672 Mon Sep 17 00:00:00 2001 +From 771eede6339e4ab3444babfcc66d93f4c38a78c3 Mon Sep 17 00:00:00 2001 From: Xie Yongji <xieyongji@bytedance.com> Date: Mon, 13 Sep 2021 19:19:28 +0800 Subject: [PATCH 312/323] aio: Fix incorrect usage of eventfd_signal_allowed() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 4b3749865374899e115aa8c48681709b086fe6d3 upstream. @@ -21,10 +21,10 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/aio.c b/fs/aio.c -index e1181dc37be1..e88fd9b58f3f 100644 +index 7030157e99338..0f02ea16305cf 100644 --- a/fs/aio.c +++ b/fs/aio.c -@@ -1765,7 +1765,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, +@@ -1776,7 +1776,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, list_del_init(&req->wait.entry); list_del(&iocb->ki_list); iocb->ki_res.res = mangle_poll(mask); @@ -34,5 +34,5 @@ index e1181dc37be1..e88fd9b58f3f 100644 INIT_WORK(&req->work, aio_poll_put_work); schedule_work(&req->work); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch b/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch index d688d1f6d..54fda8152 100644 --- a/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch +++ b/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch @@ -1,11 +1,11 @@ -From 38a85604759ae488654bab5c1cd9f23cd0d77ce0 Mon Sep 17 00:00:00 2001 +From 554210fc7bcb6faf80e463aae83760f5691d44cc Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> Date: Thu, 12 May 2022 23:25:33 -0300 Subject: [PATCH 313/323] rt: remove extra parameter from __trace_stack() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Fix the build error below while keeping the current PREEMPT_RT code: @@ -24,10 +24,10 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c -index 4bc90965abb2..75fef9fcfd0f 100644 +index e4340958da2df..7f25cc48bc503 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c -@@ -1224,7 +1224,7 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, +@@ -1226,7 +1226,7 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, if (file) { local_save_flags(flags); @@ -37,5 +37,5 @@ index 4bc90965abb2..75fef9fcfd0f 100644 trace_dump_stack(STACK_SKIP); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch b/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch index 4cb76be05..59e8496da 100644 --- a/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch +++ b/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch @@ -1,9 +1,9 @@ -From a02b1841d962977869e02fff684931b53c8d4232 Mon Sep 17 00:00:00 2001 +From dac7674ff6dc3d4f0dd595679422c19ba6348a8f Mon Sep 17 00:00:00 2001 From: Yajun Deng <yajun.deng@linux.dev> Date: Wed, 3 Aug 2022 14:24:30 +0800 Subject: [PATCH 314/323] locking/rtmutex: switch to EXPORT_SYMBOL() for ww_mutex_lock{,_interruptible}() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz We can use EXPORT_SYMBOL() instead of EXPORT_SYMBOL_GPL() in ww_mutex_lock_interruptible() and ww_mutex_lock(). That match @@ -17,7 +17,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 31b374d36d04..b110fc57f733 100644 +index 31b374d36d04b..b110fc57f7330 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -2513,7 +2513,7 @@ ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) @@ -39,5 +39,5 @@ index 31b374d36d04..b110fc57f733 100644 void __sched ww_mutex_unlock(struct ww_mutex *lock) { -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch b/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch index 9d6f96753..0b8506638 100644 --- a/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch +++ b/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch @@ -1,9 +1,9 @@ -From 54eb98b6f77e491259ac08a1172d36fd6ccf5284 Mon Sep 17 00:00:00 2001 +From 82849886322d7a35b19a0f9cbeaf6a3cc17efcdd Mon Sep 17 00:00:00 2001 From: Anand Je Saipureddy <s.anandje1@gmail.com> Date: Sat, 23 Jul 2022 12:19:43 +0530 Subject: [PATCH 315/323] ftrace: Fix improper usage of __trace_stack() function. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In kernel/trace/trace_events_trigger.c --> stacktrace_trigger() --> __trace_stack() is not defined as per the function definition. @@ -26,10 +26,10 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c -index 75fef9fcfd0f..3c6229f16e81 100644 +index 7f25cc48bc503..64abc66b82e5b 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c -@@ -1220,12 +1220,10 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, +@@ -1222,12 +1222,10 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, struct ring_buffer_event *event) { struct trace_event_file *file = data->private_data; @@ -46,5 +46,5 @@ index 75fef9fcfd0f..3c6229f16e81 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch b/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch index 38664d0ff..2ae3f4c91 100644 --- a/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch +++ b/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch @@ -1,8 +1,8 @@ -From 599ec4565144185541405febb71e81cf36cad908 Mon Sep 17 00:00:00 2001 +From 3741b49b04d3f06ee4d50d36c4f659a414189844 Mon Sep 17 00:00:00 2001 From: Salvatore Bonaccorso <carnil@debian.org> Date: Fri, 20 Jan 2023 19:23:03 +0100 Subject: [PATCH 316/323] rt: arm64: make _TIF_WORK_MASK bits contiguous -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz As same as in commit 870d16757ba8 ("arm64: make _TIF_WORK_MASK bits contiguous") in mainline, we need to make the bits of _TIF_WORK_MASK to @@ -30,7 +30,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h -index 6eb36a2126e8..2afd9ceb66c9 100644 +index 6eb36a2126e84..2afd9ceb66c96 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -70,12 +70,12 @@ void arch_release_task_struct(struct task_struct *tsk); @@ -53,5 +53,5 @@ index 6eb36a2126e8..2afd9ceb66c9 100644 #define TIF_FREEZE 19 #define TIF_RESTORE_SIGMASK 20 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch b/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch index a0942062a..fbad6b678 100644 --- a/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch +++ b/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch @@ -1,8 +1,8 @@ -From 7efd125170f344b124a00390d8d7b714beac1698 Mon Sep 17 00:00:00 2001 +From 27913b1edcba54aae3d70a249824ae5f2ebfae60 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Fri, 17 Feb 2023 09:53:44 +0106 Subject: [PATCH 317/323] printk: ignore consoles without write() callback -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The ttynull driver does not provide an implementation for the write() callback. This leads to a NULL pointer dereference in the related @@ -22,7 +22,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 6 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index d2205872304d..64747c72fbea 100644 +index ea7a14a485382..831f0b0ebef5b 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -2267,6 +2267,10 @@ static int printk_kthread_func(void *data) @@ -36,7 +36,7 @@ index d2205872304d..64747c72fbea 100644 con->thread = kthread_run(printk_kthread_func, con, "pr/%s%d", con->name, con->index); if (IS_ERR(con->thread)) { -@@ -3566,6 +3570,8 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) +@@ -3589,6 +3593,8 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) for_each_console(con) { if (!(con->flags & CON_ENABLED)) continue; @@ -46,5 +46,5 @@ index d2205872304d..64747c72fbea 100644 if (printk_seq < seq) diff += seq - printk_seq; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch b/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch index 21e81955f..125fcb031 100644 --- a/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch +++ b/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch @@ -1,9 +1,9 @@ -From de3bf8893c5067f2c4d7ef3c57144c134e30ad7f Mon Sep 17 00:00:00 2001 +From ffa037dafac1db6bbbb5ade07008226706aa63c9 Mon Sep 17 00:00:00 2001 From: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com> Date: Mon, 20 Mar 2023 09:03:47 +0100 Subject: [PATCH 318/323] kernel: fork: set wake_q_sleeper.next=NULL again in dup_task_struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Without this we get system hangs within a couple of days. It's also reproducible in minutes with "stress-ng --exec 20". @@ -45,7 +45,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 1 insertion(+) diff --git a/kernel/fork.c b/kernel/fork.c -index dfefb6e7e082..5dc7abedf08f 100644 +index dfefb6e7e082b..5dc7abedf08f0 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -960,6 +960,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -57,5 +57,5 @@ index dfefb6e7e082..5dc7abedf08f 100644 account_kernel_stack(tsk, 1); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch b/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch index 1872b2fc8..1129b9a28 100644 --- a/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch +++ b/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch @@ -1,9 +1,9 @@ -From 59fc9fa59a8a6eaa1456e7a3035b10152a9e6d94 Mon Sep 17 00:00:00 2001 +From 5e88068a06c4b48d12b30b00963c11e7d92139f8 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> Date: Thu, 8 Jun 2023 19:47:25 -0300 Subject: [PATCH 319/323] Revert "mm/page_alloc: fix potential deadlock on zonelist_update_seqseqlock" -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This reverts commit a992c387b41186ab968fd176ca26b432b05c53ec. @@ -24,10 +24,10 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 16 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index c5eb7d6844ae..39d1782b398f 100644 +index 16200cbddaf1c..8060c788f63fe 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6043,21 +6043,7 @@ static void __build_all_zonelists(void *data) +@@ -6045,21 +6045,7 @@ static void __build_all_zonelists(void *data) int nid; int __maybe_unused cpu; pg_data_t *self = data; @@ -49,7 +49,7 @@ index c5eb7d6844ae..39d1782b398f 100644 write_seqlock(&zonelist_update_seq); #ifdef CONFIG_NUMA -@@ -6092,8 +6078,6 @@ static void __build_all_zonelists(void *data) +@@ -6094,8 +6080,6 @@ static void __build_all_zonelists(void *data) } write_sequnlock(&zonelist_update_seq); @@ -59,5 +59,5 @@ index c5eb7d6844ae..39d1782b398f 100644 static noinline void __init -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch b/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch index b52e5aa42..b3ad29040 100644 --- a/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch +++ b/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch @@ -1,9 +1,9 @@ -From f59d43768ad6d22235cbc9ec14f6307867aefefe Mon Sep 17 00:00:00 2001 +From ab0bfdba117458d38d667c9923d15c0dc8304ddd Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> Date: Thu, 8 Jun 2023 19:47:25 -0300 Subject: [PATCH 320/323] Revert "printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h" -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This reverts commit 32232bcd4e5300e678718d5c29da4dfa07ade01e. @@ -21,7 +21,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 19 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 83c7734e9802..7e4352467d83 100644 +index 83c7734e98025..7e4352467d831 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -609,23 +609,4 @@ static inline void print_hex_dump_debug(const char *prefix_str, int prefix_type, @@ -49,5 +49,5 @@ index 83c7734e9802..7e4352467d83 100644 - #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch b/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch index 0c86c88b7..b8c5507e9 100644 --- a/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch +++ b/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch @@ -1,8 +1,8 @@ -From 2074b2bfdbed96348cbb99a1a3920fa7a9e4df46 Mon Sep 17 00:00:00 2001 +From 033069960d20f722a58c508473d67ec67dd661cc Mon Sep 17 00:00:00 2001 From: Wang Yong <wang.yong12@zte.com.cn> Date: Tue, 12 Sep 2023 15:14:28 +0800 Subject: [PATCH 321/323] arm64: signal: Use ARCH_RT_DELAYS_SIGNAL_SEND -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The ltp test prompts the following bug information under the 5.10 kernel: BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:969 @@ -48,7 +48,7 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> diff --git a/arch/arm64/include/asm/signal.h b/arch/arm64/include/asm/signal.h new file mode 100644 -index 000000000000..0fb418cf4c17 +index 0000000000000..0fb418cf4c17a --- /dev/null +++ b/arch/arm64/include/asm/signal.h @@ -0,0 +1,12 @@ @@ -65,7 +65,7 @@ index 000000000000..0fb418cf4c17 + +#endif diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c -index 94eed0dc3afc..5b08f55ec85d 100644 +index 94eed0dc3afcd..5b08f55ec85d9 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -929,6 +929,15 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, @@ -85,5 +85,5 @@ index 94eed0dc3afc..5b08f55ec85d 100644 uprobe_notify_resume(regs); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch b/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch index 8c13d7c63..77f83135e 100644 --- a/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch +++ b/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch @@ -1,9 +1,9 @@ -From dbe86f5017c79c8abb6f42a6f0f1ad8d97dbae46 Mon Sep 17 00:00:00 2001 +From ce15c4115c8fd7f07b57953d3735a5b938335234 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> Date: Wed, 20 Dec 2023 10:20:48 -0300 Subject: [PATCH 322/323] rt: mm/page_alloc: backport missing bits from __build_all_zonelists() fix -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A while ago upstream landed commit a2ebb51575828 ("mm/page_alloc: use write_seqlock_irqsave() instead write_seqlock() + local_irq_save().") @@ -21,10 +21,10 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 39d1782b398f..cd1e8d0b2269 100644 +index 8060c788f63fe..58d0ae602e68e 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6043,8 +6043,9 @@ static void __build_all_zonelists(void *data) +@@ -6045,8 +6045,9 @@ static void __build_all_zonelists(void *data) int nid; int __maybe_unused cpu; pg_data_t *self = data; @@ -35,7 +35,7 @@ index 39d1782b398f..cd1e8d0b2269 100644 #ifdef CONFIG_NUMA memset(node_load, 0, sizeof(node_load)); -@@ -6077,7 +6078,7 @@ static void __build_all_zonelists(void *data) +@@ -6079,7 +6080,7 @@ static void __build_all_zonelists(void *data) #endif } @@ -45,5 +45,5 @@ index 39d1782b398f..cd1e8d0b2269 100644 static noinline void __init -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch b/debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch index 3173940fe..f41d07328 100644 --- a/debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch +++ b/debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch @@ -1,8 +1,8 @@ -From 0a50987f60b76f392050410e35609fb4361dcca7 Mon Sep 17 00:00:00 2001 +From 63f2c3efdbda863fc01ba4fc18cd4daa4712faf4 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> -Date: Fri, 22 Dec 2023 17:30:57 -0300 -Subject: [PATCH 323/323] Linux 5.10.204-rt100 REBASE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Date: Thu, 18 Apr 2024 21:34:16 -0300 +Subject: [PATCH 323/323] Linux 5.10.215-rt107 REBASE +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> --- @@ -10,12 +10,12 @@ Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-rt b/localversion-rt -index 21988f9ad53f..79d3e2b9f550 100644 +index 21988f9ad53f1..2e0a3c9605753 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt34 -+-rt100 ++-rt107 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/series b/debian/patches-rt/series index 70c05ce6b..02d43c7eb 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -320,4 +320,4 @@ 0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch 0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch 0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch -0323-Linux-5.10.204-rt100-REBASE.patch +0323-Linux-5.10.215-rt107-REBASE.patch |