From owner-freebsd-current@FreeBSD.ORG Mon Aug 12 15:13:16 2013 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BFD87207; Mon, 12 Aug 2013 15:13:16 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from albert.catwhisker.org (mx.catwhisker.org [198.144.209.73]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8D0D825B5; Mon, 12 Aug 2013 15:13:15 +0000 (UTC) Received: from albert.catwhisker.org (localhost [127.0.0.1]) by albert.catwhisker.org (8.14.7/8.14.7) with ESMTP id r7CFDEL4007582; Mon, 12 Aug 2013 08:13:14 -0700 (PDT) (envelope-from david@albert.catwhisker.org) Received: (from david@localhost) by albert.catwhisker.org (8.14.7/8.14.7/Submit) id r7CFDEC0007581; Mon, 12 Aug 2013 08:13:14 -0700 (PDT) (envelope-from david) Date: Mon, 12 Aug 2013 08:13:14 -0700 From: David Wolfskill To: current@freebsd.org Subject: Early drop to debugger with DEBUG_MEMGUARD Message-ID: <20130812151314.GE1570@albert.catwhisker.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Uwl7UQhJk99r8jnw" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 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: Mon, 12 Aug 2013 15:13:16 -0000 --Uwl7UQhJk99r8jnw Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I first noticed this on my laptop on 08 Aug, after having built & booted FreeBSD 10.0-CURRENT #975 r253985M/253985:1000041: Tue Aug 6 05:28:39 PDT= 2013 root@localhost:/common/S4/obj/usr/src/sys/CANARY i386 OK. I'm away from home, and Internet access is a bit flaky, so initially, I suspected that something may have gone wrong with my source update; I later determined that disabling "options DEBUG_MEMGUARD" would avoid the panic. That said, I had been running a kernel with DEBUG_MEMGUARD for quite a while without issues; I suspect that this drop to debugger either reflects a real problem that disabling DEBUG_MEMGUARD merely hides or htat the assert in src/sys/kern/subr_vmem.c:1050 isn't actually correct in all cases. So I finally(!) had a chance to try to reproduce the error on a machine with a serial console; here's a cut/paste from that: =2E.. | 7. Boot [V]erbose: NO | `:` `:` | | .-- `--. | | .---.....----. +-----------------------------------------+ =20 Booting... GDB: no debug ports present KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2013 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 10.0-CURRENT #0 r254245M/254246:1000042: Mon Aug 12 07:20:47 PDT 2= 013 root@freebeast.catwhisker.org:/common/S3/obj/usr/src/sys/MEMGUARD i386 FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610 WARNING: WITNESS option enabled, expect reduced performance. panic: Assertion strat =3D=3D M_BESTFIT || strat =3D=3D M_FIRSTFIT failed a= t /usr/src/sys/kern/subr_vmem.c:1050 cpuid =3D 0 KDB: stack backtrace: db_trace_self_wrapper(c116fcdc,73752f20,72732f72,79732f63,656b2f73,...) at = db_trace_self_wrapper+0x2d/frame 0xc1820ba0 kdb_backtrace(c11c4b23,0,c0f8a835,c1820c74,c0f8a835,...) at kdb_backtrace+0= x30/frame 0xc1820c08 vpanic(c12eea08,100,c0f8a835,c1820c74,c1820c74,...) at vpanic+0x11f/frame 0= xc1820c44 kassert_panic(c0f8a835,c1172e98,c1172e39,41a,8,...) at kassert_panic+0xea/f= rame 0xc1820c68 vmem_alloc(c130d680,6681000,2,c1820cc0,3b5,...) at vmem_alloc+0x53/frame 0x= c1820ca0 memguard_init(c130d680,c0a9fa50,c6800000,20281000,1000,10000,0) at memguard= _init+0x29/frame 0xc1820cc4 kmeminit(c14b9fd4,c10efc89,0,0,c1820d30,...) at kmeminit+0x171/frame 0xc182= 0cf0 mallocinit(0,0,2,0,c11d3728,...) at mallocinit+0x32/frame 0xc1820d30 mi_startup() at mi_startup+0xf7/frame 0xc1820d58 begin() at begin+0x2c KDB: enter: panic [ thread pid 0 tid 0 ] Stopped at kdb_enter+0x3d: movl $0,kdb_why db>=20 As you can see, this is well before any device probes or much of anything else. Thus, I suspect that it's fairly possible that the assertion may well be OK after a certain point in the boot sequence, but decidedly *not* OK in this specific instance. Or perhaps the assertion just doesn't play well with DEBUG_MEMGUARD. I'm not about to pretend that I have anywhere near enough familiarity with what's going on to even suggest a fix, but it seems to me that Something Is Wrong Here. The kernel config (in this case) is: include GENERIC ident MEMGUARD options DEBUG_MEMGUARD The system was running a copy of: FreeBSD 10.0-CURRENT #1243 r254245M/254246:1000042: Mon Aug 12 05:39:42 PD= T 2013 root@freebeast.catwhisker.org:/common/S4/obj/usr/src/sys/GENERIC= i386 but with a newly-built MEMGUARD kernel (as above), built from the same sources. I have some time to poke at it for the next few hours; subject to my Internet access & available time, I'm happy to do that, try patches, or whatever, but I could use a bit of guidance. Since it's been completely reproducible for me, I suspect that anyone with sufficiently recenty sources running head can reproduce it merely by enabling "options DEBUG_MEMGUARD", rebuilding the kernel, and booting it. Peace, david --=20 David H. Wolfskill david@catwhisker.org Taliban: Evil men with guns afraid of truth from a 14-year old girl. See http://www.catwhisker.org/~david/publickey.gpg for my public key. --Uwl7UQhJk99r8jnw Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iEYEARECAAYFAlII+4kACgkQmprOCmdXAD2NFwCfftEdcQZx8L7KA9TGZTwe9xOI Z84AoITSeVTZyz7qblPQ6u+qIPB7KYV/ =jYO1 -----END PGP SIGNATURE----- --Uwl7UQhJk99r8jnw--