Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Nov 2011 17:38:16 -0500
From:      Mike Andrews <mandrews@bit0.com>
To:        pyunyh@gmail.com
Cc:        freebsd-stable@freebsd.org
Subject:   Re: 9.0-RC2 re(4) "no memory for jumbo buffers" issue
Message-ID:  <4ED40D58.1030107@bit0.com>
In-Reply-To: <20111128013931.GC1830@michelle.cdnetworks.com>
References:  <4ED154B6.2030304@bit0.com> <20111128013931.GC1830@michelle.cdnetworks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/27/11 8:39 PM, YongHyeon PYUN wrote:
> On Sat, Nov 26, 2011 at 04:05:58PM -0500, Mike Andrews wrote:
>> I have a Supermicro 5015A-H (Intel Atom 330) server with two Realtek
>> RTL8111C-GR gigabit NICs on it.  As far as I can tell, these support
>> jumbo frames up to 7422 bytes.  When running them at an MTU of 5000 on
>
> Actually the maximum size is 6KB for RTL8111C, not 7422.
> RTL8111C and newer PCIe based gigabit controllers no longer support
> scattering a jumbo frame into multiple RX buffers so a single RX
> buffer has to receive an entire jumbo frame.  This adds more burden
> to system because it has to allocate a jumbo frame even when it
> receives a pure TCP ACK.

OK, that makes sense.

>> FreeBSD 9.0-RC2, after a week or so of update, with fairly light network
>> activity, the interfaces die with "no memory for jumbo buffers" errors
>> on the console.  Unloading and reloading the driver (via serial console)
>> doesn't help; only rebooting seems to clear it up.
>>
>
> The jumbo code path is the same as normal MTU sized one so I think
> possibility of leaking mbufs in driver is very low.  And the
> message "no memory for jumbo RX buffers" can only happen either
> when you up the interface again or interface restart triggered by
> watchdog timeout handler.  I don't think you're seeing watchdog
> timeouts though.

I'm fairly certain the interface isn't changing state when this happens 
-- it just kinda spontaneously happens after a week or two, with no 
interface up/down transitions.  I don't see any watchdog messages when 
this happens.

> When you see "no memory for jumbo RX buffers" message, did you
> check available mbuf pool?

Not yet, that's why I asked for debugging tips -- I'll do that the next 
time this happens.

>> What's the best way to go about debugging this...  which sysctl's should
>> I be looking at first?  I have already tried raising kern.ipc.nmbjumbo9
>> to 16384 and it doesn't seem to help things... maybe prolonging it
>> slightly, but not by much.  The problem is it takes a week or so to
>> reproduce the problem each time...
>>
>
> I vaguely guess it could be related with other subsystem which
> leaks mbufs such that driver was not able to get more jumbo RX
> buffers from system.  For instance, r228016 would be worth to try on
> your box.  I can't clearly explain why em(4) does not suffer from
> the issue though.

I've just this morning built a kernel with that fix, so we'll see how 
that goes.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4ED40D58.1030107>