Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU (v3)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Paul E. McKenney
Date: Thursday, April 16, 2009 - 6:28 pm

On Thu, Apr 16, 2009 at 04:49:55PM -0700, Paul E. McKenney wrote:

And here is a crude first cut.  Untested, probably does not even compile.

Straight conversion of Mathieu Desnoyers's user-space RCU implementation
at git://lttng.org/userspace-rcu.git to the kernel (and yes, I did help
a little, but he must bear the bulk of the guilt).  Pick on srcu.h
and srcu.c out of sheer laziness.  User-space testing gives deep
sub-microsecond grace-period latencies, so should be fast enough, at
least if you don't mind two smp_call_function() invocations per grace
period and spinning on each instance of a per-CPU variable.

Again, I believe per-CPU locking should work fine for the netfilter
counters, but I guess "friends don't let friends use hashed locks".
(I would not know for sure, never having used them myself, except of
course to protect hash tables.)

Most definitely -not- for inclusion at this point.  Next step is to hack
up the relevant rcutorture code and watch it explode on contact.  ;-)

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---

 include/linux/srcu.h |   30 ++++++++++++++++++++++++
 kernel/srcu.c        |   63 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+)

diff --git a/include/linux/srcu.h b/include/linux/srcu.h
index aca0eee..4577cd0 100644
--- a/include/linux/srcu.h
+++ b/include/linux/srcu.h
@@ -50,4 +50,34 @@ void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
 void synchronize_srcu(struct srcu_struct *sp);
 long srcu_batches_completed(struct srcu_struct *sp);
 
+/* Single bit for grace-period index, low-order bits are nesting counter. */
+#define RCU_FGP_COUNT		1UL
+#define RCU_FGP_PARITY		(1UL << (sizeof(long) << 2))
+#define RCU_FGP_NEST_MASK	(RCU_FGP_PARITY - 1)
+
+extern long rcu_fgp_ctr;
+DECLARE_PER_CPU(long, rcu_fgp_active_readers);
+
+static inline void rcu_read_lock_fgp(void)
+{
+	long tmp;
+	long *uarp;
+
+	preempt_disable();
+	uarp = &__get_cpu_var(rcu_fgp_active_readers);
+	tmp = *uarp;
+	if (likely(!(tmp & RCU_FGP_NEST_MASK)))
+		*uarp = rcu_fgp_ctr;  /* Outermost rcu_read_lock(). */
+	else
+		*uarp = tmp + RCU_FGP_COUNT;  /* Nested rcu_read_lock(). */
+	barrier();
+}
+
+static inline void rcu_read_unlock_fgp(void)
+{
+	barrier();
+	__get_cpu_var(rcu_fgp_active_readers)--;
+	preempt_enable();
+}
+
 #endif
diff --git a/kernel/srcu.c b/kernel/srcu.c
index b0aeeaf..a5dc464 100644
--- a/kernel/srcu.c
+++ b/kernel/srcu.c
@@ -255,3 +255,66 @@ EXPORT_SYMBOL_GPL(srcu_read_lock);
 EXPORT_SYMBOL_GPL(srcu_read_unlock);
 EXPORT_SYMBOL_GPL(synchronize_srcu);
 EXPORT_SYMBOL_GPL(srcu_batches_completed);
