Skip site navigation (1)Skip section navigation (2)
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>