Annotation of 43BSDReno/share/doc/smm/13.kchanges/vaxmba.t, revision 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.