From owner-freebsd-scsi Sun May 23 5:26:46 1999 Delivered-To: freebsd-scsi@freebsd.org Received: from ren.detir.qld.gov.au (ns.detir.qld.gov.au [203.46.81.66]) by hub.freebsd.org (Postfix) with ESMTP id 50857152EB for ; Sun, 23 May 1999 05:26:39 -0700 (PDT) (envelope-from syssgm@detir.qld.gov.au) Received: by ren.detir.qld.gov.au; id WAA10648; Sun, 23 May 1999 22:25:16 +1000 (EST) Received: from ogre.detir.qld.gov.au(167.123.8.3) by ren.detir.qld.gov.au via smap (4.1) id xma010645; Sun, 23 May 99 22:25:04 +1000 Received: from atlas.detir.qld.gov.au (atlas.detir.qld.gov.au [167.123.8.9]) by ogre.detir.qld.gov.au (8.8.8/8.8.7) with ESMTP id WAA29681 for ; Sun, 23 May 1999 22:25:04 +1000 (EST) Received: from nymph.detir.qld.gov.au (nymph.detir.qld.gov.au [167.123.10.10]) by atlas.detir.qld.gov.au (8.8.5/8.8.5) with ESMTP id WAA21108 for ; Sun, 23 May 1999 22:25:03 +1000 (EST) Received: from nymph.detir.qld.gov.au (localhost.detir.qld.gov.au [127.0.0.1]) by nymph.detir.qld.gov.au (8.8.8/8.8.7) with ESMTP id WAA05009; Sun, 23 May 1999 22:25:02 +1000 (EST) (envelope-from syssgm@nymph.detir.qld.gov.au) Message-Id: <199905231225.WAA05009@nymph.detir.qld.gov.au> To: freebsd-scsi@freebsd.org Cc: syssgm@detir.qld.gov.au Subject: aha1542 brokenness, and CAM technique query Date: Sun, 23 May 1999 22:25:01 +1000 From: Stephen McKay Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The recent insertion of a 10ms delay in ahafetchtransinfo() does not help my -current box. The delay required is related to the number of devices on the chain, and my box needs 11ms. Big deal, you say? Well, the true answer is that aha_cmd() is broken, and there is no easy fix that I know of. Fiddling with splcam() is not sufficient. aha_cmd() should not be called if there are any other scsi commands in flight. Otherwise, AOP_START_MBOX might be issued in the *middle* of another command. This is impossible with the 1542 since there is just one shared command and parameter port, and the two colliding commands fail. Lucky that, since issuing random scsi commands is a file system scrambler. So, either I implement some sort of mutex in the bowels of the driver, or there is a simple way of telling CAM to single thread things for a while. Please, CAM experts, let me know if this is easy. Otherwise, I will do it the hard way. Stephen. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message