Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2006 14:10:47 -0500
From:      Stephen Clark <Stephen.Clark@seclark.us>
To:        damir bikmuhametov <boco@ufanet.ru>,  stable@freebsd.org
Subject:   Re: 4.9 network not freeing memory
Message-ID:  <442C2D37.7050000@seclark.us>
In-Reply-To: <20060330165850.GA43914@ufanet.ru>
References:  <442B23CA.3060808@seclark.us> <20060330034353.GR60807@ufanet.ru> <442B56B2.1070107@seclark.us> <20060330053231.GS60807@ufanet.ru> <442BF5B5.7060300@seclark.us> <20060330165850.GA43914@ufanet.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
damir bikmuhametov wrote:

>On Thu, Mar 30, 2006 at 10:13:57AM -0500, Stephen Clark wrote:
>  
>
>>Do you know if the queue_maxlen is exceeded do the mbufs get lost? It
>>sort of seems that is what happens.
>>    
>>
>
>I'm sorry I'm unfamiliar with FreeBSD internals. I just noticed that
>when I'm using gre tunnels (say, for WCCP or with DVB recievers) at some
>time (various) net.inet.ip.intr_queue_drops starts increasing very fast
>and I'm losing network connectivity. I've played with queue_maxlen and
>found that increased value helps against that issues.
>
>It seems that only gre suffers from the default (relatively small) queue
>length.
>
>  
>
FreeBSD splnet() equates directly to NetBSD's splsoftnet();
FreeBSD uses splimp() where (for networking) NetBSD would use splnet().

When you mentioned this only seems to happen on gre I looked at the 
ip_gre.c which
comes from NetBSD, it uses splnet() where all the other FreeBSD stuff 
used splimp().
So I changed gre.c to use splnet() and now I am not getting any drops, 
even with queue_maxlen=50;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?442C2D37.7050000>