Date: Sun, 16 Jul 1995 17:15:07 -0400 (EDT) From: steven ratliff <stratlif@grail.cba.csuohio.edu> To: freebsd-hackers@freebsd.org Subject: SCSI drivers Message-ID: <199507162113.OAA08474@freefall.cdrom.com>
next in thread | raw e-mail | index | archive | help
The following may be irrelevant as I haven't looked at nor understand FreeBSD's current SCSI system but I found the following News article interesting. Particularly the section on error handling and recovery. Someone who does understand FreeBSD's SCSI might want to look at this driver for Ideas on implementing a similar scheme if we don't already do this. This might help with the rash of SCSI device hang reports that have been posted recently. Steve >From news.csuohio.edu!usenet.ins.cwru.edu!ns.mcs.kent.edu!kira.cc.uakron.edu!malgudi.oar.net!cedarnet.cedarville.edu!calvin!newsserv.grfn.org!gumby!newsxfer.itd.umich.edu!agate!howland.reston.ans.net!swrinde!dish.news.pipex.net!pipex!sunic!sunic.sunet.se!news.funet.fi!news.helsinki.fi!not-for-mail Sat Jul 15 12:31:09 1995 Path: news.csuohio.edu!usenet.ins.cwru.edu!ns.mcs.kent.edu!kira.cc.uakron.edu!malgudi.oar.net!cedarnet.cedarville.edu!calvin!newsserv.grfn.org!gumby!newsxfer.itd.umich.edu!agate!howland.reston.ans.net!swrinde!dish.news.pipex.net!pipex!sunic!sunic.sunet.se!news.funet.fi!news.helsinki.fi!not-for-mail From: "Leonard N. Zubkoff" <lnz@dandelion.com> Newsgroups: comp.os.linux.announce Subject: New BusLogic SCSI Driver released for Beta Test Followup-To: comp.os.linux.development.system Date: 12 Jul 1995 17:43:20 +0300 Organization: Dandelion Digital Lines: 139 Sender: wirzeniu@cc.helsinki.fi Approved: linux-announce@news.ornl.gov (Lars Wirzenius) Message-ID: <3u0n28$848@kruuna.helsinki.fi> NNTP-Posting-Host: kruuna.helsinki.fi Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Keywords: Linux, device driver, BusLogic, SCSI, beta test I am pleased to announce the release for public beta test of a completely rewritten Linux driver for BusLogic SCSI Host Adapters. Over the last several months it had become increasingly apparent to me that the existing driver was suffering due to its heritage of being based on the Adaptec 1542 driver, and that the major improvements necessary would best be made by starting fresh. I recently had a conversation with the Senior Product Marketing Manager at BusLogic regarding the needs of free software developers, and he reaffirmed BusLogic's committment to providing the technical information and support we need to take full advantage of their products. BusLogic has been very accomodating in providing technical documentation, as well as access to their engineering staff for technical questions and advice. In addition, they have loaned me ISA cards for configuration testing, and even allowed me use of their technical support lab to test EISA configurations, since I don't have an EISA system. Their interest and support is greatly appreciated. DRIVER FEATURES o Configuration Reporting and Testing During system initialization, this driver reports extensively on the host adapter hardware configuration, including the synchronous transfer parameters negotiated with each target device. In addition, this driver tests the hardware interrupt configuration to verify that interrupts are actually delivered to the interrupt handler. This should catch a high percentage of PCI motherboard configuration errors early, because when the host adapter is probed successfully, most of the remaining problems appear to be related to interrupts. o Performance Features BusLogic SCSI host adapters directly implement SCSI-2 tagged queuing, and so support has been included in this driver to utilize tagged queuing with any target devices that report the tagged queuing capability. SCSI-2 tagged queuing allows for multiple outstanding commands to be issued to each target device, and can improve I/O performance substantially. In addition, BusLogic's Strict Round Robin Mode is used to optimize host adapter performance, and scatter/gather I/O can support as many segments as can be effectively utilized by the I/O subsystem. o Error Recovery This driver implements extensive error recovery procedures. When the higher level parts of the SCSI subsystem request that a command be reset, a bus device reset is first sent to the target device. If two bus device resets have been attempted and no command to the device has completed successfully, then a host adapter hard reset and SCSI bus reset is performed. SCSI bus resets caused by other devices and detected by the host adapter are also handled by issuing a hard reset to the host adapter and full reinitialization. This strategy should improve overall system robustness by preventing individual errant devices from causing the system as a whole to lockup or crash, and thereby allowing a clean shutdown and restart after the offending component is removed. o Shared Interrupts Support On systems that support shared interrupts, any number of BusLogic host adapters may share the same interrupt request channel. This driver scans all registered BusLogic host adapters whenever an interrupt is handled on any interrupt channel assigned to a BusLogic host adapter. o Symmetric Multiprocessing Support While the Linux Kernel is currently limited to uniprocessors, there are efforts being made to support symmetric multiprocessing (SMP) systems. With that in mind, this driver implementation uses separate primitives for disabling processor interrupts versus mediating exclusive access to the host adapter hardware and driver data structures, so that when a symmetric multiprocessing Linux Kernel becomes available, this driver should only need relatively minor changes. o Wide SCSI Support All BusLogic host adapters share a common programming interface, except for the inevitable improvements and extensions as new models are released, so support for Wide SCSI data transfer has automatically been available in existing drivers. This driver adds explicit support for up to 16 Device IDs and 64 Logical Units, to fully exploit the capabilities of the newest BusLogic Wide SCSI host adapters. BETA TESTING I have tested this driver extensively on my own systems running Linux 1.2.8 through 1.2.11 and my production system has been depending on it for over seven weeks now. Nevertheless, each system and combination of peripherals is different and there is no guarantee that unforeseen problems won't arise. In addition, the higher performance nature of this driver, and especially its use of SCSI-2 tagged queuing, may expose underlying weaknesses in systems or peripherals that were not apparent with the older driver. This is BETA TEST software, so take appropriate precautions, including having current system backups and a backup kernel available. The driver has been heavily tested with the 956C and 946C PCI host adapters and with the 445C and 445S VESA host adapters, including up to four PCI host adapters or two VESA host adapters in the same system and operating concurrently. In addition, more limited testing has been performed with the 545C, 540CF, 545S, and 542B ISA host adapters, and with the 747C, 757C, 747S, 757S, and 742A EISA host adapters. While this driver itself should work with 1.3.x with no modification, minor changes to the supporting patches would be necessary for 1.3.x. However, because the 1.3.x kernels are rather unstable, I've chosen to complete my development and testing under the stable 1.2.x kernels. The support for 16 Device IDs will be available when the 1.3.x version is released. The shared interrupts support is untested, as none of my systems provide for this. Please let me know if you test this successfully. FTP LOCATION I ask that people FTP this software directly from ftp.dandelion.com, and not place it on any of the archive FTP sites yet. In due course, I will make it available on the archive sites, and send it to Linus for inclusion in the 1.3.x development kernels. By retrieving the driver directly from my FTP site, and giving a valid email address for anonymous access, I will be able to send a message to all beta testers in the event an urgent problem is discovered. Note that my FTP site does not allow directory listing, so just login as anonymous, set binary transfers, and then issue the command "get BusLogic-1.0-beta.tar.gz". BUG REPORTS Please send bug reports via electronic mail to me at "lnz@dandelion.com". If possible, include with the bug report the complete configuration messages reported by the driver at startup, along with any subsequent system messages relevant to the SCSI subsystem, and a description of your system configuration. Please also be prepared to verify whether the aberrant behavior also occurs with the older BusLogic driver. -- Send submissions for comp.os.linux.announce to: linux-announce@news.ornl.gov PLEASE remember Keywords: and a short description of the software.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507162113.OAA08474>