[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1304796297.3207.35.camel@edumazet-laptop>
Date: Sat, 07 May 2011 21:24:57 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Alex Bligh <alex@...x.org.uk>
Cc: netdev@...r.kernel.org
Subject: Re: Scalability of interface creation and deletion
Le samedi 07 mai 2011 à 19:51 +0100, Alex Bligh a écrit :
>
> --On 7 May 2011 20:32:54 +0200 Eric Dumazet <eric.dumazet@...il.com> wrote:
>
> > 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().
>
> > 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.
--
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