summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0150-irqtime-Make-accounting-correct-on-RT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0150-irqtime-Make-accounting-correct-on-RT.patch')
-rw-r--r--debian/patches-rt/0150-irqtime-Make-accounting-correct-on-RT.patch54
1 files changed, 0 insertions, 54 deletions
diff --git a/debian/patches-rt/0150-irqtime-Make-accounting-correct-on-RT.patch b/debian/patches-rt/0150-irqtime-Make-accounting-correct-on-RT.patch
deleted file mode 100644
index b30c1eecd..000000000
--- a/debian/patches-rt/0150-irqtime-Make-accounting-correct-on-RT.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 92e2527c99184eb5921d6256c160bbb1d52a22a9 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Tue, 9 Mar 2021 09:55:54 +0100
-Subject: [PATCH 150/296] irqtime: Make accounting correct on RT
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.35-rt39.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
-accounting which is seperate on RT.
-
-These checks do not need the full preempt count as they only operate on the
-hard and softirq sections.
-
-Use irq_count() instead which provides the correct value on both RT and non
-RT kernels. The compiler is clever enough to fold the masking for !RT:
-
- 99b: 65 8b 05 00 00 00 00 mov %gs:0x0(%rip),%eax
- - 9a2: 25 ff ff ff 7f and $0x7fffffff,%eax
- + 9a2: 25 00 ff ff 00 and $0xffff00,%eax
-
-Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- kernel/sched/cputime.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
-index 5f611658eeab..2c36a5fad589 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)
- cpu = smp_processor_id();
- delta = sched_clock_cpu(cpu) - irqtime->irq_start_time;
- irqtime->irq_start_time += delta;
-- pc = preempt_count() - offset;
-+ pc = irq_count() - offset;
-
- /*
- * We do not account for softirq time from ksoftirqd here.
-@@ -421,7 +421,7 @@ void vtime_task_switch(struct task_struct *prev)
-
- void vtime_account_irq(struct task_struct *tsk, unsigned int offset)
- {
-- unsigned int pc = preempt_count() - offset;
-+ unsigned int pc = irq_count() - offset;
-
- if (pc & HARDIRQ_OFFSET) {
- vtime_account_hardirq(tsk);
---
-2.30.2
-