Annotation of 43BSDReno/share/doc/smm/13.kchanges/vaxmba.t, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1986 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)vaxmba.t    1.6 (Berkeley) 4/11/86
                      6: .\"
                      7: .NH
                      8: VAX MASSBUS device drivers
                      9: .PP
                     10: This section documents the modifications in the drivers for devices
                     11: on the VAX MASSBUS, with sources in \fI/sys/vaxmba\fP,
                     12: as well as general changes made to all disk and tape drivers.
                     13: .NH 2
                     14: General changes in disk drivers
                     15: .PP
                     16: Most of the disk drivers' strategy routines were changed to report
                     17: an end-of-file when attempting to read the first block after the end
                     18: of a partition.
                     19: Distinct errors are returned for nonexistent drives,
                     20: blocks out of range, and hard I/O errors.
                     21: The \fIdkblock\fP and \fIdkunit\fP macros once used to support
                     22: disk interleaving were removed, as interleaving makes no sense
                     23: with the current file system organization.
                     24: Messages for recoverable errors, such as soft ECC's,
                     25: are now handled by \fIlog\fP instead of \fIprintf\fP.
                     26: .NH 2
                     27: General changes in tape drivers
                     28: .PP
                     29: The open functions in the tape drivers now return sensible errors
                     30: if a drive is in use.
                     31: They save a pointer to the user's terminal when opened,
                     32: so that error messages from interrupt level may be printed
                     33: on the user's terminal using \fItprintf\fP.
                     34: .NH 2
                     35: Modifications to individual MASSBUS device drivers
                     36: .XP hp.c
                     37: Error recovery in the MASSBUS disk driver is considerably better now
                     38: than it was.
                     39: The driver deals with multiple errors in the same transfer
                     40: much more gracefully.
                     41: Earlier versions could go into an endless loop correcting one error,
                     42: then retrying the transfer from the beginning when a second error
                     43: was encountered.
                     44: The driver now restarts with the first sector not yet successfully
                     45: transferred.
                     46: ECC correction is now possible on bad-sector replacements.
                     47: The correct sector number is now printed in most error messages.
                     48: The code to decide whether to initiate a data transfer or
                     49: whether to do a search was corrected, and the \fIsdist/rdist\fP parameters
                     50: were split into three parameters for each drive: the minimum and maximum
                     51: rotational distances from the desired sector between which to start
                     52: a transfer, and the number of sectors to allow after a search before 
                     53: the desired sector.
                     54: The values chosen for these parameters are probably still not optimal.
                     55: .XP
                     56: There were races when doing a retry on one drive that continued with
                     57: a repositioning command (recal or seek) and when then beginning a data transfer
                     58: on another drive.
                     59: These were corrected by using a distinguished
                     60: return value, MBD_REPOSITION, from \fIhpdtint\fP to change the controller
                     61: state when reverting to positioning operations during a recovery.
                     62: The remaining steps in the recovery are then managed by \fIhpustart\fP.
                     63: Offset commands were previously done under interrupt control,
                     64: but only on the same retries as recals (every eighth retry starting
                     65: with the fourth).
                     66: They are now done on each read retry after the 16th and are done
                     67: by busy-waiting to avoid the race described above.
                     68: The tests in the error decoding section of the interrupt
                     69: handler were rearranged for clarity and to simplify the tests
                     70: for special conditions such as format operations.
                     71: The \fIhpdtint\fP times out if the drive does not become ready
                     72: after an interrupt rather than hanging at high priority.
                     73: When forwarding bad sectors, \fIhpecc\fP correctly handles partial-sector
                     74: transfers; prior versions would transfer a full sector, then continue
                     75: with a negative byte count, encountering an invalid map register immediately
                     76: thereafter.
                     77: Partial-sector transfers are requested by the virtual memory system
                     78: when swapping page tables.
                     79: .XP mba.c
                     80: The top level MASSBUS driver supports the new return code from data-transfer
                     81: interrupts that indicate a return to positioning commands before restarting
                     82: a data transfer.
                     83: It is capable of restarting a transfer after partial completion and
                     84: adjusting the starting address and byte count according to the amount
                     85: remaining.
                     86: It has also been modified to support data transfers in reverse,
                     87: required for proper error recovery on the TU78.
                     88: \fIMbustart\fP does not check drives to see that they are present,
                     89: as dual-ported disks may appear to have a type of zero
                     90: if the other port is using the disk;
                     91: in this case, the disk unit start will return MBU_BUSY.
                     92: .XP mt.c
                     93: The TU78 driver has been extensively modified and tested
                     94: to do better error recovery and to support additional operations.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.