CMS Saved Segment Management
Last update 01 August 2013
We recognize that managing saved segments for program products and
the segments that come with CMS can present some interesting challenges.
This page is meant to provide some useful information to help with
this challenge. Some general guidelines are provided along with
descriptions of the saved segments shipped with CMS.
To understand potential impact to paging performance see
Understanding Poor Performance Due to Paging Increases. Other
information on segments is available in VM/ESA Data
in Memory Techniques. See also SHARE presentation
VM/ESA Data in Memory Techniques.
Segment Placement Guidelines
- For segments that must be below the 16 meg line it is usually
better to work down from the lowest address CMS uses, thus avoiding
infringement into user virtual storage. Note that segments can be
placed inside a virtual machine's defined storage size.
- Use the CP INDICATE USER userid EXP command to determine the
defined storage limit and the address limit and other fun stuff.
- To avoid fragmenting storage and to increase the size of contiguous
storage, try to work up from highest address CMS uses. You might want
to leave a small gap of a few megabytes to allow for future growth in
CMS segments to minimize the changes for future releases.
- Remember that CMS will use a section of virtual storage for its
management of storage (free work area and page allocation table). This
is roughly 1.5 pages per megabyte of the virtual machine and is located
at the highest address not used by the CMS nucleus.
See z/VM:Saved Segments Planning and Administration SC24-6229
Chapter 1 "Planning Considerations" for more details.
- See z/VM:Performance SC24-6208 Chapter 2 "Guidelines for
Virtual Machine Storage" for more information on the impact
of segment placement and virtual machine size.
CMS Saved Segment Descriptions
Below is a list of segments and a brief description of them.
INSTSEG (Previously CMSINST)
The "Installation Saved Segment" by default contains a
list of the most commonly used system execs and XEDIT macros. By default,
it's loaded in every virtual machine.
Segment contains the FSTs for files on the help disk. It is used by many
people. Since it contains FSTs, it must be located below the 16 meg
line. (As of z/VM 6.3.0 the HELPSEG segment is no longer defined.)
CMSPIPES (previously PIPES and RXSOCKET)
Contains the PIPELINES modules and the REXX Sockets code. It
can be loaded above the 16 meg line. Pipelines is used by just about
is a segment space that contains a modules (DMSDAC and DMSSAC)
used by CRR, SFS, or BFS server virtual machines, so it is
fair game to overlap with other program products or place above 32M line
since it is only for a subset of virtual machines and these machines
might already be greater than 32 meg.
This logical segment contains the callable services library (CSL)
and the REXX run time library used for the CMS parts that are
shipped as compiled REXX programs.
The CMSVMLIB logical segment is loaded by default in the SYSPROF EXEC,
so every CMS user has this segment loaded. It can be located above the
16 meg line. It is contained in the CMSVMLIB physical segment.
If you have the full REXX compiler library installed, you should
use the full library.
SVM is a generic, run-time, function library used by several
IBM products. DFSMS, ADSM, PVM, and one or more of the LAN
products use the SVM functions. The segment consists
of the DMSSVM5 and DMSSVM5C MODULEs. It can be loaded into
all users virtual machines, but by default is not. We ship
this with VM so that the products do not each need to include
The SCEE and SCEEX physical segments contain the z/VM Language
Environment (LE) code. LE, as shipped in z/VM, consists of C/C++,
COBOL, and PL/I run-time libraries and their common execution
environment code. The SCEE segment consists of several logical
segments which may need to be explicitly loaded (via SEGMENT LOAD) in
order for the segment copy to be used. The logical segments in the
SCEEX segment will be dynamically loaded by the common execution
environment code if the SCEEX segment and the logical segments exist.
So, any call to a C/C++, COBOL, or PLI program will automatically load
Back to the Performance Tips Page