Subject: Re: Scalability of interface creation and deletion

From: "Paul E. McKenney" <[email-masked]>
Date: Sun, 8 May 2011 05:32:42 -0700

On Sun, May 08, 2011 at 09:12:22AM +0200, Eric Dumazet wrote:
> Le samedi 07 mai 2011 à 20:42 +0200, Eric Dumazet a écrit :
> > Here is my trace here for one device deletion on one 8 core machine
> > 
> > [  800.447012] synchronize_rcu() in 15787 us
> > [  800.455013] synchronize_rcu() in 7682 us
> > [  800.464019] rcu_barrier() in 8487 us
> > 
> > Not that bad.

There is always synchronize_rcu_expedited() if you need lower latency
and can tolerate a bit higher CPU overhead.

							Thanx, Paul

> > $ grep RCU .config
> > # RCU Subsystem
> > CONFIG_TREE_RCU=y
> > # CONFIG_PREEMPT_RCU is not set
> > CONFIG_RCU_TRACE=y
> > CONFIG_RCU_FANOUT=32
> > # CONFIG_RCU_FANOUT_EXACT is not set
> > # CONFIG_RCU_FAST_NO_HZ is not set
> > CONFIG_TREE_RCU_TRACE=y
> > 
> 
> By the way, if I change HZ from 1000 to 100 I now have ten times slower
> result :
> 
> # ip link add link eth0 eth0.103 type vlan id 103
> # time ip link del eth0.103
> 
> real	0m0.430s
> user	0m0.000s
> sys	0m0.000s
> 
> So all this is related to your HZ value, even in a CONFIG_NO_HZ=y
> kernel. Alex, I guess you have HZ=250 ?
> 
> # uname -a
> Linux svivoipvnx021 2.6.39-rc6-00214-g5511a34-dirty #574 SMP Sun May 8
> 08:44:14 CEST 2011 x86_64 x86_64 x86_64 GNU/Linux
> # cat /proc/cmdline
> 
> I enabled CONFIG_RCU_FAST_NO_HZ and got worse results (but not
> alsways... its very variable)
> 
> # time ip link del eth0.103
> 
> real	0m0.544s
> user	0m0.000s
> sys	0m0.000s
> 
> 
> # time ip link del eth0.103
> 
> real	0m0.414s
> user	0m0.000s
> sys	0m0.000s
> 
>