the alternate track cylinder since these may belong to other virtual
machines. A channel programmay 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 virtualCCWs 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 theCCW translation process, CP converts all seek head commands (in the real,
translatedCCWs) to an invalid CCW opcode (X'FF'). Then when the
translated channel program is executed, it is interrupted (with acommand 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 theI/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, andDMKTRKVA perforas CP I/O
to read record zero of the alternate and then returns the pointer found
in record zero toDMKCCWTR. - This is called by both DMKUNT and DMKVIO. Its function is to
handle command rejects in channel programs initiated by virtual machineSIO 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 toX'FF') in order to trap seek heads that might switch to another minidisk's track in the alternate track
cylinder.
Note: Even thoughDMKCCWTR 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, thecommand 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 DiagnoseI/O both when the Diagnose channel prograa results in a
track condition check and when acoamand reject results from a seek head
whose opcodeDMKCCWTR made invalid. The routine has nothing to do with
alternate track recovery forSIO issued by a virtual machine. But it
does share a few small subroutines with DMKTRKFP.
1-168IBM VM/310 System Logic and Problem Deter.ination--Volume 1
machines. A channel program
the next by any of the following:
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
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.
track is encountered in a virtual channel program by CP during the
translated
translated channel program is executed, it is interrupted (with a
channel prograa is seeking can be checked to see that it really belongs
to the virtual machine that requested the
happens to channel programs that seek out of the minidisk to an
alternate track.
do a check of the backward record zero pointer to verify that the
alternate belongs to that minidisk.
the CCBH address of the alternate as input, and
to read record zero of the alternate and then returns the pointer found
in record zero to
handle command rejects in channel programs initiated by virtual machine
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
cylinder.
Note: Even though
opcodes on these channel prograas, the
for Diagnose
track condition check and when a
whose opcode
alternate track recovery for
does share a few small subroutines with DMKTRKFP.
1-168