From owner-freebsd-current Sat Jan 23 00:47:32 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id AAA02969 for freebsd-current-outgoing; Sat, 23 Jan 1999 00:47:32 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id AAA02964 for ; Sat, 23 Jan 1999 00:47:29 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.2/8.9.1) id AAA44590; Sat, 23 Jan 1999 00:47:03 -0800 (PST) (envelope-from dillon) Date: Sat, 23 Jan 1999 00:47:03 -0800 (PST) From: Matthew Dillon Message-Id: <199901230847.AAA44590@apollo.backplane.com> To: Peter Wemm Cc: current@FreeBSD.ORG Subject: Re: panic: found dirty cache page 0xf046f1c0 References: <199901230619.OAA06346@spinner.netplex.com.au> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :It's definately happening still, sorry. :-( I recompiled a 100% static :kernel and have had three more explosions, usually after starting exmh. :(exmh takes 10 to 15MB of ram on this system due to my mailbox folder :sizes). : :However, a clue.. The SMP box that is doing fine is a P6, an NFS client :and server (loading nfs.ko, it fsck's fast, so I use that box for making :sure the modules work). The one that is crashing, is a P5, an NFS client :and server (static kernel), and with a MFS /tmp. Both run softupdates (up :to date src/contrib/sys). : :I suspect MFS is the key. There's the new VOP_FREEBLKS() stuff you added, :and the corresponding calls to madvise to free the pages. : :Given madvise()'s murky history, I can't help but feel suspicious about it. : :I've unmounted /tmp and am about to thrash the machine. At the :moment, it's sitting on: Swap: 120M Total, 376K Used, 120M Free : :Cheers, :-Peter Hmmm. It's possible. A quick look at the exmh source indicates that it uses /tmp a lot. I've been doing make buildworld's with a 300MB MFS /usr/obj, but those are typically nothing more then simple file creates, reads, and writes. Presumably exmh is doing something more sophisticated. Try changing the panic in vm/vm_page.c to a printf() ( if (m->dirty) panic("found dirty cache page %p", m); if (m->dirty) printf( "found dirty cache page %p (%p,%d,%x) obtype %d obflags %x", m, m->object, (int)m->pindex, (int)m->flags, (int)m->object->type, (int)m->object->flags ); Lets see what we get. This should tell me what kind of object the page is attached to and the flags of the page and object. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message