Thread (41 messages) 41 messages, 8 authors, 2010-08-09

Re: [PATCH] net: allow netdev_wait_allrefs() to run faster

From: Ben Greear <hidden>
Date: 2010-08-09 17:44:17

On 08/09/2010 10:34 AM, Benjamin LaHaise wrote:
Hello Ben,

On Mon, Aug 09, 2010 at 10:23:37AM -0700, Ben Greear wrote:
quoted
I was just comparing my out-of-tree patch set to .35, and it appears
little or none of the patches discussed in this thread are in the
upstream kernel yet.
I was waiting on Eric's sysfs changes for namespaces to settle down, but
ended up getting busy on other things.  I guess now is a good time to pick
this back up and try to merge my changes for improving interface scaling.
I'll send out a new version of the patches sometime in the next couple of
days.  I'm also about to make a new Babylon release as well, I just need
to write some more documentation. :-/

Btw, one thing I noticed but haven't been able to come up with a fix for
yet is that iptables has scaling issues with lots of interfaces.
Specifically, we had to start adding one iptables rule per interface for smtp
filtering (not all subscribers are permitted to send smtp directly out to
the net, so it has to be per-interface).  It seems that those all get
dumped into a giant list.  What I'd like to do is to be able to attach rules
directly to the interface, but I haven't really had the time to do a mergable
set of changes for that.  Thoughts anyone?
We also have a few rules per interface, and notice that it takes around 10ms
per rule when we are removing them, even when using batching in 'ip':

This is on a high-end core i7, otherwise lightly loaded.

Total IPv4 rule listings: 2097
Cleaning 2094 rules with ip -batch...
time -p ip -4 -force -batch /tmp/crr_batch_cmds_4.txt
real 17.81
user 0.05
sys 0.00


Patrick thought had an idea, but I don't think he had time to
look at it further:

"Its probably the synchronize_rcu() in fib_nl_delrule() and
the route flushing happening after rule removal."


Thanks,
Ben

-- 
Ben Greear [off-list ref]
Candela Technologies Inc  http://www.candelatech.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help