From owner-freebsd-current Sat Jan 23 12:07:19 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id MAA10443 for freebsd-current-outgoing; Sat, 23 Jan 1999 12:07:19 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from spinner.netplex.com.au (spinner.netplex.com.au [202.12.86.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id MAA10438 for ; Sat, 23 Jan 1999 12:07:16 -0800 (PST) (envelope-from peter@netplex.com.au) Received: from spinner.netplex.com.au (localhost [127.0.0.1]) by spinner.netplex.com.au (8.9.2/8.9.2/Netplex) with ESMTP id EAA00970; Sun, 24 Jan 1999 04:06:49 +0800 (WST) (envelope-from peter@spinner.netplex.com.au) Message-Id: <199901232006.EAA00970@spinner.netplex.com.au> X-Mailer: exmh version 2.0.2 2/24/98 To: Matthew Dillon cc: current@FreeBSD.ORG Subject: Re: panic: found dirty cache page 0xf046f1c0 In-reply-to: Your message of "Sat, 23 Jan 1999 11:55:49 PST." <199901231955.LAA48625@apollo.backplane.com> Date: Sun, 24 Jan 1999 04:06:48 +0800 From: Peter Wemm Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Matthew Dillon wrote: [..] > :Oh, one other thing that occurred to me.. Under 4.0-current, I regularly > :(ie: within 30 seconds of boot) get if_de tranmitter underflows. My > :console corruption was happening at the instant that de0 was being > :configured with ifconfig. exmh is running to a remote display over that > :de0 interface. > : > :Under Jan 16 3.0-current, I do not get that tranmitter underflow.. > : > :The only thin I can think of about if_de that's unusual that is VM related > :(apart from the complexity of the code) is that it uses configmalloc(). I > :wonder if this is somehow setting the scene for the later failures? It's > :certainly suspicious that has done strange things when being ifconfig'ed, > :including things like trashing the serial console on no less than a dozen > :occasions. > : > :Cheers, > :-Peter > > Hmmm.. HMMMMMM. contigmalloc, eh? You might be onto something here. > I will investigate it. > > The problem was are having is that, somehow, a vm_page_t in the PQ_CACHE > is being set dirty. > > Sinc vm_page_cache() panics if m->dirty is set, then m->dirty must be get ting > set *after* the page has been moved to the cache. > > contigmalloc() looks suspicious. Damn, I must be loosing my mind. if_de doesn't use contigmalloc.. it either did, or was going to as a result of the problem of the transmit descriptor array crossing a page boundary that had to be contiguous. In the end there were two seperate malloc's, each less than PAGE_SIZE. Cheers, -Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message