Re: panic in rt_check_fib()

From: Giorgos Keramidas <keramida_at_freebsd.org>
Date: Mon, 15 Sep 2008 05:54:14 +0300
On Sun, 14 Sep 2008 12:13:42 -0700, Julian Elischer <julian_at_elischer.org> wrote:
> Giorgos Keramidas wrote:
>> Now an interesting question is: Is it `normal' that the USED rtentry
>> objects keep going up at every interface restart and are (at least at
>> first glance) not reclaimed as fast as they are acquired?
>
> does it happen with the old rt_check in the case where it doesn't crash?

Hi Julian,

Yes it happens with the old kernel too.  I tried bringing the re0
interface up and down with a kernel compiled from a clean copy of
base/head _at_ 182948.  The rtentry's allocated seem to be going linearly
up every time I restart the interface with the old, unpatched
rt_check_fib() too.

So if there is an rtentry leak, it exists in both the unpatched and the
patched kernels.

By going through the last rt_check_fib() you sent, I don't see an
obvious place where the leak could occur in *this* function, so I will
try to see if it's easier to find out where rtentry's are pulled from
the related zone.  Then by correlating these with the places where
rtentry's are freed it may become more obvious why/when the USED objects
get bumped.

It may be just a missing RT_REMREF() elsewhere, but I can't tell for
sure yet where/when this happens...  I'll keep looking.

In the meantime, the new rt_check_fib() has saved me from several
semi-random panics a week, so I think I like it :-D


Received on Mon Sep 15 2008 - 00:54:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:35 UTC