DSRBK Back to Index page
 
Prolog 
Control Block Contents 
   DSRBK DSECT
   DSRsectn DSECT
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.


  DSRBK Prolog Top of page
 
 NAME       : HCPDSRBK
 DESCRIPTION: Dynamic Storage Reconfiguration Block
 DSECT      : DSRBK
 FUNCTION   : To represent a dynamic storage reconfiguration while
              a reconfiguration is in progress.
 LOCATED BY : RSMBK
 CREATED BY : HCPPCC
 DELETED BY : HCPPCC
 SERIALIZED : The DSRBK is the control point for Dynamic Storage
              Reconfiguration (DSR) actions.  Only a single DSR
              action may be active at a time.  The SYSDSRLK lock
              would be acquired exclusive in order to provide that
              serialization.
              DSR actions are generally initiated by the SET STORAGE
              command.
              A SET STORAGE HALT command does not
              require the SYSDSRLK lock.
              A SET STORAGE command that causes the configuration of
              system storage to change does require the SYSDSRLK
              exclusive.
 COMPATIBILITY AND MIGRATION CONCERNS: None.
 RELOCATION CONSIDERATIONS: This block is not relocated as this is a CP internal
              control block that exists only during the duration of
              a dynamic storage reconfiguration on a given system.
 COMMENTS   :
              Proper steps for a SET STORAGE alteration.
              - parse the command, exit if syntax error
              - acquire the SYSDSRLK lock
              - verify that the current state of the system suggests
              a likelihood the command will succeed
              - for example, a storage increase has sufficient
              STANDBY
              - for example, a storage decrease has sufficient
              current reconfig that can be removed
              - fill the DSRBK with the SET STORAGE request
              - stack a call to HCPPCCAS on SYSTEMMP,
              passing the DSRBKin R1
              - tell the user "SET STORAGE processing has been
              initiated"
              - exit
              - HCPPCCAS will invoke the appropriate service
              routines
              - HCPPCCAS will step through the DSRBK action
              sections, updating DSRSOFF to point to the section
              being processed.
              - HCPPCCAS will use the DSRsecTyp contents to select
              a processing routine for the action.
              - HCPPCCAS will call the routine,
              passing the DSRBK in R1
              - The routine will use DSRSOFF to locate its
              action section
              - The routine will complete its action and return
              - If the routine cannot complete its action,
              it will set DSRiHalt and return
              - at completion, HCPPCCAS will destroy the DSRBK
              and release the SYSDSRLK lock
              - Since SET STORAGE HALT has
              unserialized access to the DSRBK, care must be
              taken so that HCPPCCAS does not release the DSRBK
              while these other tasks are looking at it.
              HCPPCCAS should do the following.
              - continue holding the SYSDSRLK lock
              - clear the RSMBK pointer
              - call HCPMPDLY for CP loss of control
              - HCPRELST the DSRBK
              - release the SYSDSRLK lock
              - write any termination messages
              - exit
              Proper steps for a SET STORAGE HALT
              - parse the command, exit if syntax error
              - call the HALT service
              - the HALT service
              - load the RSMBK pointer to the DSRBK,
              if 0, nothing to halt
              - set the DSRcHalt code
              - exit
              - Vacator notices that DSRcode0 is set to halt
              - Begins vacate cleanup
              - Wait for all the threads to halt or finish
              - Last thread returns to caller
              A single SET STORAGE command should be represented by
              a single DSRBK.  A SET STORAGE command that calls for
              multiple DSR actions would have multiple DSRsectn
              sections, each describing a single "primitive" action.
              For example,
              SET STORAGE add PERM x add RECONFIG y
              would have a section for the "add PERM" and a section
              for the "add RECONFIG".
              Processing would be in DSRsectn order.  The builder of
              the DSRBK would decide on the order, in this case,
              - add perm then add reconfig, or
              - add reconfig then add perm
              DSRcode0 is valid only after processing has completed,
              whether successfully or not.
              When DSRcode0 indicates failure, the DSRsectn that did
              not complete successfully will be the DSRsectn at
              the offset in DSRSOFF.  That DSRsectn would indicate
              in DSRsecCompCode the reason for the failure.
              If a DSRsectn was not successful, its DSRsecSzRqS would
              indicate how much was not completed.
              Normally, one would expect that after a DSRBK has been
              processed, the rsaDSRBK pointer to the active DSRBK
              would be cleared.  However, certain routines look at
              rsaDSRBK and take special actions when the rsaDSRBK
              pointer has gone to zero to indicate storage
              reconfigurations have completed.  For example,
              HCPPCCWT.  However, during system initialization it
              might be true that 2 DSRBKs need to complete before
              HCPPCCWT does its thing.  To facilitate that, HCPPCCAS
              will store the contents of DSRrsaNxt into rsaDSRBK.  If
              that value is non-zero, HCPPCCWT will not continue to
              its next action until rsaDSRBK does finally contain
              zero.
 
 
  DSRBK Control Block Content Top of page
 

 DSRBK DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure DSRBK Dynamic Storage Reconfiguration Block 0000 0 Signed 8 DSRuniqueifier 64-bit value unique to each DSRBK during a single IPL 0008 8 Signed 8 DSRStartTOD STCK that the DSR was initiated. 0010 16 Signed 8 DSREndTOD STCK that the DSR ended. 0018 24 Character 8 DSRuserid Userid who issued SET STORAGE. The user may logoff. To send asynchronous messages to the user, the user's VMDBK must be found anew after every loss of control. 0020 32 Character 8 DSRhaltid Userid who issued the SET STORAGE HALT command or SYSTEM if halted by Internal processing. The user may logoff. To send asynchronous messages to the user, the user's VMDBK must be found anew after every loss of control. 0028 40 Signed 8 DSRSYSGstart SYSGTORS at the start of a reconfiguration 0030 48 Address 4 DSRrsaNxt The next value for rsaDSRBK 0034 52 Address 4 DSRdun Chain of "done" DSRBKs 0038 56 Signed 8 * Reserved for IBM additional interesting controls DSRsecCompCode (the section completion code) can be moved into DSRcode0 (the DSRBK completion code). These values must be coordinated in order avoid confusion. 0040 64 Signed 1 DSRcode0 Return status code cmt 0 Not all DSRsectn actions completed 00000001 DSRcmplt 1 All DSRsectn actions completed cmt EQU 2 See DSRsecCompCode 00000003 DSRiHalt 3 Internal processing halted 00000004 DSRcHalt 4 SET STORAGE command HALT 00000005 DSRiFail 5 Internal failure cmt EQU 6 See DSRsecCompCode cmt EQU 7 See DSRsecCompCode cmt EQU 8 See DSRsecCompCode 0041 65 Bitstring 1 DSRflag0 Flags .... ...1 DSRf0asy x'01' DSRf0asy SET STORAGE command ASYNC .... ..1. DSRf0forc x'02' DSRf0forc SET STORAGE command FORCE .... .1.. DSRf0maxf x'04' DSRf0maxf SET STORAGE command MAXPAGEFULL 1... .... DSRf0PNR x'80' DSRf0PNR HALT command is now moot: past the point of no return ..1. .... DSRf0NMS x'20' DSRf0NMS Completion message MS2582 should not be written 0042 66 Bitstring 1 DSRWARNPC MAXPAGEfull % or User Page Warn % 0043 67 Bitstring 1 DSRHaltPC Percent calc'd by HCPVAUVT that caused the reclamation to halt 0044 68 Signed 2 DSRSNBR Count of DSRsectn in DSRBK. 1 to nbr of sections. Unchanging. Use DSRSOFF to march from DSRsectn to the next. Maximum value for DSRSNBR, that is, the maximum number of DSR action sections in a single DSRBK. 0000003E DSRSNBRmax (FREMX-DSRhdrSD)/DSRsecSD 0046 70 Signed 2 DSRSOFF Offset from DSRBKstn to the current DSRsectn to be (or being) processed 0048 72 Signed 4 DSRAvailZonesVac Number of Available List zones vacated 004C 76 Signed 4 DSRPagesMoved Number of pages whose content was moved out of a vacating zone 0050 80 Signed 4 DSRPgSkpSer Number of times pages were skipped when vacating storage because the necessary seriali- zation could not be obtained 0054 84 Signed 4 DSRPgSkpPin Number of times pages were skipped because they were pinned in storage 0058 88 Signed 4 DSRPgSkpFrm Number of times pages were skipped, and an HCPVACAT thread was suspended, because there were no frames available for moving the page content 005C 92 Signed 4 DSRTotVCFBKs Number of Vacator Frame Blocks (VCFBKs) obtained during the storage removal operation 0000000C DSRhdrSD (*-DSRBK+7)/8 DSRBK header size 0060 96 Dbl-Word 8 * (0) Align DSRBKstn on d-word 00000060 DSRBKstn * Start of DSR request sections
 DSRsectn DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure DSRsectn Dynamic Storage Reconfiguration Block 0000 0 Signed 8 DSRsecStrt STCK that the section started 0008 8 Signed 8 DSRsecFini STCK that the section finished 0010 16 Signed 1 DSRsecTyp Type of request .... ...1 DSRsecTypAP 1 DSRsecTypAP Add PERM storage .... ..1. DSRsecTypAR 2 DSRsecTypAR Add RECONFIG storage .... ..11 DSRsecTypRR 3 DSRsecTypRR Remove RECONFIG storage 0011 17 Bitstring 1 * Reserved for IBM use. DSRsecCompCode (the section completion code) can be moved into DSRcode0 (the DSRBK completion code). These values must be coordinated in order avoid confusion. 0012 18 Signed 1 DSRsecCompCode Completion code cmt EQU 0 Incomplete, or not started 00000001 DSRsecCompOK 1 DSRcmplt Completed, success 00000002 DSRsecCompFailViability 2 Failed initial viability test 00000003 DSRsecCompHaltByProgram DSRiHalt 3 Halted programmatically: a sub- sequent viability test failed 00000004 DSRsecCompHaltByCommand DSRcHalt 4 Halted by command cmt EQU 5 DSRiFail: Internal Failure 00000006 DSRsecCompNoStorage 6 InSufficient Storage to satisfy request 00000007 DSRsecCompFailZone 7 Sufficient number of zones could not be vacated 00000008 DSRsecCompFailSCLP 8 SCLP request failed: response code in DSRsecCompCodeSCLP 0013 19 Bitstring 1 * Reserved for IBM 0014 20 Signed 2 DSRsecCompCodeSCLP SCLP response code 0016 22 Signed 2 * Reserved for IBM 0018 24 Signed 8 DSRsecSzTgt Targeted Size of memory in Bytes 0020 32 Signed 8 DSRsecSzRqO Bytes originally requested 0028 40 Signed 8 DSRsecSzRqS Bytes still to do 0030 48 Signed 8 DSRsecSXSmore SXS addressability growth 0038 56 Signed 8 * Reserved for IBM 00000008 DSRsecSD (*-DSRsectn+7)/8 DSRBK section size
 
 
  DSRBK Storage Layout Top of page
 
          
