Generic Disk Driver Enhancement
Generic Disk Driver
Enhancement
Jim Hawkins and Hari L., vCSY
Introduction
Historically MPE/iX HP e3000 customers have been advised to only use disk devices that were sold and
supported by HP. This advice was based upon the design of the MPE/iX disk drivers which depend upon
features of the device hardware and firmware to guarantee reliable storage of data. In order to assist HP
e3000 customers in their desire to run their systems for as long as possible and, as result of the Interex
System Improvement Ballot (SIB), the Generic Disk Driver Enhancement (GDD) has been designed to
remove as many of this dependencies as possible while still retaining the data durability that the HP
e3000 is famous for.
It is made available via patch MPENX24 for C.75.00.
Caution: HP advises customers to always seek to use HP branded disk devices as a first choice, then
to try the OEM versions of these devices and, only after these options are exhausted, move to devices
from other manufacturers. HP in no way guarantees that any “non-HP” SCSI disk devices will perform
adequately with this patch. HP is not liable for any data durability issues or performance issues that
result from the use of this patch or usage of any storage devices not previously certified by HP as HP
e3000 compatible.
The remainder of this article describes:
Requirements for MPE/iX Disks of any type
MPE/iX SCSI Disk Drivers
Description of changes to each SCSI disk driver
MPE/iX requirements for Disks
MPE/iX depends upon some basic requirements for any disk device;
Disks subsystems should support 256 Bytes Sector access to data. Actually in the case of SCSI
disks physical block/sector size is 512 Bytes. ALL disk access on MPE/iX is therefore done in at
least 512 Byte “chunks”, for memory mapped structures, I/O size is 8*512Bytes for 4096 Bytes
per page. Various subsystems handle “conversion” from 256 Byte sectors to 512 Byte (or larger)
I/O in their data access routines. For example in DEBUG Sub-sector reads like “dsec 1.100,20”
are converted into a single I/O to LDEV 1 for 2048 Bytes. Upon the completion of that I/O Debug
displays only the bytes requested, $100-$119, from the larger buffer.
Disks must be durable. This may seem obvious but there is an issue with “modern” disks as they
often employ RAM buffers or caches to speed up access. Ideally MPE/iX “write” operations
should bypass disk caches to guarantee durability. Realistically it turns out that in many disks
caches cannot be avoided so we have a requirement that disks be protected by UPS to avoid
losing the data in cache due to a power failure.
Disk access must be “atomic” – that is, all or nothing. Upper layers should be able to assume
that all data has been transferred when “good” status is returned. “bad” status indicates an
inability to be sure of the state of the data; it is expected that “bad” status should be consistently