Thread (53 messages) 53 messages, 8 authors, 2011-05-10

Re: Scalability of interface creation and deletion

flat view

From: Eric Dumazet <hidden>
Date: 2011-05-07 19:25:02

Le samedi 07 mai 2011 à 19:51 +0100, Alex Bligh a écrit :
--On 7 May 2011 20:32:54 +0200 Eric Dumazet [off-list ref] wrote:
quoted
Well, there is also one rcu_barrier() call that is expensive.
(It was changed from one synchronize_rcu() to one rcu_barrier() lately
in commit ef885afb , in 2.6.36 kernel)
I think you are saying it may be waiting in rcu_barrier(). I'll
instrument that later plus synchronize_sched().
quoted
http://git2.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commi
tdiff;h=ef885afbf8a37689afc1d9d545e2f3e7a8276c17
OK, so in head, which I am using, rollback_registered_many which
previously had 2 calls to synchronize_net(), now has one, followed
by a call to rc_barrier() at the bottom.
each device dismantle needs 2 synchronize_rcu() and one rcu_barrier()

Right, that's what I patched before (see patch attached to
message from earlier today) to do an exponential backoff (see
previous entry), i.e. do a 5ms sleep, then a 10ms, then a 20ms, but
never more than 250ms. It made no difference.
Oh well. How many time are you going to tell us about this ?

We suggested to wait no more than 1 ms, or even shout asap.

If after synchronize_rcu() and rcu_barrier() calls, they are still
references to the device, then there is a BUG somewhere.

Since these bugs are usually not fatal, we just wait a bit.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help