Subject: Re: [oops] with FIB_TRIE

From: Stephen Hemminger <[email-masked]>
Date: Thu, 14 May 2009 13:00:35 -0700

On Thu, 14 May 2009 14:54:58 +0300
Andrei Popa <[email-masked]> wrote:

> 
> Hello,
> 
> I recompiled the kernel with FIB_TRIE and no preemption and it doesn't
> oops anymore.
> 
> On Tue, 2009-05-12 at 17:15 +0200, Robert Olsson wrote:
> > Andrei Popa writes:
> > 
> >  > I've used an vanilla 2.6.28.7 kernel without any additional patches with
> >  > the following .config and when I do in quagga a "clear ip bgp * soft"
> >  > when I have three full BGP sessions the kernel it oopses.
> >  > 
> >  > With FIB lookup algorithm FIB_TRIE it oopeses. With FIB_HASH it doesn't.
> >  > 
> >  > Pictures with the oops:
> >  > http://89.33.136.9/oops/
> > 
> >  > The config file:
> >  > CONFIG_PREEMPT=y
> > 
> >  Hello,
> > 
> >  Getting somewhat worried as we use this for infrastructure since many years. 
> >  I've set up test and is trying to reproduce it. 
> >  
> >  I'm running forwarding ~9.4 Gigabit/s @ 1.2 pkts sec and fib_lookups 40-200.000
> >  lookups per sec. Routing table has 280.000 entries this is loaded/unloaded 
> >  via ip route with -batch to give load for insert/delete.
> > 
> >  A script is continuesly adding/removing the routing table under this load. 
> >  The time to install the full table is ~10 sec and same time to remove
> >  (without netfilter ~5 sec) And this during this constant traffic load.
> > 
> >  The scripts and routing tables:
> >  ftp://robur.slu.se/pub/Linux/net-development/trie-test/
> > 
> >  Drivers are niu, ixgbe Netfilter modules loaded but no filters. Kernel 
> >  2.6.29-r2. 
> > 
> >  No problems seen for 3 hours but I'll let this run overnight
> > 
> >  One difference to your config I see is PREEMPT. We use use 
> >  CONFIG_PREEMPT_NONE=y with the router/servers.
> > 
> > 
> >  Cheers
> > 					--ro
> > 

Maybe the rcu_read_lock needs to be rcu_read_lock_bh?

--