*** DSRBK - Dynamic Storage Reconfiguration Block
*
*     +-------------------------------------------------------+
*   0 |                    DSRUNIQUEIFIER                     |
*     +-------------------------------------------------------+
*   8 |                     DSRSTARTTOD                       |
*     +-------------------------------------------------------+
*  10 |                      DSRENDTOD                        |
*     +-------------------------------------------------------+
*  18 |                      DSRUSERID                        |
*     +-------------------------------------------------------+
*  20 |                      DSRHALTID                        |
*     +-------------------------------------------------------+
*  28 |                     DSRSYSGSTART                      |
*     +---------------------------+---------------------------+
*  30 |        DSRRSANXT          |          DSRDUN           |
*     +---------------------------+---------------------------+
*  38 |///////////////////////////////////////////////////////|
*     +------+------+------+------+-------------+-------------+
*  40 |:CODE0|:FLAG0|(042) |(043) |  DSRSNBR    |  DSRSOFF    |
*     +------+------+------+------+-------------+-------------+
*  48 |     DSRAVAILZONESVAC      |      DSRPAGESMOVED        |
*     +---------------------------+---------------------------+
*  50 |       DSRPGSKPSER         |       DSRPGSKPPIN         |
*     +---------------------------+---------------------------+
*  58 |       DSRPGSKPFRM         |       DSRTOTVCFBKS        |
*     +---------------------------+---------------------------+
*  60
*
*** DSRBK - Dynamic Storage Reconfiguration Block
          
