chris@mddc.UUCP (Chris Maloney) (05/02/84)
Can some one explain how bad blocks are(should) handled on the UDA50 disks by the 4.2 driver? Is the bad block handling really done by the disk and controller? What must the driver do? What does the comment in the 4.2 driver mean where under the TODO list is listed "bad-block forwarding"? We've been running 8 UDA based systems without any trouble until recently. One of these disk now gets a bad block in the same location all the time. I'm going to reformat and see what happens. Is this correct? My on theroy. Once the bad block has been re-mapped the disk/controller ensures than when the bad block is read/written it is really re-mapped without the driver having to worry. What is missing from the 4.2 driver is the code that reckonizes a new bad block and requests the disk/controller to re-map this block. Please respond with a follow up if you know as I'm sure a lot of people are using these disks without knowing what is really going on. Thanks, Chris Maloney Management Decisions Development Corp. 7209 Dixie Highway Fairfield, Ohio 45014 (513)874-6464 ...{ucbvax,decvax,inhp4,mhuxi}!cbosgd!mddc!chris (uucp) cbosgd!mddc!chris@BERKELEY (arpa)
tony@qtlon.UUCP (05/05/84)
<> (This is in reply to a message asking for information/driver) The UDA50 controller is able to forward bad blocks ONCE the forwarding information has been set up. The forwarding table is set up at format time and may be updated dynamically by the device driver when a new bad block is detected. The controller is not able to write forwarding table or select which block is to be used as a replacement. The following is a brief description of the method involved. DEC SDI Standard Disk Format bad block Replacement and Caching Table (RCT) format from the book of the same name LBN = logical block number RBN = replacement block number The RCT consists of a number of blocks containing the following: sector 0: header/status information sector 1: contents of replaced LBN sectors 2-: replacement entries, 1 per RBN with MSCP (eg UDA50/RA80 combination) the sequence of events for replacing a bad block so that it will automatically be forwarded by the controller are: 1) update the RCT: if the replacement sector is on the same track as the bad one then it is a primary replacement, if it isn't it is a secondary replacement unless the sector header of the bad block is corrupt in which case it is a tertiary replacement. 2) issue a REPLACE command to the controller. The controller tries to write replacement info into some part of the bad block and set the bad block flag. If the header is bad or this is not possible then it is a tertiary replacement. 3) initialise the replacement block by issueing a WRITE command Primary and secondary replacement blocks can be replaced directly by the controller accessing the working parts of the bad block. Tertiary replacement is performed by the controller reading through the RCT The RCT is located at the end of the physical disk. On the RA80 drives there is one replacement block per track, but this does not mean that only one block on a track may be replaced. There are 4.1 and 4.2 versions of this driver which may be obtained by sending mail to me at the address below. A System V version is under development and will be available later this year. ____________________________________________________________ Tony Sumpter, Quantime Ltd. UUCP: {decvax,cbosgd,vax135}!qusavx!qtlon!tony ukc!qtlon!tony Phone: +44 1 637 7061