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>