Skip to main content

IBM Systems  >   System z  >   z/VM  >  

CMS Saved Segment Management

Last update 29 July 2005

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 the CMS Diagnosis Reference LY24-5259 for more details.
  • See the VM/ESA Performance Manual SC24-5782 Chapter 3 "Guidelines for Storage of a Virtual Machine" for some more information on impact of segment placement and virtual machine size.

CMS Save Segment Descriptions

Below is a list of segments and a brief description of them.

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.
HELP
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.
PIPES
The PIPELINES modules. Shipped as part of the CMSPIPES space. This can be loaded above the 16 meg line. Pipelines is used by just about everyone.
RXSOCKET
Contains the REXX Sockets code. It can run above the 16 meg line and is shipped as part of the CMSPIPES space.
CMSFILES
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.
VMLIB
This logical segment contains the callable services library (CSL). The VMLIB 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.
VMMTLIB
OBSOLETE. From CMS 9 through CMS 11, this logical segment was part of the CMSVMLIB physical segment. It contained the callable services libraries for CMS multitasking. Starting with CMS 12, VMMTLIB moved entirely into the CMS nucleus. From CMS 9 through CMS 11, the VMMTLIB logical segment was loaded by CMS initialization, unless the user specified MTSEG NO on the IPL command. In short, every CMS user loads something from this segment. The CSL routines are used by CMS functions as well as user applications. Even if you think you don't use it, you probably do.
DMSRTSEG
This logical segment contains the REXX run time library used for the CMS parts that are shipped as compiled REXX programs. It is used by every CMS user and can be located above the 16 meg line. It was first included in CMS 12 and is currently located in the CMSVMLIB physical segment. If you have the full REXX compiler library installed, you should use the full library instead of DMSRTSEG.
SVM
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 it.
SCEEx
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 SCEEX members.

Back to the Performance Tips Page