If the error is corrected, the temporary error is not recorded and
control is returned to DMKIOS with all error flags off. When ERP has determined a permanent error situation or successfully
recovered from an error, all auxiliary storage obtained for recovery CCWs, buffers, and IOERBLOKs is freed before a return is made to DMKIOS (see Figure 22 for a summary of the lOB indicators). Also, the
statistical counters for 3270 are updated.
The Attached Processor Environment
Attached processor support is requested by specifying AP=YES on the SYSCOR macro. For a complete description of system generation
considerations, see CP Initialization for the Attached Processor Qf QEeration, has a detailed discussion of
prefixing that is necessary for understanding the initialization done
for the attached processor. PROCESSOR ADDRESSES The CP initialization routine, DMKCPI, begins normal processing by
storing the physical, main processor address --usually X'OO' -- in the IPUADDR field in the PSA at location absolute zero. (Prefixing has not
yet been established.) The logical processor address is computed by
doing a logical OR of the physical address with X'40' and is stored in
the PSI in LPUADDR. The logical value is used by the CP LOCK manager to
avoid using a zero value. The physical value is used for signaling
between the two processors.
If AP=YES was coded on the SYSCOR macro, DMKCPI uses the SIGP function to see if the attached processor is available. If so, its
physical and logical addresses are stored in the PSA in IPUIDDRX and LPUADDRX, respectively. If the attached processor is not available, APUBOBLB is set to 1. If the multi-processing option is installed, message DMKCPI959w is sent to the operator. PSA SETUP The top two 4K pages of storage are marked (in the CORTIBLE) as being CP-owned and are used as the PSAs for the two processors. The addresses
of these two pages are stored at PREFIXA and PREFIXB in the PSI at
location absolute zero. DMKAPI copies the information from the PSI at
location absolute zero to the new PSA locations. In the PSI designated
for the attached processor, PREFIX! and PREFIXB are switched. Thus, on
either processor PREFIXA always represents the current processor and PREPIXB the other processor. The values of IPUADDR, LPUADDR, IPUIDDRX, and LPUADDRX are also switched so that IPUADDR and LPUIDDR always
contain the processor addresses of the current processor and IPUADDRX and LPUADDRX contain the other processor addresses.
1-172 IB! VM/370 System Logic and Problem Determination--Volume 1
LOCKING To provide system integrity, VK/370 attached processor support is
designed around one global system lock, a VKBLOK local lock, and several
system local locks for specifically identified queues or .odules.
All of the control program runs under the global system lock except
specifically identified paths. If the lock cannot be obtained, the
function is deferred by storing the necessary information in the VKBLOK appehdage and stacking that VKBLOK for later processing. That processor then takes a special unlocked path through the dispatcher to dispatch a
new virtual machine. In some situations the processor cannot defer the requested function and spins on the lock until it becomes available.
To ensure system integrity along
local locks have been defined. These
are held for short periods of time.
the special unlocked paths, various
locks are basically spin locks and
Each VKBLOK contains one lock, called VMLOCK, which is used by routines
that need to serialize certain virtual machine related resources. These
resources include the following:
1. Any unlocked or unshared pages belonging to the virtual machine.
2. Any of the unshared translation or backing store tables defining
the address space of the virtual machine.
3. Certain fields of the VKBLOK that are modified by routines that do not hold the system Some of these fields are V!PSW, VKGPBS, and VKBSTAT. The dispatcher obtains the VKBLOK lock before a virtual .achine is
dispatched and also before a CP request or an I/O request is unstacked. When a virtual machine is dispatched, the VKBLOK address of this virtual machine is saved in the processor's PSA in the field BUNUSEB. Nor.ally
this virtual machine is also unlocked by the dispatcher when it is
entered after an interrupt handler has finished processing. When BUNUSEB is still locked, the PSA field LASTUSEB is equal to BUNUSER. When BUNUSEB is unlocked, LASTUSEB is set to ASYSVK. When a CP request or an I/O request is unstacked, the associated
virtual machine is locked and the VKBLOK address is placed in register
11. When the dispatcher is entered after a CP request or an I/O request
has been serviced, the virtual .achine whose VMBLOK address is in
register 11 is locked and will be unlocked by the dispatcher. This
virtual machine may not be the same virtual .achine that was locked when
the CP request or the I/O request was unstacked. CP Introduction 1-173 I
Previous Page Next Page