*** DSRsectn - Dynamic Storage Reconfiguration Block
*
*     +-------------------------------------------------------+
*   0 |                      DSRSECSTRT                       |
*     +-------------------------------------------------------+
*   8 |                      DSRSECFINI                       |
*     +------+------+------+------+-------------+-------------+
*  10 |(010) |//////|(012) |//////|:SECCOMPCODE>|/////////////|
*     +------+------+------+------+-------------+-------------+
*  18 |                     DSRSECSZTGT                       |
*     +-------------------------------------------------------+
*  20 |                     DSRSECSZRQO                       |
*     +-------------------------------------------------------+
*  28 |                     DSRSECSZRQS                       |
*     +-------------------------------------------------------+
*  30 |                    DSRSECSXSMORE                      |
*     +-------------------------------------------------------+
*  38 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  40
*
*** DSRsectn - Dynamic Storage Reconfiguration Block
 
 
  DSRBK Cross Reference Top of page
 
 
Symbol         Dspl Value
-------------- ---- -----
DSRcmplt       0040 00000001
DSRcode0       0040
DSRcHalt       0040 00000004
DSRdun         0034
DSRflag0       0041
DSRf0asy       0041 01
DSRf0forc      0041 02
DSRf0maxf      0041 04
DSRf0NMS       0041 20
DSRf0PNR       0041 80
DSRhaltid      0020
DSRhdrSD       005C 0000000C
DSRiFail       0040 00000005
DSRiHalt       0040 00000003
DSRrsaNxt      0030
DSRsecCompCode
               0012
