Skip site navigation (1)Skip section navigation (2)
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>