alternate track support must permit the virtual .achine to escape fro.
the confines of its minidisk to get to the alternate tracks assigned to
the defective tracks of that minidisk. Yet at the same time CP must still prevent the virtual machine from accessing other tracks that it
does not own. Since alternate tracks are assigned only in the conventional
alternate tracks cylinders at the high end of the real disk, CP does not
apply minidisk cylinder relocation values to a virtual machine's channel commands that reference alternate tracks. Similarly, CP does not
unrelocate alternate track CCHH addresses returned by read home address, by read record zero, in sense information, or for error recording.
Alternate Operation and I.plications
The home address record (HA) on any track contains a flag byte with two bits that are involved in alternate track assignments. One bit, when
set to one, indicates that the track is defective and that the track
should have (and ordinarily does have) an alternate track assigned. The
count field of record zero of a track with this bit set should point to
(have the ceRa address of) the assigned alternate track. The second bit
in the flag byte, when set to one, indicates that the track in which it
appears is an assigned alternate track. The count field of record zero
of an assigned alternate track should point back to the ceHH
address of) the flagged defective track that it is assigned to.
Before using the pointer in record zero of a flagged track to get to
the corresponding alternate, it is considered good fora for an operating
system to check the pointers both ways to see that each points to the
other. CP performs two-way checks of the pointers for seeks to an
alternate track initiated by Diagnose or by SIO in a virtual machine. For its own I/O, CP uses the forward record zero pointer without
performing a two-way check. Performing a two-way check would decrease
performance and should not be necessary since all of the record zero
pointers were checked in both directions by the Format/Allocate program (DMKF!T) when the CP-owned disk was originally formatted. the DASD Dump/Restore (DDR) program also checks the record zero
pointers both ways when a tape is restored to a disk.
Except for those channel commands that deal specifically with the home address and record zero, any atteapt to search or read or write on
a track that is flagged as defective results in a unit check with "track
condition check" indicated in the sense data.
operations on an assigned alternate track can also result in a unit
check with "track condition check" indicated in the sense data. But in
this case it occurs when an attempt is made to leave the assigned
alternate track, not when the operation is reading or writing on the
track. The situations where trying to leave the alternate track results
in a track condition check are: • Any multi-track operation • A record overflow operation
The hardware does generate a track
used to leave the track. This applies
seek head.
condition check when a seek is
to any kind of seek, including When a channel program from a virtual machine SIO (or fro. a
Diagnose) is allowed to access an alternate track, subsequent CCWs in
the channel program .ust be prevented from accessing adjacent tracks in
CP Introduction 1-167
the alternate track cylinder since these may belong to other virtual
machines. A channel program may attempt a transition from one track to
the next by any of the following: • Seek • Seek head • Multi-track search or read • Record overflow
The full seek causes no problem: since it specifies the cylinder as
well as the track, it causes the channel program to leave the alternate
track and to return to a cylinder within the minidisk extent. It is
certain to go back to the minidisk because the seek address was verified
when the virtual CCWs were translated to real.
The multi-track operations and record overflow operations also cause
no problem, because, as explained above, these are caught by the
hardware and result in a track condition check.
The seek head is dealt with as follows. When a seek to an alternate
track is encountered in a virtual channel program by CP during the CCW translation process, CP converts all seek head commands (in the real,
translated CCWs) to an invalid CCW opcode (X'FF'). Then when the
translated channel program is executed, it is interrupted (with a command reject) at each seek head CCW so that the track to which the
channel prograa is seeking can be checked to see that it really belongs
to the virtual machine that requested the I/O. Note that this only
happens to channel programs that seek out of the minidisk to an
alternate track. DMKTRKVA - When DMKCCWTR finds a virtual machine seeking out of its iInidIsk extent to what should be an assigned alternate track, it has to
do a check of the backward record zero pointer to verify that the
alternate belongs to that minidisk. So DMKCCWTR calls DMKTRKV1, passing
the CCBH address of the alternate as input, and DMKTRKVA perforas CP I/O
to read record zero of the alternate and then returns the pointer found
in record zero to DMKCCWTR. - This is called by both DMKUNT and DMKVIO. Its function is to
handle command rejects in channel programs initiated by virtual machine SIO when the channel program was found (by DMKCCWTR) to be seeking to an
alternate track outside the minidisk extent. The command rejects result
because, for these channel programs, any seek head commands have been
invalidated (opcode changed to X'FF') in order to trap seek heads that might switch to another minidisk's track in the alternate track
cylinder.
Note: Even though DMKCCWTR may also find Diagnose I/O channel programs that seek directly to an alternate track and invalidate the seek head
opcodes on these channel prograas, the command rejects resulting froa these channel programs are handled by DMKTRKIN, not by DMKTRKFP. - This routine performs alternate track recovery for CP I/O and
for Diagnose I/O both when the Diagnose channel prograa results in a
track condition check and when a coamand reject results from a seek head
whose opcode DMKCCWTR made invalid. The routine has nothing to do with
alternate track recovery for SIO issued by a virtual machine. But it
does share a few small subroutines with DMKTRKFP.
1-168 IBM VM/310 System Logic and Problem Deter.ination--Volume 1
Previous Page Next Page