**************************************************************** * TECH NOTE CD602.T02 MAY 1994 * * KEYWORDS: REGION SIZE IEFUSI IEALIMIT CT404.404 * * DB-90S RELEASE 4.2 TAPES : C60201 * * DB-Megabuf: * This Technical note refers users to the IBM documentation * describing how region sizes are managed and what is required * to obtain more that 32 Meg of XA storage. * * The document below is a copy of an IBM news flash that is for * guidance only. For the latest data you should always consult the * current IBM documentation in manuals MVS/ESA Installation Exits * and MVS/ESA Initialisation and Tuning Guide. * **************************************************************** DATA BASE : IMVS - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ DATE = 890101 DOCNO = OZSG021926 ID = G21926 SUBJECT = MVS TYPE = G TITLE CONTROLLING THE EXTENDED REGION SIZE FOR MVS/XA WSC FLASH 86 WSC FLASH 8628 ABSTRACT SOURCE MATERIAL DATED: 7/86 CONTROLLING THE EXTENDED REGION SIZE FOR MVS/XA In MVS/XA the REGION parameter cannot always be used to limit the total vir- tual storage available to an application. This FLASH explains how the region size is determined in the MVS/XA environment. Additionally, a method of con- trolling the use of Real storage for large address spaces is given. VIRTUAL STORAGE In an MVS/XA environment, the REGION parameter, as specified in JCL or a JES parameter, results in two values that are used by the Virtual Storage Man- ager: 1. A "region size" value 2. A "limit" value The "region size" value determines the amount of storage that can be allo- cated to a job or step for any single variable-length GETMAIN. The "limit" value is the maximum total storage that a job or step can allo- cate for any combination of GETMAINs. There are two user exits that can be used to influence the setting of the two values. One is IEALIMIT, for which IBM supplies a default exit. The other is SMF exit IEFUSI, which is not supplied by IBM. The IEFUSI exit indicates to MVS that it's values be used instead of those provided by the IEALIMIT exit. The difference between the two exits is that IEALIMIT has no control over the values used for virtual storage above 16 megabytes virtual. If you have not implemented an IEFUSI exit, and are using the IBM supplied IEALIMIT exit, the values used will be as follows: 1. A "region size" that is equal to the REGION requested via JCL or JES or, the "limit" value, whichever is smaller. 2. "limit" value that is equal to the REGION, requested via JCL or JES, plus 64K bytes, or the size of the private area, whichever is smaller. If you don't request any REGION thru JCL or JES (REGION=0) you get; 1. A "region size" value equal to the size of the private area. 2. A "limit" value equal to the size of the private area. The previously referenced values pertain to control of virtual storage below 16 megabytes virtual. There are two extended values to control storage above 16 megabytes virtual. IEALIMIT cannot control the limits above 16 megabyte virtual. Therefore, if you do not have an IEFUSI exit controlling them, you will always get the de- fault values which are; 1. "Extended Region size" value will be the smaller of: a. The greater of 32MB and the REGION request, or b. The size of the extended private area 2. "Extended limit" value will be the same as the "Extended Region" If you do have an IEFUSI exit controlling the REGION request, you will be able to specify, within IEFUSI, a value greater than 32MB. As currently im- plemented, however, any attempt to specify a value less than 32MB will result in 32MB being used as a minimum value. The information in the MVS/XA JCL Reference manual, describing the use of the JCL REGION parameter on the JOB or EXEC statement, does not adequately ex- plain how the specified value will be used. An APAR (OZ97526) has been writ- ten against the documentation, which has been accepted and the manual will be updated as follows: REGION="VALUE" When "value" is equal to 0K or 0M, the private region size below 16 megabytes virtual is set to the size of the available private area below 16 megabytes virtual. The extended region size is the default value of 32 megabytes or a greater value, if requested by SMF exit IEFUSI. When "value" is greater than 0K or 0M, but less than 16384K or 16M, the pri- vate region size below 16 megabytes virtual is set to the requested "value", if available. If the region size requested is not available below 16 mega- bytes virtual, the job or job step is abnormally terminated. When "value" is greater than 16384K or 16M, but less than or equal to 32768K or 32M, the private region size below 16 megabytes virtual is set to the size of the private area below 16 megabytes virtual. The extended region size is the default value of 32 megabytes or a greater value, if requested by SMF exit IEFUSI. When "value" is greater than 32768K or 32M, but less than or equal to 2096128K or 2048M, the private region size below 16 megabytes virtual is set to the size of the available private area below 16 megabytes virtual. The ex- tended region size is the specified value, if available. If the region size requested is not available above 16 megabytes virtual, the job or job step will abnormally terminate. The following are a few examples of REGION requests and the results: Available Private Area size - 4.5MB Extended Private Area size - 2.0GB Default IEALIMIT, no IEFUSI ------------------------------------------------------ //EX1 EXEC PGM=PROGRAM,REGION=100K "Region Size" value - 100K "Limit" value - 164K "Extended Region Size" value - 32MB "Extended Limit" value - 32MB ------------------------------------------------------ //EX2 EXEC PGM=PROGRAM,REGION=0M "Region Size" value - 4.5MB "Limit' value - 4.5MB "Extended Region Size" value - 32MB "Extended Limit" value - 32MB ------------------------------------------------------ //EX3 EXEC PGM=PROGRAM,REGION=24M "Region Size" value - 4.5MB "Limit" value - 4.5MB "Extended Region Size" value - 32MB "Extended Limit" value - 32MB ------------------------------------------------------ //EX4 EXEC PGM=PROGRAM,REGION=60M "Region Size" value - 4.5MB "Limit" value - 4.5MB "Extended Region Size" value - 60MB "Extended Limit" value - 60MB ------------------------------------------------------ Generally speaking, this minimum value restriction of 32 megabytes causes no problems, as it will only result in resource utilization if the storage is actually allocated and most user applications do GETMAINs from below 16 mega- bytes virtual. As more applications are changed to take advantage of the use of the extended virtual storage, however, it may become a concern, especially when variable- length GETMAINs are issued for the entire unallocated "region size", which is commonly done. ISPF/PDF Version 2 Release 1 Modification level 2 is a typical example of an application that has changed to use virtual storage above 16 megabytes vir- tual. The maximum size of a data set that a TSO ISPF/PDF user can edit is limited by the amount of storage that the user can GETMAIN, which is controlled by the "region size" value. Prior to the 2.1.2 level of ISPF/PDF, this was directly related to the user's REGION request and at most could be no greater than slightly less than the size of the private area below 16 megabytes virtual, which is typically less than 8 megabytes, even if REGION=0 were specified. Now that ISPF/PDF GETMAINs storage for the EDIT function's data set from above 16 megabytes virtual, the maximum size of a data set that a user can edit will be at least 32 megabytes, which is the minimum 'extended region size'. An APAR (OZ83114) documents a SUPERZAP that allows the default value of 32 megabytes to be modified. If the customer wants this code, then the customer should contact the IBM Support Center for the latest information on the APAR. This APAR establishes the new default value for the extended region and ex- tended limit. This default value is also the minimum value that can be set for the extended region and extended limit in IEFUSI. The value set should be no smaller than 2 Megabytes. REAL STORAGE Generally speaking, it should not be necessary to restrict the amount of real storage that a user can have as the system will dynamically adjust it based on the amount of storage available and the demand for the resource. There could be situations, however, where it would be desirable to exercise some control over the use of real storage by a job or an application that ac- cesses large amounts of virtual storage. Should that become necessary, the following approach may be of value. Set up a Performance Group in IEAIPSxx for these jobs, which has a Storage Isolation parameter of PWSS=(0,n), and do not specify PPGRT or PPGRTR. The parameter PWSS=(0,n) results in establishing a range of the number of frames in the user's working set that you want to protect. Because you have speci- fied a minimum of 0 and no page rate parameter, there will not actually be any storage isolation done for the user's address space. What will happen, however, is that when the system detects a shortage of real storage, any frames in excess of the specified 'n' will be considered preferred steal can- didates. In this way, if there is not a great demand for the storage, the ad- dress space is allowed to use it, but will be the prime candidate for page stealing, when a real storage shortage does occur. A note of caution; Because of the way that the system monitors storage and calculates the Unreferenced Interval Count (UIC), excluding address spaces that are Storage Isolated, it is not recommended that this approach to con- trolling real storage use be implemented for everything, as it would result in the system making UIC related decisions based on UIC values that are not entirely accurate.