Date: Mon, 02 Dec 2002 13:01:43 -0600 From: "Alan L. Cox" <alc@imimic.com> To: Marc Recht <marc@informatik.uni-bremen.de> Cc: current@FreeBSD.ORG, alc@freebsd.org Subject: Re: X11/panic after today's cvsup Message-ID: <3DEBAE17.8DC0A9E7@imimic.com> References: <7310000.1038853912@leeloo.intern.geht.de>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------6ECE68688CC83303D8AAFF2A
Content-Type: text/plain; charset=x-user-defined
Content-Transfer-Encoding: 7bit
Marc Recht wrote:
>
> Hi!
>
> After cvsup I got this:
>
> kernel: recursed on non-recursive lock (sleep mutex) vm page queue mutex @
> ../../../i386/i386/pmap.c:928
> kernel: first acquired @ ../../../vm/vm_map.c:2077
> kernel: panic: recurse
> kernel:
> kernel: syncing disks, buffers remaining... panic: bremfree: bp 0xd359a250
> not locked
> kernel: Uptime: 6m15s
> kernel: pfs_vncache_unload(): 3 entries remaining
> kernel: Dumping 1535 MB
> kernel: ata0: resetting devices ..
>
> $FreeBSD: src/sys/vm/vm_map.c,v 1.273 2002/12/01 18:57:56 alc Exp $
> $FreeBSD: src/sys/i386/i386/pmap.c,v 1.375 2002/12/02 04:54:21 alc Exp $
>
> Regards,
>
> Marc
>
> "Premature optimization is the root of all evil." -- Donald E. Knuth
Can you say something more about how you produced this? Were you
shutting down your X server?
In any case, the attached patch should resolve this.
Regards,
Alan
--------------6ECE68688CC83303D8AAFF2A
Content-Type: text/plain; charset=x-user-defined;
name="pmap.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="pmap.patch"
Index: i386/i386/pmap.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/pmap.c,v
retrieving revision 1.375
diff -c -r1.375 pmap.c
*** i386/i386/pmap.c 2 Dec 2002 04:54:21 -0000 1.375
--- i386/i386/pmap.c 2 Dec 2002 18:50:39 -0000
***************
*** 1213,1219 ****
(pmap->pm_ptphint->pindex == ptepindex)) {
mpte = pmap->pm_ptphint;
} else {
! mpte = pmap_page_lookup(pmap->pm_pteobj, ptepindex);
pmap->pm_ptphint = mpte;
}
}
--- 1213,1221 ----
(pmap->pm_ptphint->pindex == ptepindex)) {
mpte = pmap->pm_ptphint;
} else {
! while ((mpte = vm_page_lookup(pmap->pm_pteobj, ptepindex)) != NULL &&
! vm_page_sleep_if_busy(mpte, FALSE, "pulook"))
! vm_page_lock_queues();
pmap->pm_ptphint = mpte;
}
}
--------------6ECE68688CC83303D8AAFF2A--
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?3DEBAE17.8DC0A9E7>
