From owner-freebsd-hackers Sun Sep 7 16:00:21 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id QAA15962 for hackers-outgoing; Sun, 7 Sep 1997 16:00:21 -0700 (PDT) Received: from usr04.primenet.com (tlambert@usr04.primenet.com [206.165.6.204]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id QAA15954 for ; Sun, 7 Sep 1997 16:00:12 -0700 (PDT) Received: (from tlambert@localhost) by usr04.primenet.com (8.8.5/8.8.5) id QAA23747; Sun, 7 Sep 1997 16:00:03 -0700 (MST) From: Terry Lambert Message-Id: <199709072300.QAA23747@usr04.primenet.com> Subject: Re: Tape question To: joerg_wunsch@uriah.heep.sax.de Date: Sun, 7 Sep 1997 23:00:03 +0000 (GMT) Cc: hackers@FreeBSD.ORG In-Reply-To: <19970908001216.PA02497@uriah.heep.sax.de> from "J Wunsch" at Sep 8, 97 00:12:16 am X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > Fourth, a raw device can be written to pad requests to media block > > boundries, despite it appearing to be a character at a time device. > > We aren't talking about media block boundaries. We are talking about > variable-length recording media, i.e. the media block boundary is just > what you've been requesting in your write(2) syscall. Sorry; I was unclear. I should have said "a raw device *driver*". The drivers in the SVR3 NCR Tower XP and Tower 32 boxes would not read partial blocks, even though the physical hardware could support it (the same NCR controller chip and drive was used on the Arete 1100's OEM'ed by Unisys, which did not have the problem). I used to have to borrow machines to port software (it was one of the many reasons I hate prototype function declarations and the volatile keyword: most of the 140 machines I had to maintain ports were K&R compilers); we had an SCO box with a Computone tape controller and a QIC tape drive (the controller could be soft switched when the power was off between QIC-11 and QIC-24; I hardware hacked a toggle switch to do this, since Sun 3's only had QIC-11). We used this box to write the source tapes we used to go do the port. The point being that if I didn't do tar xvf - sources | dd obs=20 conv=osync of=/dev/rst0 To write the tapes on the SCO box, the last block of data, which would otherwise be a partial block, could not be read on the NCR boxes (and Convergent, CCI, and a couple others that nobody ever heard of since). It was a driver issue, and resulted in symptoms exactly like those the original poster was seeing. For what it's worth, knowing that the source box is a Sun box, and knowing the hardware is capable of partial block writes, and knowing that the Sun boxes had the same problem writing tapes that could be read by the NCR Towers, it's pretty obvious that the driver is having fits on partial block reads. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.