OpenVMS VAXSYS08_060 OpenVMS VAX VBSS ECO Summary
Copyright (c) Digital Equipment Corporation 1995. All rights reserved.
PRODUCT: OpenVMS VAX, Version 6.0
COMPONENT: Virtual Balance Slot Switching (VBSS)
VBSS.EXE
EXEC_INIT.EXE
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
ECO Kit Name: VAXSYS08_060
ECO Kits Superseded by This ECO Kit: VAXSYS13_061
For OpenVMS V6.0 images only
ECO Kit Approximate Size: 155 Blocks
Kit Applies To: OpenVMS VAX V6.0
System/Cluster Reboot Necessary: Yes
ECO KIT SUMMARY:
An ECO kit exists for OpenVMS VAX V6.0. This kit addresses the following
problems:
Problems addressed in the VAXSYS08_060 kit:
o This kit is a re-issue of the VAXSYS13_061 kit with the OpenVMS
VAX V6.0 portion only. The V6.1 section of the VAXSYS13_061
kit will be superseded by a future Shadowing kit.
Problems addressed in VAXSYS13_061 Kit:
o To transition a VMS process from the virtual balance set to the
real balance set, the SPTE's (system page table entries) which
describe its process PTE pages (process page table pages) need
to be copied from saved memory back into the real balance slot
from whence they originally came. This makes the process' P0
and P1 space accessible again. SPTE's for the process page
table pages describing the undefined area between P0 and P1
must be represented by pre-initialized null values (actually,
ERKW DZERO-type values). When this undefined void area is
exactly zero pages (i.e., P0 and P1 are tangent), the
VBSS$READ_OPT2_VBSM routine takes the wrong branch, causing a
VBSSERR bugcheck. This fix adds a test for this case, and
takes the image(s).correct branch.
o The Virtual Balance Slot Switching (VBSS) software, introduced
in OpenVMS VAX V6.0, allows processes to time-share the use of
what may be a limited number of real balance slots. In order
to achieve this, there is now a set of virtual balance slots in
addition to the real slots. As usual, the BALSETCNT SYSGEN
parameter defines the number of real balance slots. Now, with
VBSS, additional virtual balance slots are created so that the
total number of real and virtual slots can accommodate all
processes. When a resident (non-swapped) process is not
occupying a real slot, it resides in a virtual slot. To
achieve fairness, processes are switched back and forth between
the real set and the virtual set.
The problem arises because not enough virtual slots were being
created. When an allocation is attempted, in order to switch a
process from a real slot to a virtual slot, the allocation
fails, causing a VBSSERR bugcheck. VBSS was creating a total
of MAXPROCESSCNT slots, with BALSETCNT being real slots and the
remainder being virtual slots. However, this is not enough;
when all slots are filled (i.e., MAXPROCESSCNT processes are
created), processes must share the use of the limited number of
real slots. A switch of one process out of the real set and a
corresponding switch of a process occupying a virtual slot into
the vacated real slot, requires an *additional* slot (beyond
MAXPROCESSCNT) in order to execute the swap. Think of the
extra slot as being a temporary holding area, required only
during the time that the swap is taking place. Furthermore, on
an SMP system, such a swap can be happening simultaneously on
each processor. Therefore, an additional slot is needed for
*each* processor. The solution chosen for this problem is to
pre-allocate an additional slot for each potential SMP
processor.
INSTALLATION NOTES:
In order for the corrections in this kit to take effect, the system
must be rebooted. If the system is a member of a VAXcluster, the
entire cluster should be rebooted.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
vaxsys08_060.README
vaxsys08_060.CHKSUM
vaxsys08_060.CVRLET_TXT
vaxsys08_060.a-dcx_vaxexe
|