From owner-freebsd-current@FreeBSD.ORG Mon Dec 19 19:46:30 2005 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 B575616A420 for ; Mon, 19 Dec 2005 19:46:30 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail6.speedfactory.net [66.23.216.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2729643D60 for ; Mon, 19 Dec 2005 19:46:27 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.5b3) with ESMTP id 4153090 for multiple; Mon, 19 Dec 2005 14:44:27 -0500 Received: from localhost (john@localhost [127.0.0.1]) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id jBJJkIuh068559; Mon, 19 Dec 2005 14:46:18 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: Andrew Gallatin Date: Mon, 19 Dec 2005 14:26:51 -0500 User-Agent: KMail/1.8.2 References: <17314.60552.595375.783753@grasshopper.cs.duke.edu> <200512161638.03037.jhb@freebsd.org> <17315.15301.316482.649755@grasshopper.cs.duke.edu> In-Reply-To: <17315.15301.316482.649755@grasshopper.cs.duke.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200512191426.52360.jhb@freebsd.org> X-Virus-Scanned: ClamAV 0.87.1/1213/Mon Dec 19 09:48:34 2005 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-1.4 required=4.2 tests=ALL_TRUSTED autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx X-Server: High Performance Mail Server - http://surgemail.com r=1653887525 Cc: freebsd-current@freebsd.org Subject: Re: PREEMPTION vs ndisulator 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: Mon, 19 Dec 2005 19:46:30 -0000 On Friday 16 December 2005 05:12 pm, Andrew Gallatin wrote: > John Baldwin writes: > > On Friday 16 December 2005 03:52 pm, Andrew Gallatin wrote: > > > John Baldwin writes: > > > > On Friday 16 December 2005 11:34 am, Andrew Gallatin wrote: > > > > Looks like an ithread has preempted your driver's start routine. > > > > If you let it run some more and then break into ddb is the same > > > > thread (pid 11) still running? Also, which process is pid 11? > > It looks like the ithread is looping: > > db> show intrcnt > irq4: sio0 1007 > irq14: ata0 33 > irq17: fwohci0 1 > irq18: ndis0 757379 > irq21: ohci0+ 382 > cpu0: timer 1254872 > db> c > [halt - sent] > KDB: enter: Line break on console > [thread pid 76 tid 100049 ] > Stopped at kdb_enter+0x2f: nop > db> show intrcnt > irq4: sio0 1009 > irq14: ata0 33 > irq17: fwohci0 1 > irq18: ndis0 992263 > irq21: ohci0+ 382 > cpu0: timer 1259314 > > > I know the interrupt is actually disabled in the DPC, and > not in the interrupt handler. That's probably the problem. > The DPC is just never getting scheduled, so the interrupt > line is never lowered. > > Thanks! Yeah, given my recent experience with WDM that approach sounds very problematic since your DPC doesn't run at DIRQL in Windows either, and you really should be shutting your hardware up in your ISR rather than your DPC. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org