When planning for the virtual machine environment, consideration
should be given to the number and type of privileged instructions to be executed by the virtual machines. Any raduction in the number of privileged ipstructions issued by the virtual machine's operating system
will reduce the amount of extra work CP must do to support the machine. Virtual Machine I/O To support I/O processing in a virtual machine, CP must translate all
virtual machine channel command word (CCi) sequences to refer to real
storage and real devices and, in the case of minidisks, real cylinders. When a virtual machine issues an 510, CP must: 1. Intercept the virtual machine 510 interrupt.
2. Allocate real storage space to hold the real CCW list to be
created .. 3. Translate the virtual device addresses referred to in the virtual CCWs to real addresses: 4. Page into real
operation, all
storage and lock, for the duration of the I/O virtual storage pages required to support the I/O 5. Generate a new CCi sequence building a Channel Indirect Data
Address list if the real storage locations cross page boundaries. 6. If the real device is a 3330V, append an MSS cylinder fault prefix
to the CCW prefix to prevent the channel from doing channel command
7. Schedule the I/O request. 8. Present the SIO condition code to the virtual machine. Recognize an MSS cylinder fault, queue the I/O request, and
reschedule the request when the subsequent interruFtion is received
(indicating staging is complete). 10. Intercept, retranslate, and present the channel end and device end
interrupts to the appropriate virtual machine, where they must then
be processed by the virtual machine operating system. CP's handling of SIOs for virtual machines can be one of the most
significant causes of reduced performance in virtual machines.
The number of 510 operations required by a virtual machine can be
significantly reduced in several ways: Use of large blocking factors (up to 4096 bytes) for user data sets
to reduce the total number of SIOs needed. Use of preallocated data sets. Use of virtual machine operating system options (such as chained
scheduling in OS) that reduce the number of 510 instructions. Part 2. Control Program (CP) 89
Substitution of a faster resource
operations, by building small temporary rather than using an I/O device.
(virtual storage) for I/O data sets in virtual storage
Frequently, there can be a performance gain when CP paging is
substituted for virtual machine I/O operations. The performance of an
operating system such as as can be improved by specifying as resident as
many frequently used as functions (transient sutroutines. ISlft and so forth) as are possible. In this way, paging I/O is substituted
for virtual machine-initiated I/O. In this case, the only work to be
done by CP is to place into real storage the page that contains the
desired routine or data.
Three CP performance options are available to reduce the CP overhead
associated with virtual machine I/O instructions or other privileged
instructions used by the virtual machine's I/O Supervisor:
1. The virtual=real option removes the need
reference translation and paging before
specific virtual machine.
for CP to perform storage
each I/O operation for a
2. The virtual machine assist feature reduces the real supervisor
state used by VM/370. For a detailed description of the
feature, see "Virtual Machine Assist Feature" later in this
section. For a list of processors on which the feature is
available, see the !11LJ1Q g.!anning gnd Guide,.
3. VM/370 Extended Control-Program Support (ECPS) further reduces the
real supervisor state tiae used by Vftj370. For a detailed
description of ECPS, see "Vft/370 Extended Control-Program support (ECPS)" later in this section. For a list of processors on which ECPS is available, see the VM/31Q g!!g Assignment and use of these
Performance Options." options is discussed in "Vft/370 Paging Considerations When virtual machines refer to virtual storage addresses that
currently in real storage, they cause a paging exception
associated CP paging activity.
are not
and the
The addressing characteristics of programs executing in virtual
storage have a significant effect on the number of page exceptions
experienced by that virtual aachine. Routines that have widely
scattered storage reference tend to increase the paging load of a
particular virtual machine. When possible, modules of code that are
dependent upon each other should be located in the same page. Reference
tables, constants, and literals should also be located near the routines
that use them. Exception or error routines that are infrequently used
should not be placed within main routines, but located elsewhere. When an available page of virtual storage contains only reenterable
code, paging activity can be reduced, since the page, although referred
to, is never changed, and thus does not cause a write operation to the
paging device. The first copy of that page is written on the paging
device when that frame is needed for some other more active page. Only inactive pages that have changed must be paged out. 90 IBM VM/310 System Programmer's Guide
Previous Page Next Page