Subject: Re: [oops] with FIB_TRIE

From: "Paul E. McKenney" <[email-masked]>
Date: Sat, 16 May 2009 14:24:48 -0700

On Thu, May 14, 2009 at 11:55:12PM +0200, Robert Olsson wrote:
> 
> Stephen Hemminger writes:
> 
>  > > I recompiled the kernel with FIB_TRIE and no preemption and it doesn't
>  > > oops anymore.
> 
>  Thanks, for testing Andrei. I've had routing tables continusly going up
>  and down for 24 hours (with no preemption) without any problem.
> 
>  > Maybe the rcu_read_lock needs to be rcu_read_lock_bh?
> 
>  Maybe,
>  Need to recap this... at least for myself insert, delete and flush is 
>  serialised wrt RTNL I guess this is still OK. We oops in lookup but 
>  we should have preempt_disable as we're in a RCU read section. Also we 
>  know quagga is constantly running delete...

RCU read-side critical sections are not preempt_disable() if you have
built with CONFIG_PREEMPT_RCU.

							Thanx, Paul