Subject: Re: [PATCH] net: allow netdev_wait_allrefs() to run faster

From: Eric Dumazet <[email-masked]>
Date: Sat, 24 Oct 2009 16:24:27 +0200

Paul E. McKenney a écrit :
> On Sat, Oct 24, 2009 at 10:49:55AM +0200, Eric Dumazet wrote:
>>
>> On my dev machine, a synchronize_rcu() lasts between 2 an 12 ms
> 
> That sounds like the right range, depending on what else is happening
> on the machine at the time.
> 
> The synchronize_rcu_expedited() primitive would run in the 10s-100s
> of microseconds.  It involves a pair of wakeups and a pair of context
> switches on each CPU.
> 

Hmm... I'll make some experiments Monday and post results, but it seems very
promising.

Do you think the "on_each_cpu(flush_backlog, dev, 1);"
we perform right before calling netdev_wait_allrefs() could be changed
somehow to speedup rcu callbacks ? Maybe we ould avoid sending IPI twice to
cpus ?

Thanks