* [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT
2012-10-31 0:29 [PATCH RT 0/4] [ANNOUNCE] 3.4.15-rt26-rc1 stable review Steven Rostedt
@ 2012-10-31 0:29 ` Steven Rostedt
0 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:29 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
[-- Attachment #1: 0002-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch --]
[-- Type: text/plain, Size: 727 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
---
init/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/init/Kconfig b/init/Kconfig
index c06208b..87afda5 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -474,7 +474,7 @@ config RCU_FANOUT_EXACT
config RCU_FAST_NO_HZ
bool "Accelerate last non-dyntick-idle CPU's grace periods"
- depends on NO_HZ && SMP
+ depends on NO_HZ && SMP && !PREEMPT_RT_FULL
default n
help
This option causes RCU to attempt to accelerate grace periods
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 0/4] [ANNOUNCE] 3.2.32-rt49-rc1 stable review
@ 2012-10-31 0:31 Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 1/4] hrtimer: Raise softirq if hrtimer irq stalled Steven Rostedt
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:31 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
Dear RT Folks,
This is the RT stable review cycle of patch 3.2.32-rt49-rc1.
Please scream at me if I messed something up. Please test the patches too.
The -rc release will be uploaded to kernel.org and will be deleted when
the final release is out. This is just a review release (or release candidate).
The pre-releases will not be pushed to the git repository, only the
final release is.
If all goes well, this patch will be converted to the next main release
on 11/2/2012.
Enjoy,
-- Steve
To build 3.2.32-rt49-rc1 directly, the following patches should be applied:
http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz
http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.32.xz
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.32-rt49-rc1.patch.xz
You can also build from 3.2.32-rt48 by applying the incremental patch:
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.32-rt48-rt49-rc1.patch.xz
Changes from 3.2.32-rt48:
---
Steven Rostedt (1):
Linux 3.2.32-rt49-rc1
Thomas Gleixner (2):
rcu: Disable RCU_FAST_NO_HZ on RT
net: netfilter: Serialize xt_write_recseq sections on RT
Watanabe (1):
hrtimer: Raise softirq if hrtimer irq stalled
----
include/linux/locallock.h | 4 ++++
include/linux/netfilter/x_tables.h | 7 +++++++
init/Kconfig | 2 +-
kernel/hrtimer.c | 9 ++++-----
localversion-rt | 2 +-
net/netfilter/core.c | 6 ++++++
6 files changed, 23 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RT 1/4] hrtimer: Raise softirq if hrtimer irq stalled
2012-10-31 0:31 [PATCH RT 0/4] [ANNOUNCE] 3.2.32-rt49-rc1 stable review Steven Rostedt
@ 2012-10-31 0:31 ` Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT Steven Rostedt
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:31 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
[-- Attachment #1: 0001-hrtimer-Raise-softirq-if-hrtimer-irq-stalled.patch --]
[-- Type: text/plain, Size: 893 bytes --]
From: Watanabe <shunsuke.watanabe@tel.com>
When the hrtimer stall detection hits the softirq is not raised.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
---
kernel/hrtimer.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index bca6928..9c09d02 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1527,11 +1527,7 @@ retry:
if (expires_next.tv64 == KTIME_MAX ||
!tick_program_event(expires_next, 0)) {
cpu_base->hang_detected = 0;
-
- if (raise)
- raise_softirq_irqoff(HRTIMER_SOFTIRQ);
-
- return;
+ goto out;
}
/*
@@ -1575,6 +1571,9 @@ retry:
tick_program_event(expires_next, 1);
printk_once(KERN_WARNING "hrtimer: interrupt took %llu ns\n",
ktime_to_ns(delta));
+out:
+ if (raise)
+ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
}
/*
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT
2012-10-31 0:31 [PATCH RT 0/4] [ANNOUNCE] 3.2.32-rt49-rc1 stable review Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 1/4] hrtimer: Raise softirq if hrtimer irq stalled Steven Rostedt
@ 2012-10-31 0:31 ` Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 3/4] net: netfilter: Serialize xt_write_recseq sections " Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 4/4] Linux 3.2.32-rt49-rc1 Steven Rostedt
3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:31 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
[-- Attachment #1: 0002-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch --]
[-- Type: text/plain, Size: 751 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
---
init/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/init/Kconfig b/init/Kconfig
index 720c182..aa6545f 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -469,7 +469,7 @@ config RCU_FANOUT_EXACT
config RCU_FAST_NO_HZ
bool "Accelerate last non-dyntick-idle CPU's grace periods"
- depends on TREE_RCU && NO_HZ && SMP
+ depends on TREE_RCU && NO_HZ && SMP && !PREEMPT_RT_FULL
default n
help
This option causes RCU to attempt to accelerate grace periods
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 3/4] net: netfilter: Serialize xt_write_recseq sections on RT
2012-10-31 0:31 [PATCH RT 0/4] [ANNOUNCE] 3.2.32-rt49-rc1 stable review Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 1/4] hrtimer: Raise softirq if hrtimer irq stalled Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT Steven Rostedt
@ 2012-10-31 0:31 ` Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 4/4] Linux 3.2.32-rt49-rc1 Steven Rostedt
3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:31 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, John Kacur, Peter LaDow
[-- Attachment #1: 0003-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch --]
[-- Type: text/plain, Size: 3058 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
The netfilter code relies only on the implicit semantics of
local_bh_disable() for serializing wt_write_recseq sections. RT breaks
that and needs explicit serialization here.
Reported-by: Peter LaDow <petela@gocougs.wsu.edu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
---
include/linux/locallock.h | 4 ++++
include/linux/netfilter/x_tables.h | 7 +++++++
net/netfilter/core.c | 6 ++++++
3 files changed, 17 insertions(+)
diff --git a/include/linux/locallock.h b/include/linux/locallock.h
index f1804a3..a5eea5d 100644
--- a/include/linux/locallock.h
+++ b/include/linux/locallock.h
@@ -25,6 +25,9 @@ struct local_irq_lock {
DEFINE_PER_CPU(struct local_irq_lock, lvar) = { \
.lock = __SPIN_LOCK_UNLOCKED((lvar).lock) }
+#define DECLARE_LOCAL_IRQ_LOCK(lvar) \
+ DECLARE_PER_CPU(struct local_irq_lock, lvar)
+
#define local_irq_lock_init(lvar) \
do { \
int __cpu; \
@@ -220,6 +223,7 @@ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
#else /* PREEMPT_RT_BASE */
#define DEFINE_LOCAL_IRQ_LOCK(lvar) __typeof__(const int) lvar
+#define DECLARE_LOCAL_IRQ_LOCK(lvar) extern __typeof__(const int) lvar
static inline void local_irq_lock_init(int lvar) { }
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index 32cddf7..bed90da2 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -186,6 +186,7 @@ struct xt_counters_info {
#ifdef __KERNEL__
#include <linux/netdevice.h>
+#include <linux/locallock.h>
/**
* struct xt_action_param - parameters for matches/targets
@@ -466,6 +467,8 @@ extern void xt_free_table_info(struct xt_table_info *info);
*/
DECLARE_PER_CPU(seqcount_t, xt_recseq);
+DECLARE_LOCAL_IRQ_LOCK(xt_write_lock);
+
/**
* xt_write_recseq_begin - start of a write section
*
@@ -480,6 +483,9 @@ static inline unsigned int xt_write_recseq_begin(void)
{
unsigned int addend;
+ /* RT protection */
+ local_lock(xt_write_lock);
+
/*
* Low order bit of sequence is set if we already
* called xt_write_recseq_begin().
@@ -510,6 +516,7 @@ static inline void xt_write_recseq_end(unsigned int addend)
/* this is kind of a write_seqcount_end(), but addend is 0 or 1 */
smp_wmb();
__this_cpu_add(xt_recseq.sequence, addend);
+ local_unlock(xt_write_lock);
}
/*
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index afca6c7..aa3f87b 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -20,11 +20,17 @@
#include <linux/proc_fs.h>
#include <linux/mutex.h>
#include <linux/slab.h>
+#include <linux/locallock.h>
#include <net/net_namespace.h>
#include <net/sock.h>
#include "nf_internals.h"
+#ifdef CONFIG_PREEMPT_RT_BASE
+DEFINE_LOCAL_IRQ_LOCK(xt_write_lock);
+EXPORT_PER_CPU_SYMBOL(xt_write_lock);
+#endif
+
static DEFINE_MUTEX(afinfo_mutex);
const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO] __read_mostly;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 4/4] Linux 3.2.32-rt49-rc1
2012-10-31 0:31 [PATCH RT 0/4] [ANNOUNCE] 3.2.32-rt49-rc1 stable review Steven Rostedt
` (2 preceding siblings ...)
2012-10-31 0:31 ` [PATCH RT 3/4] net: netfilter: Serialize xt_write_recseq sections " Steven Rostedt
@ 2012-10-31 0:31 ` Steven Rostedt
3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:31 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
[-- Attachment #1: 0004-Linux-3.2.32-rt49-rc1.patch --]
[-- Type: text/plain, Size: 287 bytes --]
From: Steven Rostedt <srostedt@redhat.com>
---
localversion-rt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/localversion-rt b/localversion-rt
index 2470798..623b4c9 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt48
+-rt49-rc1
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT
2012-10-31 0:32 [PATCH RT 0/4] [ANNOUNCE] 3.0.48-rt72-rc1 stable review Steven Rostedt
@ 2012-10-31 0:33 ` Steven Rostedt
0 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2012-10-31 0:33 UTC (permalink / raw)
To: linux-kernel, linux-rt-users; +Cc: Thomas Gleixner, Carsten Emde, John Kacur
[-- Attachment #1: 0002-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch --]
[-- Type: text/plain, Size: 751 bytes --]
From: Thomas Gleixner <tglx@linutronix.de>
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
---
init/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/init/Kconfig b/init/Kconfig
index 5ed453f..948350f 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -469,7 +469,7 @@ config RCU_FANOUT_EXACT
config RCU_FAST_NO_HZ
bool "Accelerate last non-dyntick-idle CPU's grace periods"
- depends on TREE_RCU && NO_HZ && SMP
+ depends on TREE_RCU && NO_HZ && SMP && !PREEMPT_RT_FULL
default n
help
This option causes RCU to attempt to accelerate grace periods
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-10-31 0:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-31 0:31 [PATCH RT 0/4] [ANNOUNCE] 3.2.32-rt49-rc1 stable review Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 1/4] hrtimer: Raise softirq if hrtimer irq stalled Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 3/4] net: netfilter: Serialize xt_write_recseq sections " Steven Rostedt
2012-10-31 0:31 ` [PATCH RT 4/4] Linux 3.2.32-rt49-rc1 Steven Rostedt
-- strict thread matches above, loose matches on Subject: below --
2012-10-31 0:32 [PATCH RT 0/4] [ANNOUNCE] 3.0.48-rt72-rc1 stable review Steven Rostedt
2012-10-31 0:33 ` [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT Steven Rostedt
2012-10-31 0:29 [PATCH RT 0/4] [ANNOUNCE] 3.4.15-rt26-rc1 stable review Steven Rostedt
2012-10-31 0:29 ` [PATCH RT 2/4] rcu: Disable RCU_FAST_NO_HZ on RT Steven Rostedt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.