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

Peter Zijlstra
2009-04-17T17:23:46Z

On Fri, 2009-04-17 at 01:07 -0700, David Miller wrote:
> From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
> Date: Thu, 16 Apr 2009 22:40:32 -0700
>
> > I completely agree that this RCU is absolutely -not- 2.6.30 material. ;-)
>
> I don't understand why we're writing such complicated code.
>
> Oh I see why, it's because not every arch uses the generic SMP helpers
> yet :-)
>
> Because if they did universally, we could solve this problem so
> simply, by merely sending a remote softirq to every online cpu. Once
> those all complete we have enough of a quiesce period, every cpu must
> have exited any netfilter packet processing code path they were in.
>
> And we could know they complete using an atomic counter or something.

Since its a full broadcast, we can do that _today_ using on_each_cpu().
But whatever way we turn this, this will be a very expensive operation.
Imagine doing that on your 256-way for every iptables rules change.