Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Apr 2002 23:06:07 -0400 (EDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        current@FreeBSD.org
Subject:   page fault in swp_pager_meta_build
Message-ID:  <Pine.NEB.3.96L.1020417230245.64976X-100000@fledge.watson.org>

next in thread | raw e-mail | index | archive | help

This is from -CURRENT a few days ago with the TrustedBSD MAC patches.
Unfortunately, I don't know what time the panic occurred, so I can't say
what the machine was doing.  Either it was largely idle, or it was working
on a make -j 8 buildworld.  It's a pxeboot'd machine, with most
filesystems out of NFS, including the root filesystem, with the exception
of /usr/obj, which is locally mounted, swap, which is also local, and the
normal set of /tmp, /var, etc, that are md-backed FFS filesystems.  The
only unusual thing about the setup was that I started the buildworld, got
a "swap_pager_getswapspace: failed", then did swapon /dev/ad0s1b.
Normally, I'd start swap when it booted, but there was a problem merging
the configuration during the update, so that was lost.  Panic and trace
below.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Project
robert@fledge.watson.org      NAI Labs, Safeport Network Services

Fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic.id = 01000000
fault virtual address   = 0x82004
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc034753c
stack pointer           = 0x10:0xc8f00b38
frame pointer           = 0x10:0xc8f00b44
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 2 (pagedaemon)
kernel: type 12 trap, code=0
Stopped at      swp_pager_meta_build+0xf0:      cmpl    %ebx,0x4(%eax)
db> trace
swp_pager_meta_build(ca733660,0,80000000) at swp_pager_meta_build+0xf0
swap_pager_putpages(ca733660,c8f00c34,1,0,c8f00bc8) at
swap_pager_putpages+0x57
default_pager_putpages(ca733660,c8f00c34,1,0,c8f00bc8,c0440760,1,c0403580,8e) at default_pager_putpages+0x17
vm_pageout_flush(c8f00c34,1,0,1,c03dc437) at vm_pageout_flush+0xe5
vm_pageout_clean(c0a09678) at vm_pageout_clean+0x1ec
vm_pageout_scan(0,c0353ce8,c8f00d34,c023d1d4,0) at vm_pageout_scan+0x35a
vm_pageout(0,c8f00d48,c8e20730,c0353ce8,0) at vm_pageout+0x231
fork_exit(c0353ce8,0,c8f00d48) at fork_exit+0x88
fork_trampoline() at fork_trampoline

For reference purposes:

(kgdb) l *0xc034753c
0xc034753c is in swp_pager_meta_build (../../../vm/swap_pager.c:1654).
1649            struct swblock *swap;
1650
1651            index &= ~SWAP_META_MASK;
1652            pswap = &swhash[(index ^ (int)(intptr_t)object) & swhash_mask];
1653            while ((swap = *pswap) != NULL) {
1654                    if (swap->swb_object == object &&
1655                        swap->swb_index == index
1656                    ) {
1657                            break;
1658                    }



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?Pine.NEB.3.96L.1020417230245.64976X-100000>