[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200910251719.13748.opurdila@ixiacom.com>
Date: Sun, 25 Oct 2009 17:19:13 +0200
From: Octavian Purdila <opurdila@...acom.com>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: paulmck@...ux.vnet.ibm.com, Benjamin LaHaise <bcrl@...et.ca>,
netdev@...r.kernel.org, Cosmin Ratiu <cratiu@...acom.com>
Subject: Re: [PATCH] net: allow netdev_wait_allrefs() to run faster
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.
Thanks,
tavi
View attachment "ndst.c" of type "text/x-csrc" (4494 bytes)
View attachment ".config" of type "text/plain" (22179 bytes)
Powered by blists - more mailing lists