*BSD News Article 3920


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!mips!mips!darwin.sura.net!Sirius.dfn.de!zrz.tu-berlin.de!gmdtub!bigfoot!tmh
From: tmh@doppel.first.gmd.de (Thomas Hoberg)
Newsgroups: comp.unix.bsd
Subject: Re: SCSI driver bug when accessing DOS partition
Message-ID: <TMH.92Aug20013232@doppel.first.gmd.de>
Date: 19 Aug 92 23:32:32 GMT
References: <1992Aug19.020535.2080@noose.ecn.purdue.edu>
Sender: news@bigfoot.first.gmd.de
Organization: GMD-FIRST, Berlin
Lines: 36
In-reply-to: tgt@neon.ecn.purdue.edu's message of 19 Aug 92 02:05:35 GMT

In article <1992Aug19.020535.2080@noose.ecn.purdue.edu> tgt@neon.ecn.purdue.edu (Conan the Librarian) writes:

   I ran across the following Adaptec driver bug when attempting to configure
   mtools to read an 80 Mb DOS partition d:, which is on a SCSI disk.  The
   problem: the SCSI driver routine asstart (in the file /sys/i386/isa/as.c)
   fails with the message "out of range, cannot happen?" (due to
   nscatter==NSCATTER, which means nothing to me!!).  This subsequently
   causes the disk_read() routine of mtools (in the file buf_read()) to fail,
   printing the message "disk_read: read: Device not configured"

This is not a bug but simply a limitation of the current SCSI driver.
The Adaptec allows you to bundle a couple of reads together in a
scatter list. The hardware maximum size for this list is 16/17 entries
per mailbox. Since the Intel CPUs have a 4k page size at most 16 pages
of 4k can be read with a single command (64k). At a 2k cluster size
DOS allocates twice as many sectors for the FAT as there are megabytes
in the partition. With partition sizes greater 64MB the fat_read()
routines requests a read of more than 64k which then failes with that
warning. There are several workarounds:
1) use the block device (slow, but the easiest)
2) hack mtools to do it's own buffering (some work)
3) use a bigger cluster size for your DOS partition (more wasted disk
space)

Of course the best thing would be to enhance the Adaptec driver to
support command chaining (even more work). There is a new Adaptec
driver by Julian Fletcher (sp?) under evaluation, maybe that will fix
the problem.

---
Thomas M. Hoberg   | Internet: tmh@first.gmd.de
1000 Berlin 41     |           tmh@cs.tu-berlin.de
Wielandstr. 4      |
Germany            | BITNET:   tmh@tub.bitnet 
+49-30-851-50-21   |