From: Eric Dumazet <eric.dumazet@gmail.com>
To: Octavian Purdila <opurdila@ixiacom.com>
Cc: paulmck@linux.vnet.ibm.com, Benjamin LaHaise <bcrl@lhnet.ca>,
netdev@vger.kernel.org, Cosmin Ratiu <cratiu@ixiacom.com>
Subject: Re: [PATCH] net: allow netdev_wait_allrefs() to run faster
Date: Sun, 25 Oct 2009 20:28:25 +0100 [thread overview]
Message-ID: <4AE4A6D9.5090307@gmail.com> (raw)
In-Reply-To: <200910251719.13748.opurdila@ixiacom.com>
Octavian Purdila a écrit :
> On Sunday 25 October 2009 10:35:10 you wrote:
>>> Got some time today and did some experiments myself. The test is deleting
>>> 1000 dummy interfaces (interface status down, no IP/IPv6 addresses
>>> assigned) on a UP non-preempt ppc750 @800Mhz system.
>>>
>>> 1. Ben's patch:
>>>
>>> real 0m 3.42s
>>> user 0m 0.00s
>>> sys 0m 0.00s
>>>
>>> 2. Eric's schedule_timeout_uninterruptible(1);
>>>
>>> real 0m 3.00s
>>> user 0m 0.00s
>>> sys 0m 0.00s
>>>
>>> 3. Simple synchronize_rcu_expedited()
>>>
>>> This doesn't seem to work well with the UP non-preempt case since
>>> synchronize_rcu_expedited() is a noop in this case - turning
>>> netdev_wait_allrefs() into a while(1) loop.
>> Thanks for these numbers. I presume HZ value is 1000 on this platform ?
>>
>
> Yes. I've attach the full config to this email as well.
>
>> Could you give us your scripts so that we can use same "benchmark" ?
>>
>
> Sure, I've attached the hack module code I've used.
>
> For creating interfaces: echo 1000 > /proc/sys/net/ndst/add
> For deleting interface echo start_ifindex stop_ifindex > /proc/sys/net/ndst/del
>
> Some more information:
>
> - on our old and optimized kernel I am getting 0.4s for creating 128000
> interfaces and 0.57s for deleting them
>
> - the 2.6.31 kernel I got the 3s numbers does have some patches to speed-up
> interface creating and deletion (removal of per device sysctl and dev_snmp6
> entries)
>
> I'll start posting the patches we have as RFC.
>
OK thanks, I thought you were using dummy module
$ time insmod drivers/net/dummy.ko numdummies=100
real 0m2.493s
user 0m0.001s
sys 0m0.021s
$ time rmmod dummy
real 0m1.610s
user 0m0.000s
sys 0m0.001s
$ time insmod drivers/net/dummy.ko numdummies=200
real 0m10.118s
user 0m0.000s
sys 0m0.015s
$ time rmmod dummy
real 0m3.218s
user 0m0.000s
sys 0m0.001s
$ time insmod drivers/net/dummy.ko numdummies=300
real 0m22.564s
user 0m0.000s
sys 0m0.034s
$ time rmmod dummy
real 0m4.755s
user 0m0.000s
sys 0m0.006s
$ perf record -f insmod drivers/net/dummy.ko numdummies=300
$ perf report
# Samples: 898
#
# Overhead Command Shared Object Symbol
# ........ ....... ...................... ......
#
41.65% insmod [kernel] [k] __register_sysctl_paths
22.83% insmod [kernel] [k] strcmp
5.46% insmod [kernel] [k] pcpu_alloc
2.23% insmod [kernel] [k] sysfs_find_dirent
1.56% insmod [kernel] [k] __sysfs_add_one
1.11% insmod [kernel] [k] pcpu_alloc_area
1.11% insmod [kernel] [k] _spin_lock
1.00% insmod [kernel] [k] kmemdup
1.00% insmod [kernel] [k] kmem_cache_alloc
0.67% insmod [kernel] [k] find_symbol_in_section
0.67% insmod [kernel] [k] find_next_zero_bit
0.67% insmod [kernel] [k] idr_get_empty_slot
0.67% insmod [kernel] [k] mutex_lock
0.67% insmod [kernel] [k] mutex_unlock
0.56% insmod [kernel] [k] vunmap_page_range
0.56% insmod [kernel] [k] __slab_alloc
next prev parent reply other threads:[~2009-10-25 19:28 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-17 22:18 [PATCH/RFC] make unregister_netdev() delete more than 4 interfaces per second Benjamin LaHaise
2009-10-18 4:26 ` Eric Dumazet
2009-10-18 16:13 ` Benjamin LaHaise
2009-10-18 17:51 ` Eric Dumazet
2009-10-18 18:21 ` Benjamin LaHaise
2009-10-18 19:36 ` Eric Dumazet
2009-10-21 12:39 ` Octavian Purdila
2009-10-21 15:40 ` [PATCH] net: allow netdev_wait_allrefs() to run faster Eric Dumazet
2009-10-21 16:09 ` Eric Dumazet
2009-10-21 16:51 ` Benjamin LaHaise
2009-10-21 19:54 ` Eric Dumazet
2009-10-29 23:07 ` Eric W. Biederman
2009-10-29 23:38 ` Benjamin LaHaise
2009-10-30 1:45 ` Eric W. Biederman
2009-10-30 14:35 ` Benjamin LaHaise
2009-10-30 14:43 ` Eric Dumazet
2009-10-30 23:25 ` Eric W. Biederman
2009-10-30 23:53 ` Benjamin LaHaise
2009-10-31 0:37 ` Eric W. Biederman
2010-08-09 17:23 ` Ben Greear
2010-08-09 17:34 ` Benjamin LaHaise
2010-08-09 17:44 ` Ben Greear
2010-08-09 17:48 ` Benjamin LaHaise
2010-08-09 18:03 ` Ben Greear
2010-08-09 19:59 ` Eric W. Biederman
2010-08-09 21:03 ` Benjamin LaHaise
2010-08-09 21:17 ` Eric W. Biederman
2009-10-21 16:55 ` Octavian Purdila
2009-10-23 21:13 ` Paul E. McKenney
2009-10-24 4:35 ` Eric Dumazet
2009-10-24 5:49 ` Paul E. McKenney
2009-10-24 8:49 ` Eric Dumazet
2009-10-24 13:52 ` Paul E. McKenney
2009-10-24 14:24 ` Eric Dumazet
2009-10-24 14:46 ` Paul E. McKenney
2009-10-24 23:49 ` Octavian Purdila
2009-10-25 4:47 ` Paul E. McKenney
2009-10-25 8:35 ` Eric Dumazet
2009-10-25 15:19 ` Octavian Purdila
2009-10-25 19:28 ` Eric Dumazet [this message]
2009-10-24 20:22 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AE4A6D9.5090307@gmail.com \
--to=eric.dumazet@gmail.com \
--cc=bcrl@lhnet.ca \
--cc=cratiu@ixiacom.com \
--cc=netdev@vger.kernel.org \
--cc=opurdila@ixiacom.com \
--cc=paulmck@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).