From owner-freebsd-stable Fri Mar 2 15:21: 3 2001 Delivered-To: freebsd-stable@freebsd.org Received: from prism.flugsvamp.com (cb58709-a.mdsn1.wi.home.com [24.17.241.9]) by hub.freebsd.org (Postfix) with ESMTP id 4397737B71B for ; Fri, 2 Mar 2001 15:20:59 -0800 (PST) (envelope-from jlemon@flugsvamp.com) Received: (from jlemon@localhost) by prism.flugsvamp.com (8.11.0/8.11.0) id f22NJAQ15706; Fri, 2 Mar 2001 17:19:10 -0600 (CST) (envelope-from jlemon) Date: Fri, 2 Mar 2001 17:19:10 -0600 From: Jonathan Lemon To: Matt Dillon Cc: Mike Tancsa , Bosko Milekic , stable@FreeBSD.ORG, jlemon@flugsvamp.com, phk@critter.freebsd.dk Subject: Re: Continued panics on a recent STABLE machine Message-ID: <20010302171910.J25974@prism.flugsvamp.com> References: <01a101c0a1ea$77a64b20$becbca18@jehovah> <4.2.2.20010228114855.03d28be0@marble.sentex.net> <4.2.2.20010301151110.01de4650@marble.sentex.net> <200103022307.f22N76Z10552@earth.backplane.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre2i In-Reply-To: <200103022307.f22N76Z10552@earth.backplane.com> Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Fri, Mar 02, 2001 at 03:07:06PM -0800, Matt Dillon wrote: > Try to get a core guys (& keep a copy of the kernel.debug). It looks > like it should be possible to get a core. My guess is someone broke > something associated with mbuf handling. The virtual address is > completely and utterly bogus. Actually, we do have a core dump, but for some reason all the mbufs that I am exmaining are zeroed out. I did make a copy of the mbuf before calling the panic() routine, so I know it isn't null, but I have no idea why it shows up that way in the core. That being said, my suspicion is that something is writing one word past the end of the (physically contigious) previous mbuf. This would be caused by something screwing up a length calculation in the kernel, or if a network driver just happened to DMA in a bit of extra garbage at the end of a network packet. To test this theory, I'm using the following patch to leave a bit of unused space at the end of the mbuf. So far, the site that was having problems hasn't crashed yet, but the jury is still out. -- Jonathan Index: mbuf.h =================================================================== RCS file: /ncvs/src/sys/sys/mbuf.h,v retrieving revision 1.44.2.8 diff -u -r1.44.2.8 mbuf.h --- mbuf.h 2001/02/04 14:49:59 1.44.2.8 +++ mbuf.h 2001/03/02 15:08:39 @@ -45,7 +45,7 @@ * at least MINCLSIZE of data must be stored. */ -#define MLEN (MSIZE - sizeof(struct m_hdr)) /* normal data len */ +#define MLEN (MSIZE - sizeof(struct m_hdr) - 4)/* normal data len */ #define MHLEN (MLEN - sizeof(struct pkthdr)) /* data len w/pkthdr */ #define MINCLSIZE (MHLEN + 1) /* smallest amount to put in cluster */ @@ -108,6 +108,7 @@ } MH; char M_databuf[MLEN]; /* !M_PKTHDR, !M_EXT */ } M_dat; + char M_padding[4]; }; #define m_next m_hdr.mh_next #define m_len m_hdr.mh_len To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message