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>