Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jun 2007 13:01:25 +0100
From:      "Bruce M. Simpson" <bms@incunabulum.net>
To:        Rong-en Fan <grafan@gmail.com>
Cc:        Poul-Henning Kamp <phk@phk.freebsd.dk>, current@freebsd.org
Subject:   Re: "rtfree: %p has 1 refs"
Message-ID:  <4677C595.6060007@incunabulum.net>
In-Reply-To: <6eb82e0706190453i64976929l8f45977098ef8b7e@mail.gmail.com>
References:  <34986.1181564922@critter.freebsd.dk> <6eb82e0706190453i64976929l8f45977098ef8b7e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Rong-en Fan wrote:
> On 6/11/07, Poul-Henning Kamp <phk@phk.freebsd.dk> wrote:
>>
>> With this mornings -current I see a lot of
>>
>>         rtfree: 0xc2798d20 has 1 refs
>>         rtfree: 0xc2798d20 has 1 refs
>>         rtfree: 0xc2798d20 has 1 refs
>>         rtfree: 0xc2798d20 has 1 refs
>>         rtfree: 0xc2798d20 has 1 refs
>>         ...
>>
>> I've been playing with ipsec-tools and FAST_IPSEC
>>
>> No other clues right now...

in RTFREE_LOCKED:

		if ((_rt)->rt_refcnt <= 1)			\
			rtfree(_rt);				\

in rtfree:

	RT_REMREF(rt);
	if (rt->rt_refcnt > 0) {
		printf("%s: %p has %lu refs\n", __func__, rt, rt->rt_refcnt);
		goto done;

in RT_REMREF:
#define	RT_REMREF(_rt)	do {					\
	RT_LOCK_ASSERT(_rt);					\
	KASSERT((_rt)->rt_refcnt > 0,				\
		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
	(_rt)->rt_refcnt--;					\

Something is clearly holding a reference to an rtentry. Perhaps the printf should go under #ifdef DIAGNOSTIC.


BMS
} while (0)
	}


>>
>
> I'm seeing this too. I also uses ipsec-tools and FAST_IPSEC.
>
> Regards,
> Rong-En Fan
>
>>
>> -- 
>> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
>> phk@FreeBSD.ORG         | TCP/IP since RFC 956
>> FreeBSD committer       | BSD since 4.3-tahoe
>> Never attribute to malice what can adequately be explained by 
>> incompetence.
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to 
>> "freebsd-current-unsubscribe@freebsd.org"
>>
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to 
> "freebsd-current-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4677C595.6060007>