From owner-freebsd-current@FreeBSD.ORG Fri Dec 16 22:12:27 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 D358416A41F; Fri, 16 Dec 2005 22:12:27 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2817943D5C; Fri, 16 Dec 2005 22:12:27 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.13.4/8.13.4) with ESMTP id jBGMCQET005033 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 16 Dec 2005 17:12:26 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.12.9p2/8.12.9/Submit) id jBGMCLd7036313; Fri, 16 Dec 2005 17:12:21 -0500 (EST) (envelope-from gallatin) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17315.15301.316482.649755@grasshopper.cs.duke.edu> Date: Fri, 16 Dec 2005 17:12:21 -0500 (EST) To: John Baldwin In-Reply-To: <200512161638.03037.jhb@freebsd.org> References: <17314.60552.595375.783753@grasshopper.cs.duke.edu> <200512161454.22232.jhb@freebsd.org> <17315.10532.603357.165238@grasshopper.cs.duke.edu> <200512161638.03037.jhb@freebsd.org> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid 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: Fri, 16 Dec 2005 22:12:28 -0000 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! Drew