SCSI Subsystem questions

Tony Cooper tony at tui.marcam.dsir.govt.nz
Tue Jun 11 16:09:46 AEST 1991


In article <11748 at ncar.ucar.edu>, cruff at ncar.ucar.edu (Craig Ruff) writes:
|> I'm trying to write a driver for the TEAC MT-2ST/N50 150MB cassette
tape drive.
|> 	Does the SCSI subsystem on A/UX 2.0.1 behave the same way as is
|> 	documented in the device driver kit (for 2.0)?

My driver, written under and for A/UX 1.1, works fine with 2.0.1.

|> 	Why does the SCSI subsystem insist on aborting a command that
|> 	does not transfer as much data as you requested (i.e. SST_MORE)?
|> 	Why not complete normally and let the caller decide?

Good question. I'd much rather have the user decide.

|> 
|> 	Is it safe to call scsireq from the completion routine?

I do. Doesn't mean it's safe however. But I think it was designed to be safe
since it is a natural way to set up the next req when the first one is done.

|> 	Why does physio insist on 8192 byte sized chunks?  This really
|> 	inhibits streaming the drive.

Good question. Even more gooder a question is "Why is there just one physio
buffer to be shared by all physical I/O? This means that there can be a long
queue of processes all waiting for one buffer to be free". I/O usually occurs
in pairs when using tape drives ie from disk to kernel, from kernel to tape.
Both I/O's have to share the same buffer so overlapping I/O is not possible.
Even more gooderer a question "Why is physio not really phys io?" Ie physio
is supposed to copy straight from user space to a device but A/UX copies it
to kernel memory first.

In practice, none of this makes much difference. The physio buffer is nearly
always free, and the size of the buffer does not improve streaming. Try it and
see.

Cheers,
Tony Cooper



More information about the Comp.unix.aux mailing list