Re: [patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-01

Paul E. McKenney
2005-03-22T05:45:30Z

On Tue, Mar 22, 2005 at 12:10:14AM +0100, Magnus Naeslund(t) wrote:
> Ingo Molnar wrote:
> >
> >i've uploaded my current tree (-V0.7.41-01) to:
> >
> > http://redhat.com/~mingo/realtime-preempt/
> >
> >it includes the latest round of RCU fixes - but doesnt solve the SMP
> >bootup crash.
> >
> > Ingo
>
> With this kernel I can run for some 20 minutes, then the ip_dst_cache
> overflows.
> I gather it has something to do with RCU...
>
> If I just let it run and grep ip_dst_cache /proc/slab it goes up to 4096
> (max) and then the printk's are starting, and the networks stops.
> After i up the limit to the double (echo "8192" >
> /proc/sys/net/ipv4/route/max_size) network starts to work again.
> But of course, after a while it overflows again:
>
> # grep ip_dst_cache /proc/slabinfo
> ip_dst_cache 8192 8205 256 15 1 : tunables 16 8
> 0 : slabdata 547 547 0
>
> I haven't tried the vanilla 2.6.12-rc2 kernel, and I don't have the time
> to do that right now, but i figured it would have something to do with
> your patch. Older 2.6.8 works just fine.

Hello, Magnus,

I believe that my earlier patch might take care of this (included again
for convenience).

Thanx, Paul

Signed-off-by: <paulmck@us.ibm.com>

diff -urpN -X dontdiff linux-2.6.11.fixes/kernel/rcupdate.c linux-2.6.11.fixes2/kernel/rcupdate.c
--- linux-2.6.11.fixes/kernel/rcupdate.c Mon Mar 21 08:14:47 2005
+++ linux-2.6.11.fixes2/kernel/rcupdate.c Mon Mar 21 08:17:00 2005
@@ -620,7 +620,7 @@ static void rcu_process_callbacks(void)
return;
}
rdp->donelist = NULL;
- rdp->donetail = &rdp->waitlist;
+ rdp->donetail = &rdp->donelist;
put_cpu_var(rcu_data);
while (list) {
next = list->next;