[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4ADF670F.1010200@gmail.com>
Date: Wed, 21 Oct 2009 21:54:55 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Benjamin LaHaise <bcrl@...et.ca>
CC: Octavian Purdila <opurdila@...acom.com>, netdev@...r.kernel.org,
Cosmin Ratiu <cratiu@...acom.com>
Subject: Re: [PATCH] net: allow netdev_wait_allrefs() to run faster
Benjamin LaHaise a écrit :
> On Wed, Oct 21, 2009 at 05:40:07PM +0200, Eric Dumazet wrote:
>> Ben patch only address interface deletion, and one part of the problem,
>> maybe the more visible one for the current kernel.
>
> The first part I've been tackling has been the overhead in procfs, sysctl
> and sysfs. I've got patches for some of the issues, hacks for others, and
> should have something to post in a few days. Getting rid of those overheads
> is enough to get to decent interface creation times for the first 20 or 30k
> interfaces.
>
> On the interface deletion side of things, within the network code, fib_hash
> has a few linear scans that really start hurting. trie is a bit better,
> but I haven't started digging too deeply into its flush/remove overhead yet,
> aside from noticing that trie has a linear scan if
> CONFIG_IP_ROUTE_MULTIPATH is set since it sets the hash size to 1.
> fn_trie_flush() is currently the worst offender during deletion.
Well, there are many things to change...
# ip -o link | wc -l
13097
# time ip -o link show mv22248
13045: mv22248@...3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN \ link/ether 00:1e:0b:8e:c8:08 brd ff:ff:ff:ff:ff:ff
real 0m0.840s
user 0m0.473s
sys 0m0.368s
almost one second to get link status of one particular interface :(
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists