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

From: Peter Zijlstra
Date: Fri Apr 17 2009 - 13:23:47 EST


On Fri, 2009-04-17 at 01:07 -0700, David Miller wrote:
> From: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
> 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.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/