From owner-freebsd-hackers@FreeBSD.ORG Mon Apr 11 07:36:21 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C0631065672; Mon, 11 Apr 2011 07:36:21 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe08.c2i.net [212.247.154.226]) by mx1.freebsd.org (Postfix) with ESMTP id 012788FC1F; Mon, 11 Apr 2011 07:36:20 +0000 (UTC) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.1 cv=6QwXiDozn7Gnsf2tGidwH+ndAwLlGixx7JAIKZICKmI= c=1 sm=1 a=IU0TiZmyZPMA:10 a=w6hOy3w7ACoA:10 a=WQU8e4WWZSUA:10 a=8nJEP1OIZ-IA:10 a=CL8lFSKtTFcA:10 a=i9M/sDlu2rpZ9XS819oYzg==:17 a=L6tdpFjRAAAA:8 a=-mmsfIQ70veC9lWLMqEA:9 a=kt4sO8lXSNaTAiA8-_IA:7 a=wPNLvfGTeEIA:10 a=RZHap4myAk8A:10 a=i9M/sDlu2rpZ9XS819oYzg==:117 Received: from [188.126.198.129] (account mc467741@c2i.net HELO laptop002.hselasky.homeunix.org) by mailfe08.swip.net (CommuniGate Pro SMTP 5.2.19) with ESMTPA id 112377227; Mon, 11 Apr 2011 09:26:17 +0200 From: Hans Petter Selasky To: freebsd-hackers@freebsd.org Date: Mon, 11 Apr 2011 09:25:16 +0200 User-Agent: KMail/1.13.5 (FreeBSD/8.2-PRERELEASE; KDE/4.4.5; amd64; ; ) References: <8CDC60330838A41-18FC-694F@web-mmc-m02.sysops.aol.com> In-Reply-To: <8CDC60330838A41-18FC-694F@web-mmc-m02.sysops.aol.com> X-Face: *nPdTl_}RuAI6^PVpA02T?$%Xa^>@hE0uyUIoiha$pC:9TVgl.Oq, NwSZ4V"|LR.+tj}g5 %V,x^qOs~mnU3]Gn; cQLv&.N>TrxmSFf+p6(30a/{)KUU!s}w\IhQBj}[g}bj0I3^glmC( :AuzV9:.hESm-x4h240C`9=w MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201104110925.16882.hselasky@c2i.net> Cc: freebsd-drivers@freebsd.org, dieterbsd@engineer.com Subject: Re: Need an alternative to DELAY() X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Apr 2011 07:36:21 -0000 On Monday 11 April 2011 03:59:13 dieterbsd@engineer.com wrote: > FreeBSD 8.2 amd64 uniprocessor > > kernel: siisch1: DISCONNECT requested > kernel: siisch1: SIIS reset... > kernel: siisch1: siis_sata_connect() calling DELAY(1000) > last message repeated 59 times > kernel: siisch1: SATA connect time=60ms status=00000123 > kernel: siisch1: SIIS reset done: devices=00000001 > kernel: siisch1: DISCONNECT requested > kernel: siisch1: SIIS reset... > kernel: siisch1: siis_sata_connect() calling DELAY(1000) > last message repeated 58 times > kernel: siisch1: SATA connect time=59ms status=00000123 > ... > kernel: siisch0: siis_wait_ready() calling DELAY(1000) > last message repeated 1300 times > kernel: siisch0: port is not ready (timeout 10000ms) status = 001f2000 > > Meanwhile, *everything* comes to a screeching halt. Device > drivers are locked out, and thus incoming data is lost. > Losing incoming data is unacceptable. > > Need an alternative to DELAY() that does not lock out > other device drivers. There must be a way to reset one > bit of hardware without locking down the entire machine. Hi, An alternative to DELAY() is the simplest solution. You probably need to do some redesign in the SCSI layer to find a better solution. --HPS