The fast path PGSER macro performs FIX and FREE requests for users on performance paths.
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 |
The caller must include the IHAPVT mapping macro.
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.
Before issuing the PGSER macro, the caller must ensure that GPR 13 points to a standard 18-word save area in nonpageable storage.
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.
None.
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 | |
The parameters are explained as follows:
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.
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.
None.
None.
PGSER R,FIX,A=BUFFER,EA=BUFFER+4095,BRANCH=SPECIAL,ASCB=(6)
IHAPVT
L 5,PSAAOLD
PGSER L,FREE,LA=LISTSSL,ASCB=(5),BRANCH=SPECIAL
IHAPVT