From owner-freebsd-current Sun Apr 28 10:11:44 2002 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 3706337B400; Sun, 28 Apr 2002 10:11:38 -0700 (PDT) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g3SHBbY53495; Sun, 28 Apr 2002 10:11:37 -0700 (PDT) (envelope-from dillon) Date: Sun, 28 Apr 2002 10:11:37 -0700 (PDT) From: Matthew Dillon Message-Id: <200204281711.g3SHBbY53495@apollo.backplane.com> To: Robert Watson Cc: current@FreeBSD.ORG Subject: Re: Page fault in swp_pager_meta_build() References: Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG :(Matt gets CC'd because he's just unlucky :-) : :This system is (as always) a pxeboot'd nfsroot'd dual processor box. This :time, however, it's running straight GENERIC from the main tree instead of :the MAC branch. The box network boots, does a buildkernel -j 8, and then :reboots. It currently has no configured swap, suggesting that things :broke down when it tried to think about using some swap. Not sure how :many loops it took to get to this, but I've seen a couple of different :panics that I'll be posting about as they recur. I'm actually trying to :track an odd mbuf/nfs interaction... No idea, but the last time someone had a weird swap issue it turned out that they had swapon'd the same swap partition twice. The system's checks are not sufficient if you swapon the same device from different mounts. So check that first. The swap code preallocates its bitmap space, the hash table array is malloc'd once at boot time, and the swblock is zalloc()'d. From the looks of it the hash chain either got corrupted somehow or part of the kernel's KVM space containing either the hash table or the swblock's got corrupted. Unless someone worked on the swap code recently I would focus on either the memory subsystem or on unrelated kernel subsystems blowing up KVK. -Matt Matthew Dillon :Fatal trap 12: page fault while in kernel mode :cpuid = 0; lapic.id = 00000000 :fault virtual address = 0x20097479 :fault code = supervisor read, page not present :instruction pointer = 0x8:0xc0337da8 :stack pointer = 0x10:0xc8f22b2c :frame pointer = 0x10:0xc8f22b38 :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(c97ff120,0,80000000) at swp_pager_meta_build+0xf0 :swap_pager_putpages(c97ff120,c8f22c34,4,0,c8f22bbc) at :swap_pager_putpages+0x57 :default_pager_putpages(c97ff120,c8f22c34,4,0,c8f22bbc,c0428be0,1,c03ebb80,8e) :at default_pager_putpages+0x17 :vm_pageout_flush(c8f22c34,4,0,c03d0c7a,246) at vm_pageout_flush+0xe5 :vm_pageout_clean(c0a09204) at vm_pageout_clean+0x1ec :vm_pageout_scan(0,c034469c,c8f22d34,c023d838,0) at vm_pageout_scan+0x35a :vm_pageout(0,c8f22d48,c8e2c728,c034469c,0) at vm_pageout+0x231 :fork_exit(c034469c,0,c8f22d48) at fork_exit+0x88 :fork_trampoline() at fork_trampoline+0x37 : :(kgdb) l *swp_pager_meta_build+0xf0 :0xc0337da8 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 } : : :Robert N M Watson FreeBSD Core Team, TrustedBSD Project :robert@fledge.watson.org NAI Labs, Safeport Network Services To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message