+
+DEFINE_MUTEX(rcu_fgp_mutex);
+long rcu_fgp_ctr = RCU_FGP_COUNT;
+DEFINE_PER_CPU(long, rcu_fgp_active_readers);
+
+/*
+ * Determine if the specified counter value indicates that we need to
+ * wait on the corresponding CPU to exit an rcu_fgp read-side critical
+ * section.  Return non-zero if so.
+ *
+ * Assumes that rcu_fgp_mutex is held, and thus that rcu_fgp_ctr is
+ * unchanging.
+ */
+static inline int rcu_old_fgp_ongoing(long *value)
+{
+	long v = ACCESS_ONCE(*value);
+
+	return (v & RCU_FGP_NEST_MASK) &&
+	       ((v ^ rcu_fgp_ctr) & RCU_FGP_PARITY);
+}
+
+static void rcu_fgp_wait_for_quiescent_state(void)
+{
+	int cpu;
+	long *uarp;
+
+	for_each_online_cpu(cpu) {
+		uarp = &per_cpu(rcu_fgp_active_readers, cpu);
+		while (rcu_old_fgp_ongoing(uarp))
+			cpu_relax();
+	}
+}
+
+static void rcu_fgp_do_mb(void *unused)
+{
+	smp_mb();  /* Each CPU does a memory barrier. */
+}
+
+void synchronize_rcu_fgp(void)
+{
+	mutex_lock(&rcu_fgp_mutex);
+	
+	/* CPUs must see earlier change before parity flip. */
+	smp_call_function(rcu_fgp_do_mb, NULL, 1);
+
+	/*
+	 * We must flip twice to correctly handle tasks that stall
+	 * in rcu_read_lock_fgp() between the time that they fetch
+	 * rcu_fgp_ctr and the time that the store to their CPU's
+	 * rcu_fgp_active_readers.  No matter when they resume
+	 * execution, we will wait for them to get to the corresponding
+	 * rcu_read_unlock_fgp().
+	 */
+	ACCESS_ONCE(rcu_fgp_ctr) ^= RCU_FGP_PARITY;  /* flip parity 0 -> 1 */
+	rcu_fgp_wait_for_quiescent_state();	     /* wait for old readers */
+	ACCESS_ONCE(rcu_fgp_ctr) ^= RCU_FGP_PARITY;  /* flip parity 1 -> 0 */
+	rcu_fgp_wait_for_quiescent_state();	     /* wait for old readers */
+
+	/* Prevent CPUs from reordering out of prior RCU critical sections. */
+	smp_call_function(rcu_fgp_do_mb, NULL, 1);
+
+	mutex_unlock(&rcu_fgp_mutex);
+}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: iptables very slow after commit 784544739a25c30637397a ..., Paul E. McKenney, (Fri Apr 10, 10:42 pm)
Re: iptables very slow after commit 784544739a25c30637397a ..., Stephen Hemminger, (Sat Apr 11, 8:05 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Stephen Hemminger, (Sat Apr 11, 8:07 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Stephen Hemminger, (Sat Apr 11, 8:50 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Paul E. McKenney, (Sat Apr 11, 10:43 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Paul E. McKenney, (Sat Apr 11, 10:48 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Arkadiusz Miskiewicz, (Sat Apr 11, 11:32 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Evgeniy Polyakov, (Sun Apr 12, 12:23 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Stephen Hemminger, (Sun Apr 12, 9:06 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Paul E. McKenney, (Sun Apr 12, 10:30 am)
Re: iptables very slow after commit 784544739a25c30637397a ..., Paul E. McKenney, (Sun Apr 12, 10:31 am)
[PATCH] netfilter: use per-cpu spinlock rather than RCU, Stephen Hemminger, (Mon Apr 13, 9:53 am)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Stephen Hemminger, (Mon Apr 13, 11:11 am)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Martin Josefsson, (Mon Apr 13, 12:06 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Linus Torvalds, (Mon Apr 13, 12:17 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Stephen Hemminger, (Mon Apr 13, 4:20 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Patrick McHardy, (Tue Apr 14, 5:27 am)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Stephen Hemminger, (Tue Apr 14, 7:45 am)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU, Stephen Hemminger, (Tue Apr 14, 10:19 am)
[PATCH] netfilter: use per-cpu spinlock rather than RCU (v2), Stephen Hemminger, (Tue Apr 14, 11:17 am)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Stephen Hemminger, (Tue Apr 14, 2:11 pm)
[PATCH] netfilter: use per-cpu spinlock rather than RCU (v3), Stephen Hemminger, (Tue Apr 14, 2:13 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Stephen Hemminger, (Wed Apr 15, 9:31 am)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Stephen Hemminger, (Wed Apr 15, 1:55 pm)
[PATCH] netfilter: use per-cpu rwlock rather than RCU (v4), Stephen Hemminger, (Wed Apr 15, 2:57 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Stephen Hemminger, (Wed Apr 15, 5:01 pm)
[PATCH] netfilter: use per-cpu spinlock and RCU (v5), Stephen Hemminger, (Wed Apr 15, 5:45 pm)
Re: [PATCH] netfilter: use per-cpu spinlock and RCU (v5), Eric Dumazet, (Wed Apr 15, 10:01 pm)
Re: [PATCH] netfilter: use per-cpu spinlock and RCU (v5), Patrick McHardy, (Thu Apr 16, 6:53 am)
Re: [PATCH] netfilter: use per-cpu spinlock and RCU (v5), Paul E. McKenney, (Thu Apr 16, 7:47 am)
[PATCH] netfilter: use per-cpu recursive spinlock (v6), Eric Dumazet, (Thu Apr 16, 9:10 am)
Re: [PATCH] netfilter: use per-cpu recursive spinlock (v6), Linus Torvalds, (Thu Apr 16, 9:37 am)
Re: [PATCH] netfilter: use per-cpu recursive spinlock (v6), Patrick McHardy, (Thu Apr 16, 9:59 am)
Re: [PATCH] netfilter: use per-cpu recursive spinlock (v6), Paul E. McKenney, (Thu Apr 16, 10:58 am)
[PATCH[] netfilter: use per-cpu reader-writer lock (v0.7), Stephen Hemminger, (Thu Apr 16, 1:49 pm)
[PATCH] netfilter: per-cpu spin-lock with recursion (v0.8), Stephen Hemminger, (Thu Apr 16, 4:52 pm)
Re: [PATCH] netfilter: use per-cpu recursive spinlock (v6), Paul E. McKenney, (Thu Apr 16, 5:13 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Paul E. McKenney, (Thu Apr 16, 6:28 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Mathieu Desnoyers, (Thu Apr 16, 7:19 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Stephen Hemminger, (Thu Apr 16, 9:50 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Paul E. McKenney, (Thu Apr 16, 10:05 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Paul E. McKenney, (Thu Apr 16, 10:08 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Paul E. McKenney, (Thu Apr 16, 10:40 pm)
Re: [PATCH] netfilter: use per-cpu spinlock rather than RC ..., Mathieu Desnoyers, (Thu Apr 16, 10:44 pm)
[PATCH] netfilter: use per-cpu recursive lock (v10), Stephen Hemminger, (Mon Apr 20, 10:34 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Paul E. McKenney, (Mon Apr 20, 11:21 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Eric Dumazet, (Mon Apr 20, 11:25 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Stephen Hemminger, (Mon Apr 20, 1:32 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Stephen Hemminger, (Mon Apr 20, 1:42 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Paul E. McKenney, (Mon Apr 20, 2:05 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Paul Mackerras, (Mon Apr 20, 2:23 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Paul E. McKenney, (Mon Apr 20, 2:58 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Paul Mackerras, (Mon Apr 20, 3:41 pm)
[PATCH] netfilter: use per-cpu recursive lock (v11), Stephen Hemminger, (Mon Apr 20, 4:01 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v10), Paul E. McKenney, (Mon Apr 20, 4:44 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Mon Apr 20, 8:41 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Eric Dumazet, (Mon Apr 20, 8:56 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Stephen Hemminger, (Mon Apr 20, 9:15 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Eric Dumazet, (Mon Apr 20, 9:59 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Mon Apr 20, 10:22 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Mon Apr 20, 10:34 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Stephen Hemminger, (Mon Apr 20, 10:45 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Mon Apr 20, 10:46 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Mon Apr 20, 11:52 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Evgeniy Polyakov, (Tue Apr 21, 1:16 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Tue Apr 21, 1:42 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), David Miller, (Tue Apr 21, 1:49 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Eric Dumazet, (Tue Apr 21, 1:55 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Evgeniy Polyakov, (Tue Apr 21, 2:22 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Lai Jiangshan, (Tue Apr 21, 2:34 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Linus Torvalds, (Tue Apr 21, 9:13 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Paul E. McKenney, (Tue Apr 21, 9:37 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Stephen Hemminger, (Tue Apr 21, 9:43 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Linus Torvalds, (Tue Apr 21, 9:50 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Ingo Molnar, (Tue Apr 21, 11:02 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Stephen Hemminger, (Tue Apr 21, 11:15 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Paul E. McKenney, (Tue Apr 21, 11:34 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Ingo Molnar, (Tue Apr 21, 12:10 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Ingo Molnar, (Tue Apr 21, 12:39 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Eric Dumazet, (Tue Apr 21, 12:46 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Linus Torvalds, (Tue Apr 21, 1:14 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Stephen Hemminger, (Tue Apr 21, 2:04 pm)
[PATCH] netfilter: use per-cpu recursive lock (v13), Stephen Hemminger, (Tue Apr 21, 2:39 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v13), Paul E. McKenney, (Tue Apr 21, 9:17 pm)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Ingo Molnar, (Wed Apr 22, 12:35 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Eric Dumazet, (Wed Apr 22, 1:53 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Jarek Poplawski, (Wed Apr 22, 3:13 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Jarek Poplawski, (Wed Apr 22, 4:39 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v13), Eric Dumazet, (Wed Apr 22, 7:57 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Linus Torvalds, (Wed Apr 22, 8:19 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v13), Linus Torvalds, (Wed Apr 22, 8:32 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Eric Dumazet, (Wed Apr 22, 9:57 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Linus Torvalds, (Wed Apr 22, 10:18 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Ingo Molnar, (Wed Apr 22, 10:48 am)
Re: [PATCH] netfilter: use per-cpu recursive lock (v11), Jarek Poplawski, (Wed Apr 22, 1:46 pm)
[PATCH] netfilter: use per-CPU recursive lock {XIV}, Stephen Hemminger, (Thu Apr 23, 9:09 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XIV}, Eric Dumazet, (Thu Apr 23, 9:58 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XIV}, Patrick McHardy, (Fri Apr 24, 8:33 am)
Re: [PATCH] netfilter: use per-CPU recursive lock {XIV}, Stephen Hemminger, (Fri Apr 24, 9:18 am)
Re: [PATCH] netfilter: use per-CPU recursive lock {XIV}, Jarek Poplawski, (Fri Apr 24, 1:43 pm)
[PATCH] netfilter: iptables no lockdep is needed.., Stephen Hemminger, (Sat Apr 25, 1:30 pm)
Re: [PATCH] netfilter: iptables no lockdep is needed.., Jarek Poplawski, (Sun Apr 26, 1:18 am)
[PATCH] netfilter: use per-CPU recursive lock {XV}, Eric Dumazet, (Sun Apr 26, 11:24 am)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Mathieu Desnoyers, (Sun Apr 26, 11:56 am)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Mathieu Desnoyers, (Sun Apr 26, 12:31 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Eric Dumazet, (Sun Apr 26, 1:55 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Mathieu Desnoyers, (Sun Apr 26, 2:39 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Stephen Hemminger, (Sun Apr 26, 2:57 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Mathieu Desnoyers, (Sun Apr 26, 3:32 pm)
Re: [PATCH] netfilter: use per-CPU recursive lock {XV}, Peter Zijlstra, (Mon Apr 27, 10:44 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Stephen Hemminger, (Mon Apr 27, 11:30 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Ingo Molnar, (Mon Apr 27, 11:54 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Stephen Hemminger, (Mon Apr 27, 12:06 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 12:46 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 12:48 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Evgeniy Polyakov, (Mon Apr 27, 1:36 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 1:58 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Stephen Hemminger, (Mon Apr 27, 2:40 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 3:24 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 4:01 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 4:03 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Mon Apr 27, 4:32 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Eric Dumazet, (Mon Apr 27, 11:58 pm)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Peter Zijlstra, (Tue Apr 28, 12:41 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Jan Engelhardt, (Tue Apr 28, 12:42 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, David Miller, (Tue Apr 28, 4:53 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Ingo Molnar, (Tue Apr 28, 5:40 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, David Miller, (Tue Apr 28, 6:43 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Mathieu Desnoyers, (Tue Apr 28, 6:52 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Paul E. McKenney, (Tue Apr 28, 7:22 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, David Miller, (Tue Apr 28, 7:37 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Mathieu Desnoyers, (Tue Apr 28, 7:49 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, David Miller, (Tue Apr 28, 8:00 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Linus Torvalds, (Tue Apr 28, 8:09 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Paul E. McKenney, (Tue Apr 28, 8:42 am)
[PATCH] netfilter: revised locking for x_tables, Stephen Hemminger, (Tue Apr 28, 9:24 am)
Re: [PATCH] netfilter: revised locking for x_tables, Linus Torvalds, (Tue Apr 28, 9:50 am)
Re: [PATCH] netfilter: revised locking for x_tables, Linus Torvalds, (Tue Apr 28, 9:55 am)
Re: [PATCH] netfilter: use per-CPU r**ursive lock {XV}, Christoph Lameter, (Tue Apr 28, 10:35 am)
Re: [PATCH] netfilter: revised locking for x_tables, David Miller, (Tue Apr 28, 10:37 pm)
Re: [PATCH] netfilter: revised locking for x_tables, Jeff Chua, (Wed Apr 29, 8:26 pm)
Re: [PATCH] netfilter: revised locking for x_tables, David Miller, (Wed Apr 29, 8:31 pm)
[PATCH] netfilter: use likely() in xt_info_rdlock_bh(), Eric Dumazet, (Fri May 1, 1:38 am)