Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Sep 1999 22:45:15 +0200 (MET DST)
From:      Gerard Roudier <groudier@club-internet.fr>
To:        scsi@FreeBSD.ORG
Subject:   sym driver 0.3.0
Message-ID:  <Pine.LNX.3.95.990925220854.343A-100000@localhost>
In-Reply-To: <Pine.LNX.3.95.990923234606.349B-200000@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help


Hello,

I have made available revision 0.3.0 of the sym_hipd driver for
FreeBSD-CAM.  This driver version behaves correctly on QUEUE FULL
condition and has been rock solid for me. 

This driver is still under development. Patches are hosted at the ftp site 
with the ncr53c8xx/sym53c8xx drivers updates:

   ftp://ftp.tux.org/pub/roudier/drivers/freebsd/experimental/

Here's an excerpt of the README file:
-------------------------------------------------------------------------
Status:
   EXPERIMENTAL
   This driver is currently developped under the following O/S:
         FreeBSD 4.0 SNAPSHOT July 5th 1999

Latest revision:
   sym-0.3.0-1990925

Supported SCSI features:
  - Initiator mode
  - Wide 16 SCSI BUS
  - FAST10 up to FAST80-DT synchronous data transfers (1)
    (depends on controller capabilities)
  - 64 luns per target
  - 256 tags per lun (3)
  - MDP (2)
  - BUS DEVICE RESET message (2)
  - ABORT, ABORT TAG message (2)

Supported chip features:
  - On chip RAM
  - PCI optimized transactions.

Supported features of 896/895A/1010:
  - Full SCRIPTS in on-board RAM (8K)
  - Phase mismatch handling from SCRIPTS.

Others:
  - SYMBIOS NVRAM layout using 24c16 EEPROM
  - TEKRAM  NVRAM layout using 24c16 EEPROM (2)
  - TEKRAM  NVRAM layout using 93c46 EEPROM
  - Transfer residuals
  - 0(1) for both SCRIPTS and C code, allowing 
    100% scalability.

Notes:
(1) Only supported by the LSI53C1010 and not yet 
    tested due to lack of C1010 based controller.
(2) Not yet checked. May not work as expected.
(3) Tags/Lun set to 64 for the moment.
   
Files:
  README.sym		this file
  sym_conf.h		driver configuration
  sym_defs.h		driver definitions
  sym_hipd.c		driver code
  sym_sys.patch		kernel patch

Installation:
  1) Untar SYM-0.0.0-990915.tar.gz
  2) Copy README.sym, sym_conf.h, sym_defs.h and sym_hipd.c to 
     /usr/src/sys/pci/
  3) Change to /usr/src/sys/ directory
  4) Apply the unified patch sym_sys.patch (only if ncr also configured)
     This patch applies a change to the ncr.c driver that forces it to 
     ignore SYM53C8XX chips that support LOAD/STORE. These devices will 
     be attached by the sym_hipd.c driver.
  5) Change to /usr/src/sys/pci/ directory
     Apply the following patches in that order:
         PATCH-SYM-0.1.0-19990919
         PATCH-SYM-0.2.0-19990922
         PATCH-SYM-0.3.0-19990925

Configuring and building the kernel:
  Since only people that know what they do are allowed to use 
  this driver, such an operation should be just trivial for them. :-)

Warnings:
- The error recovery pathes of this driver haven't yet been fully tested.
  For this reason, you should not install this driver on a system that 
  is known to experience SCSI errors other than QUEUE FULL status.
  (The QUEUE FULL handling has been tested and fixed in revision 0.3.0)
- This driver uses LOAD/STORE instructions from SCRIPTS and thus does 
  not support earliest NCR chips (NCR53C810, NCR53C815, NCR53C825).

Versionning:
- The version number consists in 3 numbers X.Y.Z, starting with 0.0.0.
- Z will not be used for incremental patches, but may be used for 
  quick fixes.
- Incremental diff files are of the following pattern:
            PATCH-SYM-X.Y.Z-YYYYMMDD
  They must be applied from directory: /usr/src/sys/pci/
- Version 1.0.0 will add support for the C1010 (Ultra-3 DT data transfers)
- Version 2.0.0 is not planned for now, but will add support for host target 
  mode if it will ever exist.

Change log:
* SYM-0.0.0-19990915
  Initial release.

* SYM-0.1.0-19990919  (diff file PATCH-SYM-0.1.0-19990919
  Add NVRAM support for latest Tekram boards using 24c16 EEPROM.

* SYM-0.2.0-19990922  (diff file PATCH-SYM-0.2.0-19990922
  Add PPR negotiation and Ultra3 DT transfers for the LSI53C1010.
  This corresponding code is untested since I haven't yet the 
  hardware. But the driver is not broken for current chips.

* SYM-0.5.0-19990925  (diff file PATCH-SYM-0.2.0-19990925
  Source review.
  Testing of the QUEUE FULL handling (some fixes applied).

--------------------------------------------------------------------------

The driver is very fast for me. My 2 fastest HDs (DRVS LVD and Cheatah2
LVD) are not enough to really overload a single SCSI channel of the 896. 

Latency seems very low.
For exemple, reading the both drives using 'dd' at the same time, I get
the following results:

IO chunk    Tps
1K          11600
2K          10600
3K           9450
4K           8900

Ex. for 4K chunk:
dd if=/dev/rda0 of=/dev/null ibs=4096 obs=16384 count=200000 &
dd if=/dev/rda1 of=/dev/null ibs=4096 obs=16384 count=200000 &

The result for 4K IO chunk is very interesting, since the hard disks are 
mostly streaming data at their full sustaint data rate with this test.

- Total latency per IO = 112 micro-seconds  (8900 Tps)
- 4K transfer time, assuming 80 MB/s transfer, = 50 micro-seconds 
- So, the total command overhead without data transfer is less 
  than 62 micro-seconds.

For sure, faster things exist, but I would be interested in knowing about
how similar controllers from other vendors actually perform in the same
situation. 

By the way, a SYM53C895 will give about same result.

Gérard. 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.3.95.990925220854.343A-100000>