Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Oct 2000 04:38:23 -1000
From:      "Kuriyama, Kent K Mr (CPF N651KK)" <KuriyaKK@cpf.navy.mil>
To:        behanna@zbzoom.net
Cc:        freebsd-stable@freebsd.org
Subject:   RE: mbuf leakage on 4.1.1-STABLE
Message-ID:  <A567A7C3889FD2119D2600204840388C03E9EAE3@uemspricpf3.cpf.navy.mil>

next in thread | raw e-mail | index | archive | help
Chris,

Your email prompted me to look at mbuf utilization on a 4.1.1-STABLE box
that is currently not in production.

outside# netstat -m
130/160/7168 mbufs in use (current/peak/max):
        129 mbufs allocated to data
        1 mbufs allocated to packet headers
128/136/1792 mbuf clusters in use (current/peak/max)
312 Kbytes allocated to network (92% in use)
                                 ^^^^^^^^^^
0 requests for memory denied
0 requests for memory delayed
0 calls to protocol drain routines
outside# uptime
 4:32AM  up 1 day, 14:01, 1 user, load averages: 0.00, 0.00, 0.00

I don't know whether to be concerned about the 92% utilization since the
number of bytes allocated seems low.  The machine has never crashed but then
it has never served as a server.

Is this kind of mbuf utilization expected?

Kent Kuriyama
SPAWAR Sys Ctr San Diego D424, CINCPACFLT N671KK
kuriyakk@cpf.navy.mil, 808-471-4125


-----Original Message-----
From: Chris BeHanna [mailto:behanna@zbzoom.net]
Sent: Thursday, October 12, 2000 01:15 AM
To: FreeBSD-Stable
Subject: mbuf leakage on 4.1.1-STABLE


    I posted a week or two ago about my machine wedging every couple
of days, and seeing RX packet drop messages due to no memory
available in /var/log/messages.  Specifically, the messages were

    "dhclient: send_packet: No buffer space available
     /kernel: xl0: no memory for rx list -- packet dropped!"

repeated thousands of times.
     
    Sean O'Connell pointed me in the right direction, stating that
this looked like an mbuf starvation problem.  I've been checking my
system constantly via netstat -m, and it looks like I'm leaking mbufs
(mbufs in use and mbuf clusters in use increase until they hit their
limit, then the machine freezes, waiting, I suppose, for an mbuf to
become available).  I've taken an interim measure of doubling the
number of NMBCLUSTERS in my kernel, but that just puts off the
inevitable.  I end up rebooting when I'm at 80% mbuf cluster usage, so
that I can avoid having to fsck my disks when the machine wedges and I
have to hit the button.

    A friend of mine suggested that I instrument mbuf.h and
uipc_mbuf.c so that I could see where all of the allocs and frees
occur.  I've looked through these files, and it's not immediately
obvious to me just how I'd instrument them to do that (e.g., __FILE__
and __LINE__ obviously can't be used).

    For reference, I'm running 4.1.1-STABLE, cvsup'ed early on October
4th or late on October 3rd, and my NIC is a 3Com 3C905B.  I've been
seeing this problem for some time now, but it's gotten a lot worse
recently, and I'm given to understand that it could be just about
anywhere in the protocol stack, not necessarily in the xl driver.

    I am willing to do some work to debug this, but never having been
a kernel hacker, I need a little bit of guidance.

    Help!  My Linux-using co-workers are really giving me the business
over this!

Thanks,
--
Chris BeHanna
Software Engineer (at yourfit.com)
behanna@zbzoom.net







To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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