Date: Tue, 29 Aug 2000 17:22:35 -0400 (EDT) From: rwatson@freebsd.org To: FreeBSD-gnats-submit@freebsd.org Subject: kern/20927: looutput: mbuf allocation failed Message-ID: <200008292122.RAA02996@fledge.watson.org>
next in thread | raw e-mail | index | archive | help
>Number: 20927 >Category: kern >Synopsis: dmesg output: looutput: mbuf allocation failed >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Aug 29 14:30:00 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Robert Watson >Release: FreeBSD 4.1-STABLE i386 >Organization: >Environment: fledge:/data/fbsd-stable/src/sys/net> uname -a FreeBSD fledge.watson.org 4.1-STABLE FreeBSD 4.1-STABLE #2: Fri Jul 28 01:08:28 EDT 2000 root@fledge.watson.org:/data/fbsd-stable/src/sys/compile/FLEDGE i386 >Description: Found a weird message in my dmesg. Exploration below; don't know what prompted it, but the exploration suggests some possibilities. % dmesg | grep looutput looutput: mbuf allocation failed looutput: mbuf allocation failed looutput: mbuf allocation failed looutput: mbuf allocation failed looutput: mbuf allocation failed looutput: mbuf allocation failed from src/sys/net/if_loop.c: if (0) { contiguousfail: printf("looutput: mbuf allocation failed\n"); } So apparently contiguousfail is being jumped to. One of the following conditions: /* * KAME requires that the packet to be contiguous on the * mbuf. We need to make that sure. * this kind of code should be avoided. * XXX: fails to join if interface MTU > MCLBYTES. jumbogram? */ if (m && m->m_next != NULL && m->m_pkthdr.len < MCLBYTES) { struct mbuf *n; MGETHDR(n, M_DONTWAIT, MT_HEADER); if (!n) goto contiguousfail; MCLGET(n, M_DONTWAIT); if (! (n->m_flags & M_EXT)) { m_freem(n); goto contiguousfail; } m_copydata(m, 0, m->m_pkthdr.len, mtod(n, caddr_t)); n->m_pkthdr = m->m_pkthdr; n->m_len = m->m_pkthdr.len; m_freem(m); m = n; } From src/sys/i386/include/param.h: #define MCLSHIFT 11 /* convert bytes to m_buf clusters */ #endif /* MCLSHIFT */ #define MCLBYTES (1 << MCLSHIFT) /* size of an m_buf cluster */ For reference, MTU on lo0 is 16k, and MCLBYTES is 2048 on i386. I'm guessing this means that lo0 has problems with packets over 2k in size. I could be wrong. >How-To-Repeat: Unfortunately, have no idea. Don't know what was going on on the system at the time, and it's a multi-user machine with an average of 10 - 20 people logged in at any moment. >Fix: Not available. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008292122.RAA02996>