Subject: Attention FD-88x and Seagate ST0x owners :
From: [email-masked] (Drew Eckhardt)
Date: Thu, 22 Apr 1993 08:42:51 GMT
Newsgroups: comp.os.linux.announce

If you have a Seagate ST01/ST02, or Future Domain TMC-88x board
and haven't tried my patches, do it.  The performance increase is
rather significant - I personally went from 60K/sec to ~220K/sec
on a drive with a 330K/sec headrate, other people have claimed
> 600K/sec when blind transfers were enabled on reasonably 
quick disks.

If you have used the patches and have been complaining about them
not getting into the kernel, you can stop sending me hate mail, 
I finally submitted a working set of patches to Linus so they should be
it the next release.

In any case, if you didn't get a copy of the patches from the SCSI-CHANNEL
of linux-activists, here patches against .99.8a (you may have problems 
with RCSids, but everything else is fine).

The following patches and  consist of the patches I posted to the net, 
an increase in the selection timeout value (this helped some people who
were having problems with device recognition, especially in the 
case of empty removeable media devices), code for the
HDIO_GETGEO ioctl grabbed from my development sources,
and a small patch to the Makefile so -DFAST32 and optimization 
are used by default (The Seagates always tie the SCSI REQ line 
to the PC BUS I/O channel ready line, so the hardware handshaking 
works fine without 0ws, although not as quickly).

I changed two ~30M nefs filesystems to ext2 filesystems, and 
in the process parked a couple of > 10M .tar.z files on the SCSI
disk with no problems, so everything is probably very stable.

Your mileage may vary.

HDIO_GETGEO : 

This will let you run a partitioning program without specifying the 
geometry manually.

For disk geometry, Seagate uses the real geometry of the 
disk, as obtained from information in the rigid disk geometry
and format mode pages.  The number of cylinders is adjusted 
to reflect to formatted capacity, with the last "cylinder" 
(ie, what would be the Customer Engineer cylinder on a normal disk) 
being something less than a full cylinder.

The SCSI mode pages aren't restricted by the PC's braindead 64 sector / 
1024 cylinder BIOS interface, and are allowed to return things outside 
of this range.  Also, straight SCSI-I (Most drives are at least 
SCSI-I CCS) disks don't have the standard mode pages needed - earlier
Seagates would refuse to work with such drives, but I don't know 
what newer BIOS's do, and tech. support was very unhelpful.

When I see these disks, the ioctl() fails.  So, if someone is 
successfully using a seagate under DOS, etc.  with a newer drive that 
has more than 1024 real cylinders or a straight SCSI-I disk (ie, the 
linux bootup code says SCSI-I under Revision, not SCSI-I CCS) please 
let me know - I have a short program that will all the mode pages of 
any SCSI device (It's a hex dump, interpretation is left as an exercise 
for the reader) and we can find out exactly what the Seagate does in 
these cases through a little reverse engineering.

Here's a uuencoded, gzip'd, unified diff : 

-- 
Boycott USL/Novell for their absurd anti-BSDI lawsuit. | Drew Eckhardt
Condemn Colorado for Amendment Two.		       | [email-masked]
Use Linux, the fast, flexible, and free 386 unix       |