From owner-freebsd-stable@FreeBSD.ORG Fri Aug 29 06:52:58 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 612CC16A4C0 for ; Fri, 29 Aug 2003 06:52:58 -0700 (PDT) Received: from panzer.kdm.org (panzer.kdm.org [216.160.178.169]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0D6834400D for ; Fri, 29 Aug 2003 06:52:47 -0700 (PDT) (envelope-from ken@panzer.kdm.org) Received: from panzer.kdm.org (localhost [127.0.0.1]) by panzer.kdm.org (8.12.9/8.12.5) with ESMTP id h7TDqhYU036975; Fri, 29 Aug 2003 07:52:43 -0600 (MDT) (envelope-from ken@panzer.kdm.org) Received: (from ken@localhost) by panzer.kdm.org (8.12.9/8.12.5/Submit) id h7TDqh5L036974; Fri, 29 Aug 2003 07:52:43 -0600 (MDT) (envelope-from ken) Date: Fri, 29 Aug 2003 07:52:43 -0600 From: "Kenneth D. Merry" To: Maxim Konovalov Message-ID: <20030829135243.GA36933@panzer.kdm.org> References: <20030829163808.B93371@news1.macomnet.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030829163808.B93371@news1.macomnet.ru> User-Agent: Mutt/1.4.1i cc: stable@freebsd.org Subject: Re: INVARIANTS panic in -stable X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 13:52:58 -0000 On Fri, Aug 29, 2003 at 17:21:08 +0400, Maxim Konovalov wrote: > Something committed between 2003.08.24.00.00.00 and > 2003.08.25.00.00.00 GMT triggers a panic: > > ... > lpt0: on ppbus0 > lpt0: Interrupt-driven port > ppi0: on ppbus0 > Waiting 10 seconds for SCSI devices to settle > panic: malloc(M_WAITOK) in interrupt context > Debugger("panic") > Stopped at Debugger+0x34: movb $0,in_Debugger.429 > > db> trace > Debugger(c0250f5b) at Debugger+0x34 > panic(c024f6a0,c02b2bc8,c1383470,c1383000,80286) at panic+0x70 > malloc(2c,c0286100,0,c0279888,c1383470) at malloc+0x27 > sysctl_add_oid(c1383470,c02b2bc8,ffffffff,c0279838,80000001) at > sysctl_add_oid+0x7e > daregister(c1382b80,c0279a9c,6c0800,c0279a9c,80) at daregister+0x18a Yes, this is a known problem. I'm planning to fix it by adding a task queue that runs in a thread context (instead of a software interrupt context) and using that taskqueue to add the sysctl variables. I haven't gotten it working yet, though. Ken -- Kenneth Merry ken@kdm.org