From owner-freebsd-current Tue Sep 17 10:44: 1 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 066D237B401; Tue, 17 Sep 2002 10:44:00 -0700 (PDT) Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.120.49]) by mx1.FreeBSD.org (Postfix) with ESMTP id A1E0E43E81; Tue, 17 Sep 2002 10:43:59 -0700 (PDT) (envelope-from tlambert2@mindspring.com) Received: from pool0044.cvx40-bradley.dialup.earthlink.net ([216.244.42.44] helo=mindspring.com) by scaup.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 17rMO9-0002No-00; Tue, 17 Sep 2002 10:43:54 -0700 Message-ID: <3D876976.3126945A@mindspring.com> Date: Tue, 17 Sep 2002 10:42:14 -0700 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Nate Lawson Cc: Martin Blapp , current@freebsd.org, peter@freebsd.org Subject: Re: Crashdumps available for download ... please help References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 Nate Lawson wrote: > > 0xc02fd315 is in pmap_remove_pages (/usr/src/sys/i386/i386/pmap.c:2941). > > 2936 #ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY > > 2937 pte = vtopte(pv->pv_va); > > 2938 #else > > 2939 pte = pmap_pte_quick(pv->pv_pmap, pv->pv_va); > > 2940 #endif > > 2941 tpte = *pte; > > 2942 > > 2943 if (tpte == 0) { > > 2944 printf("TPTE at %p IS ZERO @ VA %08x\n", > > 2945 pte, pv->pv_va); > > Try building your kernel with "options PMAP_REMOVE_PAGES_CURPROC_ONLY" and > see if the panic goes away. If that works, the problem is > pmap_pte_quick(). > > In looking at pmap_pte_quick, either it is wrong or line 2941 is wrong in > always dereferencing pte. pmap_pte_quick can return NULL (well 0). It > seems like pmap_pte_quick is wrong because vtopte() never returns NULL, > just (PTmap + i386_btop(va)) i.e. a valid base plus some offset. Obvious fix? #ifndef PMAP_REMOVE_PAGES_CURPROC_ONLY pte = pmap_pte_quick(pv->pv_pmap, pv->pv_va); if (pte == NULL) #endif pte = vtopte(pv->pv_va); -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message