Kai Makisara wrote:
> On Sat, 15 Apr 2000, Kai Makisara wrote:
> > On Fri, 14 Apr 2000, Eric Lee Green wrote:
> > > Jim Hammack wrote:
> > > > How can I read > 32 Kbytes from a generic scsi device? I am running
> > > > kernel 2.2.13 and using a Sony SDT-9000 DAT drive. I have data tapes
> > > > with a 40960 byte block size. I can read these tapes okay on an SGI
> > > > under IRIX 6.5, but under Linux I only get 32K bytes.
> > >
> > > That is correct. Linux currently by default only allows a maximum of 32K bytes
> > > in fixed-block mode. This has been identified as a problem.
> > >
> > Looking at the source of the 2.3.99-pre5 source, it should be easy to fix
> > this problem. The following patch compiles but I have not tested it at
> > all:
> >
> It did not work ;-( The following patch has been tested and seems to work:
Whoa, fast work :-). Now I can get back to hacking 'mtx' so that it
properly requests the element status mode page prior to attempting
READ_ELEMENT_STATUS so that it knows how many bytes it *REALLY* needs to
request :-).
I'll try out your patch Monday at the office, where I have a few (!)
tape drives to test it with.
Oh, BTW, where I ran across this was because I was testing the partition
patch (which works great, BTW, it worked correctly on every tape drive I
could get my hands on), and decided to see what happened at the end of a
partition as block size increased -- i.e., whether I could overrun the
warning zone if I made the block size too large. I found one tape drive
(manufacturer omitted to protect the guilty, but its name starts with
"S" :-) that did not implement a warning zone at all on partition #1!
But anyhow, that's where I hit the 32K limit on fixed block size. I
could have swore I mentioned to you, Kai, but things have been so hectic
lately that it might have gotten lost in my "ToDo" clutter...
Another thing dealing with block sizes: in variable block mode, when a
write() is bigger than the maximum block size that the tape drive will
accept. For example, I think it was either the Seagate AIT or Seagate
DAT that had a maximum block size of only 64K blocks. I had the st
driver compiled in debug mode so I was getting lots of debug info in my
syslog, amongst which was the status stuff where the driver reported
that the maximum block size was only 64K blocks. So I tried to write a
128K block, and of course the drive reported a SCSI error, "Invalid
Request".
Should we perhaps have turned that into *TWO* SCSI Write() commands?
I guess that means that Monday I just created more work for myself, to
see what happens on a variety of tape drives ....
--
Eric Lee Green [EMAIL PROTECTED]
http://members.tripod.com/e_l_green/
There Is No Conspiracy
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]