Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
DSCBK
Control Block Contents
DSCBK DSECT
Cross Reference (Contains links to field and bit definitions)
DSCBK Prolog
NAME : HCPDSCBK DESCRIPTION: Demand Scan Control Block DSECT : DSCBK FUNCTION : The Demand Scan Control Block (DSCBK) contains information about the Available List Demand Scan operation. The DSCBK is persistent and some information is saved between Demand Scans. CREATED BY : Assembly at Entry Point HCPRSMSC. DELETED BY : none RELOCATION CONSIDERATIONS : None
DSCBK Control Block Content
DSCBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure DSCBK Demand Scan Control Block 0000 0 Signed 4 DSCWORD (0) Demand Scan Status Word 0000 0 Bitstring 1 DSCPROG Indicate Demand Scan Progress 1... .... DSCPASS1 X'80' DSCPASS1 Working on the first pass .1.. .... DSCPASS2 X'40' DSCPASS2 Working on the second pass ..1. .... DSCEMRGP X'20' DSCEMRGP Working on EMERGENCY pass ...1 .... DSCLTD X'10' DSCLTD Working on a user from the Long-Term Dormant List .... 1... DSCLTDHX X'08' DSCLTDHX This scan ended on a user from the Long-Term Dormant List .... .1.. DSCDLSCN X'04' DSCDLSCN Scanning the Dormant List .... ..1. DSCTKALL X'02' DSCTKALL Took ALL possible frames from the Dormant List VMDBK base address space (except locked or reserved frames). .... ...1 DSCA2GPP X'01' DSCA2GPP Stealing >=2G frames to relieve <2G resident pageable PGMBK pressure. Causes steal of >= 2G frames to begin / continue even if there is no >=2G system need (DSCREQDG=0) 0001 1 Bitstring 1 DSCLKFLG Contains only lock status and is cleared in RELLOCKS subroutine in module HCPALS. 1... .... DSCPTILK X'80' DSCPTILK Demand Scan owns the Page Table Lock (VMDPTIL) now. .1.. .... DSCPTIL2 X'40' DSCPTIL2 Indicate we obtained VMDPTIL in the INVAL routine (in HCPALS). ..1. .... DSCSHDLK X'20' DSCSHDLK Demand Scan owns the Shadow Table Lock (VMDSHDLK) now. ...1 .... DSCDFRCT X'10' DSCDFRCT Demand Scan has incremented the Deferred Work count. .... 1... DSCSHFRM X'08' DSCSHFRM Stealing shared frames, which means we must ALWAYS use IPTE. .... .1.. DSCPTILS X'04' DSCPTILS Note that VMDPTIL was obtained SHARED (verses EXCLUSIVE). 0002 2 Bitstring 1 DSCSTAT Demand scan status flags 1... .... DSCRBINX X'80' DSCRBINX Do NOT move RABIs to XSTORE .1.. .... DSCUNREF X'40' DSCUNREF Take UNREFERENCED frames only ..1. .... DSCPURGE X'20' DSCPURGE Perform a PTLB (Purge Translate Look-Aside Buffers). DSCA2GRF removed .... 1... DSCPGMFL X'08' DSCPGMFL PGMBK steal (HCPALSPS) has used up paging capacity, so steal must stop for now. .... .1.. DSCRELOC X'04' DSCRELOC Take only pages that are NOT relocation-changed .... ...1 DSCAGAIN X'01' DSCAGAIN Steal should re-invoke itself at the end of the current cycle. 0003 3 Bitstring 1 DSCXSTFL XSTORE management flags 1... .... DSCXSTOR X'80' DSCXSTOR Try paging pages out to XSTORE before sending them to DASD. 0004 4 Signed 4 DSCINPUT (0) Demand Scan Input Word DSCINPUT is a word of "input status" hints for other parts of the system to communicate information "hints" to demand scan. NOTES : DSCINPUT fields are NOT serialized, by the demand scan lock or anything else. 0004 4 Bitstring 1 DSCINPB0 1... .... DSCSFCTG X'80' DSCSFCTG Single frame allocation has reached into the contiguous portion of the available list since the last time we checked. .1.. .... DSCCNTGR X'40' DSCCNTGR Contiguous frames have been returned to the back of the available list since the last time demand scan zeroed this flag. ..1. .... DSCPGMBK X'20' DSCPGMBK PGMBK Steal requested. HCPALSPS will be invoked prior to normal demand scan of single frames The following four bytes are used to make sure that only one CPEBK is stacked for the deferred call to HCPLANRS, HCPFRQDS, HCPFMVDS, or HCPFMVDS with emergency. 0005 5 Bitstring 1 DSCLANLK Indicate that the deferred call to HCPLANRS has been stacked 0006 6 Bitstring 1 DSCFMVLK Indicate that the deferred call to HCPFMVDS has been stacked 0007 7 Bitstring 1 DSCFMVEL Indicate that the deferred call to HCPFMVDS with emergency has been stacked. 0008 8 Bitstring 1 DSCFRQLK A deferred call to HCPFRQDS is either stacked or running 0009 9 Bitstring 1 * (7) reserved The primary Demand Scan may be able to satisfy the system requirement without performing every possible scan. In order to drain frames from every possible source, a "Round Robin" algorithm is used to select a different scan routine each time Demand Scan runs. The pointer DSCELEM holds the address of the next scan element (a structure defined in HCPALD). The next scan will be performed by the routine associated with this scan element. 0010 16 Signed 4 DSCCYCL Count the number of scan cycles 0014 20 Address 4 DSCELEM Address of next scan element (see HCPALD SCANELEM structure) These fields apply to the current Demand Scan. 0018 24 Signed 4 DSCTOTAL Total pages stolen by the current Demand Scan process 001C 28 Signed 4 DSCPSSP Single pages stolen thus far for PGMBK steal, which are not yet included in any steal write counts 0020 32 Dbl-Word 8 DSCREQD (0) Frames needed by the system 0020 32 Signed 4 DSCREQD0 Frames needed from BELOW 2Gb 0024 36 Signed 4 DSCREQDG Frames needed from 2G and ABOVE 0028 40 Signed 4 DSCREQC0 Cont frames needed from BELOW 2G 002C 44 Signed 4 DSCREQCG Cont frames needed from ABOVE 2G 00000010 DSCREQDL *-DSCREQD Length of all REQ fields 0030 48 Dbl-Word 8 DSCTRGT (0) Target frame limit (Low/High) 0030 48 Signed 4 DSCTRGT0 Target frames from BELOW 2Gb 0034 52 Signed 4 DSCTRGTG Target frames from 2Gb and ABOVE 0038 56 Signed 4 DSCTRGC0 Cont target frames from BELOW 2G 003C 60 Signed 4 DSCTRGCG Cont target frames from ABOVE 2G 00000010 DSCTRGTL *-DSCTRGT Length of all TRG fields 0040 64 Dbl-Word 8 DSCFRMS (0) Frame counters (Low/High) 0040 64 Signed 4 DSCFRMS0 Frames stolen from BELOW 2Gb 0044 68 Signed 4 DSCFRMSG Frames stolen from 2Gb and ABOVE 0048 72 Signed 4 DSCFRMC0 Cont frames stolen from BELOW 2G 004C 76 Signed 4 DSCFRMCG Cont frames stolen from ABOVE 2G 00000010 DSCFRMSL *-DSCFRMS Length of all FRM fields 0050 80 Dbl-Word 8 DSCSTLW (0) Steal Write counters (Low/High) 0050 80 Signed 4 DSCSTLW0 Steal Write frames BELOW 2Gb 0054 84 Signed 4 DSCSTLWG Steal Write frames 2Gb and ABOVE 0058 88 Signed 4 DSCSTLP0 Steal Write PGMBKs BELOW 2Gb 005C 92 Signed 4 DSCSTLPG Steal Write PGMBKs 2Gb and ABOVE 00000010 DSCSTLWL *-DSCSTLW Length of all STL fields 0060 96 Address 8 DSCIOLFW I/O FRMTE list forward pointer 0068 104 Address 8 DSCIOLST I/O FRMTE list last FRMTE 0070 112 Address 8 DSCAVLLF Immediately available FRMTE list forward pointer 0078 120 Address 8 DSCPGMLF PGMBK FRMTE list forward pointer 0080 128 Signed 4 DSCPAGQC Count of FRMTEs on I/O and PGMBK FRMTE lists 0084 132 Signed 4 DSCRLRDV Stack of CPEBKs to be redriven by Demand Scan after DPPL processing. Serialized by CS. Relocations push a CPEBK onto this stack; Demand Scan harvests entire stack at once. Init'd and reset to 0; Demand Scan sets to -1 to tell relos to open a PTIL window; contains CPEBK addr when at least one relo is waiting to be redriven by Demand Scan. CPEBKs chained by CPEXFPNT and terminated by -1. DSCPGMC0/CG account for the PGMBK frames put on the DPPL by PGMBK Steal. They do not include any frames put on the DPPL by other tasks, nor is there a guarantee the frames will be reclaimable when the DPPL is processed. These counts are purely an estimate of reclaimable frames that are used in the need calculation in an effort to avoid over stealing. Given their "fuzzy" nature, the counts are cleared each time PGMBK Steal processes the DPPL because either the frames were successfully reclaimed (and will therefore be included in the available frame counts) or they could not be reclaimed and may not even reside on the DPPL any longer (in which case we would not want to count them in the need calculation). 0088 136 Signed 4 DSCPGMC0 PGMBKs <2G put on the DPPL by PGMBK steal since the last time the DPPL was processed by PGMBK steal. This count is in frames, so it is 2x the count of PGMBKs. 008C 140 Signed 4 DSCPGMCG PGMBKs >=2G put on the DPPL by PGMBK steal since the last time the DPPL was processed by PGMBK steal. This count is in frames, so it is 2x the count of PGMBKs. 0090 144 Signed 4 * Reserved These fields are primarily for diagnostic purposes. They should not affect the operation of Demand Scan. 0094 148 Bitstring 1 DSCDEBUG Debug Flags 1... .... DSCACTIV X'80' DSCACTIV Demand Scan is ACTIVE 0095 149 Bitstring 3 * reserved 0098 152 Signed 4 DSCCOUNT Count the number of times we entered Demand Scan (HCPALDSC) 009C 156 Bitstring 1 DSCALSCN Track our progress in HCPALSCN 009D 157 Bitstring 1 DSCALSCS Track our progress in HCPALSCS 009E 158 Bitstring 1 DSCALSCD Track our progress in HCPALSCD 009F 159 Bitstring 1 * Reserved 00A0 160 Address 4 DSCWHOCM Last caller of CALCMORE routine 00A4 164 Address 4 DSCWHOEX Previous HCPCALL before CALCMORE 00A8 168 Signed 4 DSCANYDB <>2G frames (frames that can be anywhere) that were allocated to the <2G need. (Demand Below) 00AC 172 Signed 4 DSCANYDA <>2G frames that were allocated to the >2G need. (Demand Above) 00B0 176 Dbl-Word 8 DSCTOTPB Total amount of PGMBKs stolen 00B8 184 Dbl-Word 8 DSCPBKTM Total time spent stealing PGMBKs 00C0 192 Signed 8 DSCRLOWS Time stamp of the last time DSCRLRDV was set to -1. 00C8 200 Signed 8 DSCRLOWR Time stamp of the last time DSCRLRDV was reset to 0. 00D0 208 Bitstring 1 DSC$END (0) End of DSCBK 000000D0 DSCBKLN *-DSCBK DSCBK length (in bytes) 0000001A DSCBKSZ (*-DSCBK+7)/8 DSCBK size (in doublewords)
DSCBK Storage Layout
*** DSCBK - Demand Scan Control Block * * +------+------+------+------+------+------+------+------+ * 0 |:PROG |:LKFLG|:STAT |:XSTFL|:INPB0|:LANLK|:FMVLK|:FMVEL| * +------+------+------+------+------+------+------+------+ * 8 |:FRQLK|////////////////////////////////////////////////| * +------+--------------------+---------------------------+ * 10 | DSCCYCL | DSCELEM | * +---------------------------+---------------------------+ * 18 | DSCTOTAL | DSCPSSP | * +---------------------------+---------------------------+ * 20 | DSCREQD0 | DSCREQDG | * +---------------------------+---------------------------+ * 28 | DSCREQC0 | DSCREQCG | * +---------------------------+---------------------------+ * 30 | DSCTRGT0 | DSCTRGTG | * +---------------------------+---------------------------+ * 38 | DSCTRGC0 | DSCTRGCG | * +---------------------------+---------------------------+ * 40 | DSCFRMS0 | DSCFRMSG | * +---------------------------+---------------------------+ * 48 | DSCFRMC0 | DSCFRMCG | * +---------------------------+---------------------------+ * 50 | DSCSTLW0 | DSCSTLWG | * +---------------------------+---------------------------+ * 58 | DSCSTLP0 | DSCSTLPG | * +---------------------------+---------------------------+ * 60 | DSCIOLFW | * +-------------------------------------------------------+ * 68 | DSCIOLST | * +-------------------------------------------------------+ * 70 | DSCAVLLF | * +-------------------------------------------------------+ * 78 | DSCPGMLF | * +---------------------------+---------------------------+ * 80 | DSCPAGQC | DSCRLRDV | * +---------------------------+---------------------------+ * 88 | DSCPGMC0 | DSCPGMCG | * +---------------------------+------+--------------------+ * 90 |///////////////////////////|:DEBUG|////////////////////| * +---------------------------+------+------+------+------+ * 98 | DSCCOUNT |:ALSCN|:ALSCS|:ALSCD|//////| * +---------------------------+------+------+------+------+ * A0 | DSCWHOCM | DSCWHOEX | * +---------------------------+---------------------------+ * A8 | DSCANYDB | DSCANYDA | * +---------------------------+---------------------------+ * B0 | DSCTOTPB | * +-------------------------------------------------------+ * B8 | DSCPBKTM | * +-------------------------------------------------------+ * C0 | DSCRLOWS | * +-------------------------------------------------------+ * C8 | DSCRLOWR | * +-------------------------------------------------------+ * *** DSCBK - Demand Scan Control Block
DSCBK Cross Reference
Symbol Dspl Value -------------- ---- ----- DSC$END 00D0 DSCACTIV 0094 80 DSCAGAIN 0002 01 DSCALSCD 009E DSCALSCN 009C DSCALSCS 009D DSCANYDA 00AC DSCANYDB 00A8 DSCAVLLF 0070 DSCA2GPP 0000 01 DSCBKLN 00D0 000000D0 DSCBKSZ 00D0 0000001A DSCCNTGR 0004 40 DSCCOUNT 0098 DSCCYCL 0010 DSCDEBUG 0094 DSCDFRCT 0001 10 DSCDLSCN 0000 04 DSCELEM 0014 DSCEMRGP 0000 20 DSCFMVEL 0007 DSCFMVLK 0006 DSCFRMCG 004C DSCFRMC0 0048 DSCFRMS 0040 DSCFRMSG 0044 DSCFRMSL 004C 00000010 DSCFRMS0 0040 DSCFRQLK 0008 DSCINPB0 0004 DSCINPUT 0004 DSCIOLFW 0060 DSCIOLST 0068 DSCLANLK 0005 DSCLKFLG 0001 DSCLTD 0000 10 DSCLTDHX 0000 08 DSCPAGQC 0080 DSCPASS1 0000 80 DSCPASS2 0000 40 DSCPBKTM 00B8 DSCPGMBK 0004 20 DSCPGMCG 008C DSCPGMC0 0088 DSCPGMFL 0002 08 DSCPGMLF 0078 DSCPROG 0000 DSCPSSP 001C DSCPTILK 0001 80 DSCPTILS 0001 04 DSCPTIL2 0001 40 DSCPURGE 0002 20 DSCRBINX 0002 80 DSCRELOC 0002 04 DSCREQCG 002C DSCREQC0 0028 DSCREQD 0020 DSCREQDG 0024 DSCREQDL 002C 00000010 DSCREQD0 0020 DSCRLOWR 00C8 DSCRLOWS 00C0 DSCRLRDV 0084 DSCSFCTG 0004 80 DSCSHDLK 0001 20 DSCSHFRM 0001 08 DSCSTAT 0002 DSCSTLPG 005C DSCSTLP0 0058 DSCSTLW 0050 DSCSTLWG 0054 DSCSTLWL 005C 00000010 DSCSTLW0 0050 DSCTKALL 0000 02 DSCTOTAL 0018 DSCTOTPB 00B0 DSCTRGCG 003C DSCTRGC0 0038 DSCTRGT 0030 DSCTRGTG 0034 DSCTRGTL 003C 00000010 DSCTRGT0 0030 DSCUNREF 0002 40 DSCWHOCM 00A0 DSCWHOEX 00A4 DSCWORD 0000 DSCXSTFL 0003 DSCXSTOR 0003 80
Copyright IBM Corporation, 1990, 2011