From owner-freebsd-current@FreeBSD.ORG Thu Apr 27 16:08:28 2006 Return-Path: X-Original-To: freebsd-current@freebsd.org 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 0360D16A400 for ; Thu, 27 Apr 2006 16:08:28 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from fw.zoral.com.ua (ll-227.216.82.212.sovam.net.ua [212.82.216.227]) by mx1.FreeBSD.org (Postfix) with ESMTP id 96D8643D53 for ; Thu, 27 Apr 2006 16:08:26 +0000 (GMT) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by fw.zoral.com.ua (8.13.4/8.13.4) with ESMTP id k3RG8I8B075521 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 27 Apr 2006 19:08:18 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.13.6/8.13.6) with ESMTP id k3RG8I6H044732 for ; Thu, 27 Apr 2006 19:08:18 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.13.6/8.13.6/Submit) id k3RG8IAM044731 for freebsd-current@freebsd.org; Thu, 27 Apr 2006 19:08:18 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 27 Apr 2006 19:08:17 +0300 From: Kostik Belousov To: freebsd-current@freebsd.org Message-ID: <20060427160817.GA1268@deviant.kiev.zoral.com.ua> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="DocE+STaALJfprDB" Content-Disposition: inline User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV version 0.88.1, clamav-milter version 0.88.1 on fw.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED autolearn=failed version=3.1.1 X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on fw.zoral.com.ua Subject: [panic]: recursed on non-recursive mutex pmap X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Apr 2006 16:08:28 -0000 --DocE+STaALJfprDB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable With today current, running inside qemu with config GENERIC + options QUOTA, I get the panic while kernel tries to exec init: panic: _mtx_lock_sleep: resursed on non-recursive mutex pmap @ /usr/home/ko= stik/build/bsd/6/src-misc/sys/i386/i386/pmap.c:1843 Backtrace: #26 0xc070066e in panic ( fmt=3D0xc099b9ca "_mtx_lock_sleep: recursed on non-recursive mutex %s @= %s:%d\n") at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_shutdown.= c:549 #27 0xc06f5826 in _mtx_lock_sleep (m=3D0xc0b0a500, tid=3D3240063840, opts= =3D0,=20 file=3D0x20004b07
, line=3D536890119) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_mutex.c:463 #28 0xc06f53b8 in _mtx_lock_flags (m=3D0xc0b0a500, opts=3D0,=20 file=3D0xc09c433e "/usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/= pmap.c", line=3D1843) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/ker= n_mutex.c:286 #29 0xc0916cd3 in pmap_remove (pmap=3D0xc0b0a500, sva=3D3321208832, eva=3D3= 321212928) at /usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/pmap.c:1843 #30 0xc08a190c in vm_map_delete (map=3D0xc1069000, start=3D3238432768,=20 end=3D3321212928) at /usr/home/kostik/build/bsd/6/src-misc/sys/vm/vm_map.c:2286 #31 0xc08a19d5 in vm_map_remove (map=3D0xc1069000, start=3D3321208832,=20 end=3D3321212928) at /usr/home/kostik/build/bsd/6/src-misc/sys/vm/vm_map.c:2315 #32 0xc089dda2 in kmem_free (map=3D0x20004b07, addr=3D536890119, size=3D409= 6) at /usr/home/kostik/build/bsd/6/src-misc/sys/vm/vm_kern.c:209 #33 0xc091650b in free_pv_entry (pmap=3D0xc0b0a500, pv=3D0x20004b07) at /usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/pmap.c:1609 #34 0xc0916936 in pmap_remove_entry (pmap=3D0xc0b0a500, m=3D0xc117d1f8,=20 va=3D3308380160) at /usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/pmap.c:1726 #35 0xc0916b83 in pmap_remove_pte (pmap=3D0xc0b0a500, ptq=3D0xc117d1f8,=20 va=3D3308380160) at /usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/pmap.c:1797 #36 0xc0916da8 in pmap_remove (pmap=3D0xc0b0a500, sva=3D3308380160, eva=3D3= 308388352) at /usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/pmap.c:1905 #37 0xc08a190c in vm_map_delete (map=3D0xc1069348, start=3D3238433608,=20 end=3D3308388352) at /usr/home/kostik/build/bsd/6/src-misc/sys/vm/vm_map.c:2286 #38 0xc089e57b in kmem_free_wakeup (map=3D0xc1069348, addr=3D3308118016,=20 size=3D536890119) at /usr/home/kostik/build/bsd/6/src-misc/sys/vm/vm_kern.c:467 #39 0xc06e188a in exec_free_args (args=3D0xc588ec7c) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_exec.c:1039 #40 0xc06e102e in do_execve (td=3D0xc11f7360, args=3D0xc588ec7c, mac_p=3D0x= 0) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_exec.c:780 #41 0xc06e032f in kern_execve (td=3D0xc11f7360, args=3D0xc588ec7c,=20 mac_p=3D0x20004b07) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_exec.c:252 #42 0xc06e024c in execve (td=3D0x20004b07, uap=3D0xc0a5a840) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_exec.c:186 #43 0xc06caf9e in start_init (dummy=3D0x0) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/init_main.c:625 #44 0xc06e5703 in fork_exit (callout=3D0xc06cacc0 , arg=3D0x200= 04b07,=20 frame=3D0x20004b07) at /usr/home/kostik/build/bsd/6/src-misc/sys/kern/kern_fork.c:819 #45 0xc090306c in fork_trampoline () at /usr/home/kostik/build/bsd/6/src-misc/sys/i386/i386/exception.s:199 The problem appears because free_pv_entry decided to free pv_chunk when pmap is kernel_pmap. I added the bandaid to be able to continue my work, but hope for proper fix from vm gurus. Index: sys/i386/i386/pmap.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /usr/local/arch/ncvs/src/sys/i386/i386/pmap.c,v retrieving revision 1.551 diff -u -r1.551 pmap.c --- sys/i386/i386/pmap.c 27 Apr 2006 05:02:21 -0000 1.551 +++ sys/i386/i386/pmap.c 27 Apr 2006 16:05:44 -0000 @@ -1595,6 +1595,8 @@ for (idx =3D 0; idx < _NPCM; idx++) if (pc->pc_map[idx] !=3D pc_freemask[idx]) return; + if (pmap =3D=3D kernel_map->pmap) + return; PV_STAT(pv_entry_spare -=3D _NPCPV); PV_STAT(pc_chunk_count--); PV_STAT(pc_chunk_frees++); --DocE+STaALJfprDB Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQFEUOxwC3+MBN1Mb4gRAobnAKCnsVZfxNlmuexEKLggLSwR6bXJiACZAXI+ +fzx6XB6qf74Lcwzj5rKa0I= =m2m7 -----END PGP SIGNATURE----- --DocE+STaALJfprDB--