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.=20

This driver is still under development. Patches are hosted at the ftp site=
=20
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=20
    100% scalability.

Notes:
(1) Only supported by the LSI53C1010 and not yet=20
    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.
  =20
Files:
  README.sym=09=09this file
  sym_conf.h=09=09driver configuration
  sym_defs.h=09=09driver definitions
  sym_hipd.c=09=09driver code
  sym_sys.patch=09=09kernel 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=20
     /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=20
     ignore SYM53C8XX chips that support LOAD/STORE. These devices will=20
     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=20
  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=20
  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=20
  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=20
  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 targe=
t=20
  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=20
  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.=20

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=3D/dev/rda0 of=3D/dev/null ibs=3D4096 obs=3D16384 count=3D200000 &
dd if=3D/dev/rda1 of=3D/dev/null ibs=3D4096 obs=3D16384 count=3D200000 &

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

- Total latency per IO =3D 112 micro-seconds  (8900 Tps)
- 4K transfer time, assuming 80 MB/s transfer, =3D 50 micro-seconds=20
- So, the total command overhead without data transfer is less=20
  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.=20

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

G=E9rard.=20



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>