summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2016-12-26 12:45:53 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2016-12-26 12:45:53 -0500
commit5441de10b10d1b9c270970f7c279ca1857de5063 (patch)
tree33f8b43275c8868f4e740e9c43d43665b87fd48c
parent7e2081928f9cbc99a1d71dd9e3398cb0e2a8fe11 (diff)
download4.9-rt-patches-5441de10b10d1b9c270970f7c279ca1857de5063.tar.gz
Revert "softirq-split: temporary "un-refresh" ; trivial ctxt change"rt-v4.9-rc7rt-v4.9-rc6rt-v4.9-rc5rt-v4.9-rc4rt-v4.9-rc3
This reverts commit 7edf5bac7d57a8440e7df5510b2ae4f827bf5b87.
-rw-r--r--patches/softirq-split-timer-softirqs-out-of-ksoftirqd.patch22
1 files changed, 8 insertions, 14 deletions
diff --git a/patches/softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/patches/softirq-split-timer-softirqs-out-of-ksoftirqd.patch
index b41ffc487eaa3..8428868af09ff 100644
--- a/patches/softirq-split-timer-softirqs-out-of-ksoftirqd.patch
+++ b/patches/softirq-split-timer-softirqs-out-of-ksoftirqd.patch
@@ -1,7 +1,6 @@
-From b565588df8ed7f2412e6f46dca6182899008b1d7 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 20 Jan 2016 16:34:17 +0100
-Subject: [PATCH] softirq: split timer softirqs out of ksoftirqd
+Subject: softirq: split timer softirqs out of ksoftirqd
The softirqd runs in -RT with SCHED_FIFO (prio 1) and deals mostly with
timer wakeup which can not happen in hardirq context. The prio has been
@@ -23,11 +22,9 @@ SCHED_OTHER priority and it won't defer RCU anymore.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
- kernel/softirq.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++--------
+ kernel/softirq.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 73 insertions(+), 12 deletions(-)
-diff --git a/kernel/softirq.c b/kernel/softirq.c
-index 6f24da3d09e3..6a5b9fb888b2 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -58,6 +58,10 @@ EXPORT_SYMBOL(irq_stat);
@@ -40,7 +37,7 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
+#endif
const char * const softirq_to_name[NR_SOFTIRQS] = {
- "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "BLOCK_IOPOLL",
+ "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "IRQ_POLL",
@@ -171,6 +175,17 @@ static void wakeup_softirqd(void)
wake_up_process(tsk);
}
@@ -59,7 +56,7 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
static void handle_softirq(unsigned int vec_nr)
{
struct softirq_action *h = softirq_vec + vec_nr;
-@@ -484,7 +499,6 @@ void __raise_softirq_irqoff(unsigned int nr)
+@@ -484,7 +499,6 @@ void __raise_softirq_irqoff(unsigned int
static inline void local_bh_disable_nort(void) { local_bh_disable(); }
static inline void _local_bh_enable_nort(void) { _local_bh_enable(); }
static void ksoftirqd_set_sched_params(unsigned int cpu) { }
@@ -81,7 +78,7 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
/*
* If we are not in a hard interrupt and inside a bh disabled
-@@ -641,16 +659,29 @@ static void do_raise_softirq_irqoff(unsigned int nr)
+@@ -641,16 +659,29 @@ static void do_raise_softirq_irqoff(unsi
* delegate it to ksoftirqd.
*/
if (!in_irq() && current->softirq_nestcnt)
@@ -115,7 +112,7 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
}
/*
-@@ -676,7 +707,7 @@ void raise_softirq_irqoff(unsigned int nr)
+@@ -676,7 +707,7 @@ void raise_softirq_irqoff(unsigned int n
* raise a WARN() if the condition is met.
*/
if (!current->softirq_nestcnt)
@@ -124,7 +121,7 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
}
static inline int ksoftirqd_softirq_pending(void)
-@@ -689,22 +720,37 @@ static inline void _local_bh_enable_nort(void) { }
+@@ -689,22 +720,37 @@ static inline void _local_bh_enable_nort
static inline void ksoftirqd_set_sched_params(unsigned int cpu)
{
@@ -175,7 +172,7 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
local_irq_restore(flags);
#endif
}
-@@ -1176,18 +1225,30 @@ static int takeover_tasklets(unsigned int cpu)
+@@ -1176,18 +1225,30 @@ static int takeover_tasklets(unsigned in
static struct smp_hotplug_thread softirq_threads = {
.store = &ksoftirqd,
.setup = ksoftirqd_set_sched_params,
@@ -208,6 +205,3 @@ index 6f24da3d09e3..6a5b9fb888b2 100644
return 0;
}
early_initcall(spawn_ksoftirqd);
---
-2.10.1
-