sid@ucbvax.berkeley.edu (S. Cowles) (12/08/90)
I've had trouble with the following operation: dd if=gigo of=/dev/rmt8 obs=XXk conv=sync the computer running this is a Sun 3/280 with 4.0.3, the tape drive is a Fujitsu 244X set at 6250bpi. For XX, the largest number I've had success with is 63K. I'd like to use 256k but dd complains that there is an invalid write parameter. When XX is 63 and smaller, the operation works fine, no surprises. 64 and larger blocksizes cause the error. Anyone have any ideas? Thanks. scowles@ccc.nersc.gov
henry@zoo.toronto.edu (Henry Spencer) (12/09/90)
In article <638@brchh104.bnr.ca> mtxinu!sybase!sid@ucbvax.berkeley.edu (S. Cowles) writes: >...When XX is 63 and smaller, the operation works >fine, no surprises. 64 and larger blocksizes cause the error... You don't specify what controller your magtape drive is on. For a guess, it's a Xylogics 472. The byte-count field on that controller is 16 bits. It is incapable of writing a block bigger than 64K-1 bytes. "The average pointer, statistically, |Henry Spencer at U of Toronto Zoology points somewhere in X." -Hugh Redelmeier| henry@zoo.toronto.edu utzoo!henry
wolfgang@uunet.uu.net (Wolfgang S. Rupprecht) (12/11/90)
henry@zoo.toronto.edu (Henry Spencer) writes: >In article <638@brchh104.bnr.ca> mtxinu!sybase!sid@ucbvax.berkeley.edu (S. Cowles) writes: >>...When XX is 63 and smaller, the operation works >>fine, no surprises. 64 and larger blocksizes cause the error... >You don't specify what controller your magtape drive is on. For a guess, >it's a Xylogics 472. The byte-count field on that controller is 16 bits. >It is incapable of writing a block bigger than 64K-1 bytes. SCSI itself has a similar limit. Thats why one can't get more than 126 blocks of 512 bytes in one tape read or write. Wolfgang Rupprecht wolfgang@wsrcc.com (or) uunet!wsrcc!wolfgang Snail Mail Address: Box 6524, Alexandria, VA 22306-0524
hue@island.uu.net (Colonel Panic) (12/19/90)
In article <747@brchh104.bnr.ca>, wsrcc!wolfgang@uunet.uu.net (Wolfgang S. Rupprecht) writes: > henry@zoo.toronto.edu (Henry Spencer) writes: > >You don't specify what controller your magtape drive is on. For a guess, > >it's a Xylogics 472. The byte-count field on that controller is 16 bits. > >It is incapable of writing a block bigger than 64K-1 bytes. > > SCSI itself has a similar limit. Thats why one can't get more than 126 > blocks of 512 bytes in one tape read or write. Wrong. The obvious reason why there is a 63K limit is that most device drivers don't supply their own minphys(), but just hand physio() the default minphys(), which (historically) limits the size of raw I/O to 63K. I believe this dates back to limitations of the UNIBUS mapping registers on the PDP-11. (I'm not that old, I just heard this and it made sense) This means you'll probably not be able to write a tape block > 63K even if the tape controller supports it. [41]island:hue: adb /vmunix minphys?6i _minphys: _minphys: linkw a6,#0 movl a6@(8),a0 cmpl #0xfc00,a0@(0x14) bles _minphys+0x1a movl #0xfc00,a0@(0x14) unlk a6 Hmm, looks like a brave (or foolish) soul could kick this number up if they had only a binary of the device driver and really wanted to see if they could get xfers > 63K. I bet there are drivers out there that depend on their strategy routine never being passed a buffer with b_bcount >=64K. Jonathan Hue Island Graphics Corp. uunet!island!hue hue@island.com