From owner-freebsd-bugs Tue Aug 29 14:30: 6 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 7AB7637B423 for ; Tue, 29 Aug 2000 14:30:00 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id OAA57354; Tue, 29 Aug 2000 14:30:00 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by hub.freebsd.org (Postfix) with ESMTP id 704A937B423 for ; Tue, 29 Aug 2000 14:22:36 -0700 (PDT) Received: (from robert@localhost) by fledge.watson.org (8.9.3/8.9.3) id RAA02996; Tue, 29 Aug 2000 17:22:35 -0400 (EDT) (envelope-from robert) Message-Id: <200008292122.RAA02996@fledge.watson.org> Date: Tue, 29 Aug 2000 17:22:35 -0400 (EDT) From: rwatson@freebsd.org Reply-To: rwatson@freebsd.org To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: kern/20927: looutput: mbuf allocation failed Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >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