netdev
[Top] [All Lists]

Re: Route cache performance

To: Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx>
Subject: Re: Route cache performance
From: Robert Olsson <Robert.Olsson@xxxxxxxxxxx>
Date: Fri, 26 Aug 2005 21:49:11 +0200
Cc: Simon Kirby <sim@xxxxxxxxxxxxx>, Robert Olsson <Robert.Olsson@xxxxxxxxxxx>, Eric Dumazet <dada1@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <20050826115520.GA12351@xxxxxxxxxxxxxxx>
References: <20050815213855.GA17832@xxxxxxxxxxxxx> <43014E27.1070104@xxxxxxxxxxxxx> <20050823190852.GA20794@xxxxxxxxxxxxx> <17163.32645.202453.145416@xxxxxxxxxxxx> <20050824000158.GA8137@xxxxxxxxxxxxx> <20050825181111.GB14336@xxxxxxxxxxxxx> <20050825200543.GA6612@xxxxxxxxxxxxxxx> <20050825212211.GA23384@xxxxxxxxxxxxx> <20050826115520.GA12351@xxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
Hello!

This thread seems familar :)

I think Simon uses UP and it could be idea to check if the RCU deferred 
deletion causes the problem. 

Simon it would be interesting to see if the patch below makes any 
difference given the assumption about UP was correct,

Cheers.
                                        --ro


diff --git a/net/ipv4/route.c b/net/ipv4/route.c
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -485,7 +485,11 @@ static struct file_operations rt_cpu_seq
 static __inline__ void rt_free(struct rtable *rt)
 {
        multipath_remove(rt);
+#ifdef CONFIG_SMP
        call_rcu_bh(&rt->u.dst.rcu_head, dst_rcu_free);
+#else
+       dst_free((struct dst_entry *)rt);
+#endif
 }
 
 static __inline__ void rt_drop(struct rtable *rt)

<Prev in Thread] Current Thread [Next in Thread>