PGSER — Fast path page services

Description

The fast path PGSER macro performs FIX and FREE requests for users on performance paths.

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Supervisor state and key 0
Dispatchable unit mode: Task or SRB
Cross memory mode: Any PASN, any HASN, any SASN
AMODE: 24- or 31-bit
ASC mode: Primary
Interrupt status: Enabled for I/O and external interrupts
Locks: No spin locks can be held.
Control parameters: Must be in the primary address space

Programming requirements

The caller must include the IHAPVT mapping macro.

Restrictions

The following restrictions apply to the fast path services:
  • Short term fixes only.
  • No ECB can be specified.
  • No TCB can be specified.
  • No VIO window page scan be specified.
  • When the list form of the macro is being used, all user-defined short page service lists (SSLs) must be valid in nonpageable storage.
  • Note: IBM® recommends that page fixes of more than 100 pages be divided into several smaller fix requests.
    Large page fix requests can cause an excessive spin loop to occur.

The fast path PGSER macro does not verify any of the restricted conditions. The caller is responsible for verifying the restricted conditions and providing recovery to purge FIX requests when the task terminates before a page service request is complete.

Input register information

Before issuing the PGSER macro, the caller must ensure that GPR 13 points to a standard 18-word save area in nonpageable storage.

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0-4
Used as work registers by the system
5-13
Unchanged
14-15
Used as work registers by the system
When control returns to the caller, the access registers (ARs) contain:
Register
Contents
0-1
Used as work registers by the system
2-13
Unchanged
14-15
Used as work registers by the system

Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.

Performance implications

None.

Syntax

The fast path PGSER macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede PGSER.
   
PGSER  
   
One or more blanks must follow PGSER.
   
R  
L  
   
,FIX  
,FREE  
   
   ,LA=list addr list addr: RX-type address or register (1), (5) - (12).
  Note: This parameter is valid only if L is specified.
   
   ,A=start addr start addr: RX-type address or register (1), (5) - (12).
  Note: This parameter is valid only if R is specified.
   
   ,EA=ending addr ending addr: RX-type address or register (2), (5) - (12).
  Note: This parameter is valid only if R is specified.
   
   ,BACKOUT=Y Default: BACKOUT=Y
   ,BACKOUT=N Note: This parameter is valid only for FIX requests.
   
   ,ASCB=ascb addr ascb addr: RX-type address or register (5) - (12).
   
   ,RELATED=value value: Any valid macro keyword specification.
   
,BRANCH=SPECIAL  
   

Parameters

The parameters are explained as follows:

R
L
Specify the manner in which the input is supplied. If R is specified, the user supplies the starting and ending addresses of the virtual storage area for which the service is to be performed. If L is specified, the user supplies the address of the short page services list (SSL), which specifies the virtual storage area for which the service is to be performed. See the topic “Input to Page Services” in z/OS MVS Programming: Authorized Assembler Services Guide for a description of the SSL.
,FIX
,FREE
Indicate the function to be performed.

FIX specifies that the virtual storage areas are to reside in central (also called real) storage and are ineligible for page-out while the address space is swapped in. This parameter does not prevent pages from being paged out when the entire address space is swapped out of central storage. FIX will ignore a request to fix storage in a system area that has the fixed attribute (for example, the LSQA and SQA). A FIX request for a page in the LSQA or SQA will not cause the page to be backed by central storage below 16 megabytes.

FREE specifies that the virtual storage areas that were previously fixed through the FIX option are eligible for page-out. A fixed page is not considered pageable until the number of FREE and FIX requests for the page are equal.

,LA=list addr
Specifies the address of the short page service list (SSL) for L requests.
,A=start addr
Specifies the address of the start of the virtual area for R requests.
,EA=end addr
Specifies the last byte on the last page of the virtual area for R requests.
,BACKOUT=Y
,BACKOUT=N
Specify the procedure to follow if an unallocated page is encountered during the processing of a fix request.

If BACKOUT=Y is specified, all pages fixed as part of the request will be freed before control returns to the caller.

If BACKOUT=N is specified, the pages previously fixed as part of the request will not be freed before control returns to the caller. In this situation, no further pages are processed once an unallocated page is encountered.

,ASCB=ascb addr
Specifies the address of the ASCB for the currently addressable address space.
Note: The ASCB must reside in 24-bit addressable storage.
,RELATED=value
Specifies information used to document the macro and to relate the service performed to some corresponding service or function. The format of the information specified can be any valid coding values that the user chooses.
,BRANCH=SPECIAL
Specifies a branch entry call to the fast path FIX and FREE services.

ABEND codes

None.

Return and reason codes

None.

Example 1

Fix 4096 bytes of storage starting at the address BUFFER. The address of the ASCB is in register 6. Include the IHAPVT mapping macro.
PGSER R,FIX,A=BUFFER,EA=BUFFER+4095,BRANCH=SPECIAL,ASCB=(6)
IHAPVT

Example 2

Free the area specified in the SSL defined at LISTSSL. Use the ASCB in PSAAOLD. Include the IHAPVT mapping macro.
L   5,PSAAOLD
PGSER L,FREE,LA=LISTSSL,ASCB=(5),BRANCH=SPECIAL
IHAPVT