About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
DSRBK | Back to Index page |
Prolog Control Block Contents DSRBK DSECT DSRsectn DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
|
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 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 |
Copyright IBM Corporation, 1990, 2024