Messages in this thread | | | Date | Thu, 16 Apr 2009 16:49:55 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH] netfilter: use per-cpu spinlock rather than RCU (v3) |
| |
On Thu, Apr 16, 2009 at 03:33:54PM -0700, David Miller wrote: > From: Patrick McHardy <kaber@trash.net> > Date: Thu, 16 Apr 2009 15:11:31 +0200 > > > Linus Torvalds wrote: > >> On Wed, 15 Apr 2009, Stephen Hemminger wrote: > >>> The counters are the bigger problem, otherwise we could just free > >>> table > >>> info via rcu. Do we really have to support: replace where the counter > >>> values coming out to user space are always exactly accurate, or is it > >>> allowed to replace a rule and maybe lose some counter ticks (worst > >>> case > >>> NCPU-1). > >> Why not just read the counters fromt he old one at RCU free time (they > >> are guaranteed to be stable at that point, since we're all done with > >> those entries), and apply them at that point to the current setup? > > > > We need the counters immediately to copy them to userspace, so waiting > > for an asynchronous RCU free is not going to work. > > It just occurred to me that since all netfilter packet handling > goes through one place, we could have a sort-of "netfilter RCU" > of sorts to solve this problem.
OK, I am putting one together...
It will be needed sooner or later, though I suspect per-CPU locking would work fine in this case.
Thanx, Paul
| |