Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jan 1999 00:47:03 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Peter Wemm <peter@netplex.com.au>
Cc:        current@FreeBSD.ORG
Subject:   Re: panic: found dirty cache page 0xf046f1c0 
Message-ID:  <199901230847.AAA44590@apollo.backplane.com>
References:   <199901230619.OAA06346@spinner.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
: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 
					<dillon@backplane.com>

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



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