DSRsecCompCodeSCLP
               0014
DSRsecCompFailSCLP
               0012 00000008
DSRsecCompFailViability
               0012 00000002
DSRsecCompFailZone
               0012 00000007
DSRsecCompHaltByProgram
               0012 00000003
DSRsecCompHaltByCommand
               0012 00000004
DSRsecCompNoStorage
               0012 00000006
DSRsecCompOK   0012 00000001
DSRsecFini     0008
DSRsecStrt     0000
DSRsecSzRqO    0020
DSRsecSzRqS    0028
DSRsecSzTgt    0018
DSRsecSD       0038 00000008
DSRsecSXSmore  0030
DSRsecTyp      0010
DSRsecTypAP    0010 01
DSRsecTypAR    0010 02
DSRsecTypRR    0010 03
DSRuniqueifier
               0000
DSRuserid      0018
DSRAvailZonesVac
               0048
DSRBKstn       0060 00000060
DSREndTOD      0010
DSRHaltPC      0043
DSRPagesMoved  004C
DSRPgSkpFrm    0058
DSRPgSkpPin    0054
DSRPgSkpSer    0050
DSRStartTOD    0008
DSRSNBR        0044
DSRSNBRmax     0044 0000003E
DSRSOFF        0046
DSRSYSGstart   0028
DSRTotVCFBKs   005C
DSRWARNPC      0042
 
This information is based on z/VM 7.3.0 Last updated on 22 Jun 2022 at 15:49:54 EDT.
Copyright IBM Corporation, 1990, 2022