SXSTE Back to Index page
 
Prolog 
Control Block Contents 
   SXSTE 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.


  SXSTE Prolog Top of page
 
 NAME       : HCPSXSTE
 DESCRIPTION: SXS Page Management Table Entry
 DSECT      : SXSTE
 FUNCTION   : A SXS Table Entry describes one 4K page of storage
              in the System Execution Space (SXS) address space.
 LOCATED BY : 64-bit Host Logical (SXS) addresses:
              PFXSTBLG + ((SXS Page ADDRESS / 4K) * SXSLENTH)
              SXSFPNTG  Field of HCPSXSTE for chained pages
              SXSBPNTG  Field of HCPSXSTE for chained pages
              SXSFRNXTG Free storage SXSTE forward pointer
              SUBANCHG  SUBBK SXSTE list anchor
              FRMSXSTE  Field of HCPFRMTE for pages mapped in SXS
              FRMSXPN   Indirectly since FRMSXPN is the page
              number, not the SXSTE address.
 CREATED BY : HCPSXU
 DELETED BY : None
 NOTES      : SXSTEs are contained in the SXS page management table.
              Space for the SXS page management table is allocated
              at system initialization and never released.
              The SXS page management table is contiguous in the
              SXS, but NOT in real storage. Algorithms that convert
              between SXSTE address and SXS storage address must use
              the SXS addresses for the SXSTE and the storage address.
              There is no relationship between the real addresses.
              The SXS Page Management Table (SXSTB) describes the
              usage of pages in the SXS for the range from zero to
              SYSSXSSZ-1. This area is referred to as the System
              Execution Area. The SXSTB and FRMTB both reside
              within the SXS address space but are in separate
              ranges of storage above 2G. They are permanently
              allocated at initialization and the usage of the
              individual pages in those ranges does not change.
              Therefore the SXSTB and FRMTB pages are not described
              by the SXSTB.
 SXSTE STATES AND STATE TRANSITIONS:
              The SXSTE is used to describe the state of a single page in
              the System Execution Space (SXS). Each SXS page may be
              either available or in use. In addition, each page may be
              backed or unbacked. Unbacked pages are never in use. Backed
              pages may be either in use or available. In use and
              available pages can be distinguished by whether SXSAVAIL is
              on. SXSBACKD identifies which pages are backed pages.
              Backed pages are associated with frames. The backing frames
              reside above or below 2G in real storage. This distinction
              can be determined by inspection of SXSBKB2G which is only
              meaningful if SXSBACKD is on.
              AVAILABLE SXS PAGES:
              Available pages are "owned" by the System Execution Space
              Page Manager (SXSPM). Available pages are kept on one of
              three queues depending on their backing characteristics:
              - available unbacked page queue (RSASXQAN)
              - available backed>2G page queue (RSASXAAN)
              - available backed<2G page queue (RSASXBAN)
              Available SXS pages always have SXSAVAIL on in the SXSTE.
              When they are on one of the available queues they can be
              taken only while holding the SXSPM Queue Lock (RSASXQLK).
              SXSONQUE will be on in any SXSTE that is on one of the
              available SXS queues.
              If SXSAVAIL is on but SXSONQUE is not on then the SXSTE is
              available but is in a transition state and is currently
              owned by one of the SXSPM tasks which is either in the
              process of consuming it or preparing it for return to a
              queue. This is referred to as the "Transitory State" and is
              needed by the SXSPM to allow task ownership of available
              pages for SXSPM tasks when the task must release the SXSPM
              Queue Lock. Transitory SXS pages may be backed or unbacked.
              In addition, a Transitory SXS page may have been allocated
              to satisfy a specific deferred request.  If so, SXSCPEBK
              will contain the address of the CPEBK that was stacked to
              complete the request. Transitory pages are not included
              in the available page count (RSASXAVL) or any of the in-use
              counts. The count of Transitory SXSTEs is the difference
              between the total number of SXSTEs minus the sum of the
              in use and available SXSTEs.
              The Transitory state is also used as a stable intermediate
              state within the SXSPM to reduce the complexity of state
              conversions. When available SXS pages are taken from a
              queue they are converted to the Transitory state. Aliases
              that are removed or stolen, and CP pages that are returned
              are converted to the Transitory state before any other
              transition is performed. Creation of aliases and CP pages
              is only done by using pages in the Transitory state. Pages
              that are to be placed on the available queues must be in
              the Transitory state before they are queued. Converting
              between available, backed and available, unbacked pages is
              only performed while the page is in the Transitory state.
              The purpose for these rules is to provide consistent input
              and output states for the functions responsible for making
              the SXSTE state transitions.
              Using information in SXSCSWRD it is possible to determine
              which of these states an SXS page is in when SXSAVAIL is on:
              - Transitory = SXSONQUE off, SXSBACKD "any", SXSBKB2G "any"
              - RSASXQAN   = SXSONQUE on,  SXSBACKD off
              - RSASXAAN   = SXSONQUE on,  SXSBACKD on,  SXSBKB2G off
              - RSASXBAN   = SXSONQUE on,  SXSBACKD on,  SXSBKB2G on
              This information is used in contiguous page searches to
              determine whether it can take an available page (SXSONQUE
              is on), and if so, which queue it needs to be dequeued
              from. Pointer updates for dequeueing can be done without
              knowing which queue the SXSTE is on, but update of the
              counts requires knowledge of which queue it is on.
              IN-USE SXS PAGES:
              When SXSAVAIL is off the SXS page is considered in use.
              The page may actually be in the process of being handed
              out as a CP page or alias, or being returned. The counts
              of in-use pages are updated when the pages are converted
              between in-use pages and the Transitory state. In-use
              pages are of two primary types: CP Pages and Aliases.
              An alias is an in-use page that has SXSUSER on in SXSCSB0.
              A CP page is an in-use page that has SXSUSER off in SXSCSB0
              and SXSCP must be on if SXSUSER is off. If SXSCP is on
              with SXSUSER then it is an Alias for a pageable space page,
              not a CP page.
              CP PAGES:
              CP pages are allocated by HCPSXU during initialization for
              permanently allocated pages such as the CP nucleus and the
              alternate processor PFXPGs. HCPSXP allocates CP pages as
              they are requested using HCPGETST, by Free Storage Manager
              calls to HCPSXPFS, or by direct calls to specialized
              HCPSXP entrypoints. See HCPSXP for additional information.
              CP pages are guaranteed to remain resident at the same
              location in real storage from the time they are allocated
              until the time they are returned. They are never stolen.
              In general, SXSCSB0 contains a value that matches FRMCSB0
              since the associated frame must be in use for the same
              purpose as the page. However, in the case of free storage
              the FRMTE will have FRMCSB0=FRMFSTG while the SXSTE will
              have a value in SXSCSB0 that identifies the type of free
              storage that the page is currently in use as. This allows
              the Free Storage Manager to convert SXS pages between types
              of free storage without needing to return and re-obtain
              them, or modify the FRMTE to indicate the new usage.
              ALIASES:
              Alias SXSTEs have no special "Alias indicator". They are
              identified by SXSUSER being on in SXSCSB0 and SXSAVAIL
              being off in SXSCSB3. An Alias is an SXS page associated
              with a resident page of a pageable address space. It is
              used to allow CP to inspect or modify the contents of the
              pageable address space page as if it is part of Host
              Logical storage. Aliases are created by HCPSXA when
              requested by HCPHTR and HCPHTU, generally when processing
              an HCPTRANS request. Aliases are generally left in place
              as long as possible to reduce the need to recreate aliases
              for future translation requests. Aliases can only be added
              to resident pageable space pages and the pageable space
              page is guaranteed to remain resident in the same frame as
              long as the alias remains in place. Frames cannot be stolen
              from pageable space pages without first removing the Alias.
              Aliases are guaranteed to remain in place as long as the
              page is last translated or locked in host logical, or if
              it is a protected guest prefix page. No-owned aliases are
              not allowed to be stolen.
              Aliases can only be removed under the following conditions:
              - SXSLKCNT=0 (not locked)
              - SXSLOCKD is off (not locked)
              - SXSCPLOK is off (not locked)
              - SXSLTRCTG=0 (not last translated)
              - SXSNOOWN is off (not no-owned) unless it is a specific
              request to remove a no-owned Alias made to HCPSXARN.
              - SXSPAGZP and SXSPAGZM are off (not a protected guest
              prefix page)
              - proper serialization is held which consists of:
              - FRMTE serialization (FRMSTEAL or FRMRELSE)
              - SXSTE serialization (SXSSTEAL or SXSRELSE)
              - PTE serialization (SHORT or ERRSHORT)
 SERIALIZED :
              SXSTE serialization differs depending on the current state
              of the SXSTE. The four state subsets of interest are:
              - Available SXS page SXSTEs (non-Transitory) - these SXSTEs
              are owned by the SXSPM and therefore serialized by the
              SXSPM Queue Lock (RSASXQLK).
              - Transitory SXSTEs - these SXSTEs have SXSAVAIL on so they
              are owned by the SXSPM, but they have SXSONQUE off so
              they are not serialized by the SXSPM Queue Lock. These
              SXSTEs are in transition between states and are owned by
              the task that placed them into the Transitory state. No
              other task is allowed to manipulate these SXSTEs. SXSTEs
              are in the Transitory state only within the SXSPM during
              the processing of a specific SXSPM task. The SXSPM Queue
              Lock is held while the SXSPM converts SXSTEs between the
              Transitory and any other state. While this isn't always
              necessary because some transitions can be done as atomic
              operations, the SXSPM Queue Lock is often needed for
              other reasons related to the transition such as queueing
              or dequeueing or count updates. Most RSMBK counts are
              serialized by the SXSPM Queue Lock to remove the need for
              an interlocked update for each individual count in the
              RSMBK.
              - In-Use CP page SXSTEs - these SXSTEs are serialized by
              the task that the page was allocated to. Often the SXSTEs
              are not modified at all by the task. However, in the case
              of free storage pages the Free Storage Manager maintains
              information in the SXSTEs and has its own serialization
              rules for updating the SXSTEs. The redefinitions below
              give an indication of which fields are updated by the
              Free Storage Manager. The SXSPM does not modify SXSTEs
              for CP pages while they are allocated to the task.
              - Alias SXSTEs - As soon as the SXSTE is marked as an Alias
              it is subject to Alias SXSTE serialization rules so the
              Alias is created in a serialized state. Serialization of
              Aliases uses SXSTE-specific serialization defined in
              SXSCSB3. The Alias serialization states of SXSTRANS,
              SXSRELSE and SXSSTEAL are mutually exclusive and provide
              an indication which type of task holds serialization and
              clues about the transitions that may occur. Although
              SXSAVAIL is in the same byte as the serialization bits,
              it does not provide serialization but rather that the
              SXSTE is either available or in the Transitory state and
              different serialization mechanisms apply. The SXSCSB3
              serialization bits apply only to Aliases and should
              never be on when SXSUSER is off or SXSAVAIL is on.
              - SXSTRANS - a translation type task is manipulating the
              Alias. Since Aliases are only created as the result of
              a translation request, they are created with SXSTRANS
              already on via an atomic transition from the Transitory
              to the Alias state.
              - SXSRELSE is used during release processing when Aliases
              are removed or made No-owned. The No-owned Manager also
              uses SXSRELSE when reclaiming the No-owned Aliases.
              - SXSSTEAL is used when an alias is being stolen by the
              SXSPM or being removed so that a frame can be stolen
              by the Frame Manager.
              The creation and destruction of Aliases requires SXSTE,
              FRMTE, and PTE serialization for the page which the
              alias is being created or destroyed. See HCPPGSER MACRO
              prolog for rules for obtaining serialization when PTE
              serialization is also needed. SXSTRANS is also used by
              translation and locking services for existing aliases.
              When Aliases are destroyed they are converted to the
              Transitory state in an atomic operation with SXSTE
              serialization on initially, but off afterwards.
 RELOCATION CONSIDERATIONS : None
 COMMENTS   :
              The definition of the SXSTE was derived heavily from the
              FRMTE to minimize impact to functions that manipulated
              information in the FRMTE but were changed to use host
              logical storage and SXSTEs instead. These functions are
              free storage, page translation, release processing,
              steal, etc. While there are significant similarities,
              there are subtle but important differences, especially
              in the area of serialization. Some fields in the SXSTE
              are in different locations than they were in the FRMTE in
              previous releases  For example, SXSLTRCTG and SXSLKCNT are
              in the first word of SXSSTATEG. Fields that exist in both
              the SXSTE and FRMTE are at the same displacements.
              While SXSTEs are on an available list they retain some of
              the state information from the prior usage, but may not
              remain associated with the backing frame. When aliases are
              removed they must be disassociated from the FRMTE. When
              CP pages are returned and the available backed page queue
              is at capacity the backing frame is removed. In both cases
              the SXSTE is placed on the available unbacked SXS page
              queue until it is reused. Although the backing frame has
              been removed, the SXS PTE will be invalid but will still
              contain the PFRA of the frame that the SXS page was last
              associated with. The frame may still contain useful data,
              however there is no guarantee that the frame has not been
              reused after it was disassociated from the SXS page.
              Several fields that exist in the SXSTE are for diagnostic
              or performance reasons:
              - Diagnostic information:
              - SXSRET14 contains the callers return address for
              CP pages that have been returned and the SXSTEs have
              not been reused. It can be useful in diagnosing cases
              where a page was expected to still be in use but had
              already been returned.
              - SXSOBT11 contains the R11 value (may be VMDBK) at
              the time of the obtain of a page with SXSCSB0=SXSCP
              and the CP page is still in use. It can be useful in
              diagnosing cases where it appears SXS pages are not
              being returned, or a page contains different contents
              than expected.
              - SXSOBT14 contains the callers return address from
              the time of the obtain of a page with SXSCSB0=SXSCP
              and the CP page is still in use. It can be useful in
              diagnosing cases where it appears SXS pages are not
              being returned, or a page contains different contents
              than expected.
              - SXSCPEBK contains the address of a CPEBK that is being
              re-driven and has been given this SXSTE to use to
              satisfy the deferred request. This information can be
              used to determine whether Transitory SXSTEs are lost.
              - Performance short-cuts
              - SXSSXPTE contains the address of the SXS PTE for
              available and Transitory SXS pages. It is used to
              quickly locate the SXS PTE when validating or
              invalidating the SXS PTE for the page. It is also to
              quickly obtain the backing frame address for backed
              available pages by getting the PFRA from the PTE.
              - SXSFRMAD is used to pass the address of the backing
              frame to HCPFRF when allocating a new free storage
              page to avoid the expense of an LRAG instruction.
 
 
  SXSTE Control Block Content Top of page
 

 SXSTE DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure SXSTE SXS Page Management Table Entry 0000 0 Dbl-Word 8 SXSGORGIN (0) SXS Table Entry Origin 0000 0 Address 8 SXSFPNTG SXSTE forward pointer 0008 8 Address 8 SXSBPNTG SXSTE backward pointer 0010 16 Address 8 SXSPTEG 64-bit ptr to page table entry. PTE address is the same as the VPG64 address for the 4K block of virtual storage. The VPG64 is a more convenient mapping. This is a host real address. 0018 24 Signed 8 SXSSTATEG SXS page status bits and flags. All bits are contained in a double word such that Compare & Swap-CSG can be used to serialize SXS page state changes. 00000020 SXSLENTH *-SXSTE Length of SXS table entry 00000005 SXSLenSh 5 Shift amount equivalent to multiplying by SXSLENTH 0000001F SXSAdrMk SXSLENTH-1 Mask to TMLL that the SXSTE address is properly aligned: TMLL Rx,SXSAdrMk BrNZ NotAligned Verify our requirements 0020 32 Dbl-Word 8 SXSNEXTG (0) Next sequential entry 0018 24 Bitstring 3 SXSLKCNT SXS page lock count. Only applies to Aliases. Locked Aliases cannot be stolen. 001B 27 Bitstring 1 SXSLTRCTG SXS page last translated count. Count of CPUs which have this SXSTE last translated. If >0, the SXS page cannot be stolen. Supports up to 126 (x'7E') processors due to no-owned bit & HCPLTRDC's assumption x'FF' = -1 Only applies to Aliases. 1... .... SXSLTRNOO X'80' SXS Page no-owned last translated edge trigger. When a page is no-owned, decrement SXSLTRCTG by 1 and this bit is turned on. When SXSLTRCTG goes x'80'->'00', call the HCPNOOUT edge trigger. Only applies to Aliases. The codes that include the x'01' in their definition are a function of the SXSCP bit and are considered to be CP pages unless SXSUSER is also on. In that case they are Aliases for CP owned pageable space pages. The codes that include the X'02' in their definition are a function of the SXSDS bit and are considered to be data space pages. SXSDS bit is only allowed to be used to combine with SXSUSER or SXSSUSER and SXSCP to form SXSDTSP or SXSSUTIL. These are Aliases. All SXS pages used as aliases will have the X'80' bit indicating it is associated with a "pageable FRMTE". All in-use SXS pages that don't have SXSUSER set must have SXSCP set and are considered CP pages. Free storage pages are associated with each other by the X'61' bits. Notes : Any new page code that contains the X'61' bits must be a type of free storage page. There are places in the system that check for the X'61' bits to determine whether or not a page is a free storage page. The code X'FF' is never a valid page usage code in SXSCSB0. SXSNEVER is available to test whether a value is a page usage code or not. For example, whether a parameter passed in SAVER2B3 is a page usage code or not. When a frame is associated with a page in the System Execution Space (SXS), the frame use code in FRMCSB4G will match the page use code in SXSCSB4G of the SXSTE. All codes and bits should be kept in sync between FRMTE and SXSTE. The one exception is the case of free storage pages where FRMCSB0=FRMFSTG but SXSCSB0 has a value that indicates which type of free storage the page currently is. 001C 28 Signed 4 SXSCSWRD (0) Cover for the 4 state bytes ...1 11.. SXSCSB4G SXSCSB0 SXSCSB4G Compare and swap dword byte 4. 001C 28 Bitstring 1 SXSCSB0 Compare and swap word byte 0. CSG not necessarily required to alter these bits. 00000002 SXSDS X'02' SXSDS SXS page in use for a data spaces 0000000D SXSMDCHT X'0D' SXSMDCHT Page used for MDC hash table. 00000010 SXSOFFLN X'10' SXSOFFLN SXSTE is offline and unavailable 00000031 SXSPRFX X'31' SXSPRFX Prefix page SXS page save area page 00000065 SXSFRVM X'65' SXSFRVM SXS page used for GUESTPERM free storage that is not satisfied out of VMDBK free storage (VMDLSPAC). 00000067 SXSFRSY X'67' SXSFRSY SXS page used for system free 00000069 SXSAFS X'69' SXSAFS SXS page used for host logical aligned free storage. 0000006B SXSVCB X'6B' SXSVCB SXS page used for verifiable control block free storage. "pageable FRMTE"; user page. 00000082 SXSDTSP X'82' SXSDTSP SXS page used for a user's data space page. 00000083 SXSSUTIL X'83' SXSSUTIL SXS page used for CP utility address space page. 000000C3 SXSSVDSK X'C3' SXSSVDSK SXS page used for VDISK System Utility address space page. 0000007D SXSPDISO X'7D' SXSPDISO Isolate SXSUSER and SXSDTSP fields of SXSCSB0. This is done to allow code to test, for either SXSUSER *or* SXSDTSP being on with one instruction. 000000FF SXSNEVER X'FF' SXSNEVER Equate to reserve a value which will never be a valid SXS page usage code. 00000001 SXSCP FRMCP SXSCP Page in use by control program 00000021 SXSTRACE FRMTRACE SXSTRACE CP Trace Table Page 00000061 SXSFREE FRMFSTG SXSFREE Logical free storage page 00000080 SXSUSER FRMUSER SXSUSER SXS Alias for User Page These codes are primarily static page use codes. The exception is for free storage types which can be changed by the Free Storage Manager as the pages are reused for a different type of free storage than previously used. Some codes are defined in HCPEQUAT for use with HCPGETST. The following pages can be stolen by the steal task: SXSUSER - Both private and shared pages (pageable) SXSDTSP - Data space pages (private and shared) SXSSUSER - System user pages SXSSUTIL - System utility pages 0000001D SXSCSB5G SXSCSB1 Compare and swap dword byte 5. 001D 29 Bitstring 1 SXSCSB1 Compare and swap word byte 1. Compare and swap not necessarily required to alter these bits. 1... .... SXSLOCKD X'80' SXSLOCKD SXS page is locked in real storage (SXSLKCNT is greater than zero) Only applies to Aliases. Locked Aliases can not be stolen. .1.. .... SXSCPLOK X'40' SXSCPLOK SXS page locked by CP Lock command Only applies to Aliases. Locked Aliases can not be stolen. .... 1... SXSBKB2G X'08' SXSBKB2G For a backed page indicates whether backing frame is below 2G or not. .... .1.. SXSBACKD X'04' SXSBACKD SXS page has backing frame. This page may be an Alias for a "pageable FRMTE", a CP-use SXS page, or on an available, backed SXS page queue. .... ..1. SXSONQUE X'02' SXSONQUE SXS page is currently on a queue. Which queue the page is on depends on the page's current state. It may be on one of the SXSPM queues or on a queue specific to the SXSTE use code. SXSTEs for Aliases i.e. the SXS page is associated with a "pageable FRMTE"; may or may not be on the Potentially Stealable queue. SXSTEs for Aliases that are locked are initially left on that queue but may be removed by the SXSPM when looking for an available page to satisfy a request. Free storage also uses SXSONQUE to indicate that the page is on either: SXSFRSY - The system free storage SXS pages queue. SXSFRVM - The VMDBK free storage SXS pages queue. ...1 111. SXSCSB6G SXSCSB2 SXSCSB6G Compare and swap dword byte 6. These bits are primarily static SXS page flag bits 001E 30 Bitstring 1 SXSCSB2 Compare and swap word byte 2. Compare and swap not necessarily required to alter these bits. .1.. .... SXSNOOWN X'40' SXSNOOWN SXS page is no-owned. Only applies to Aliases. No-owned Aliases cannot be stolen. .... 1... SXSPAGZP X'08' SXSPAGZP SXS page is an Alias for a guest prefix page that is protected from being stolen even if not locked or last translated. When set, some VMDBK has VMDPAGZP containing the address for the page described by this SXSTE. See HCPPZERO. Only for Aliases. .... .1.. SXSPAGZM X'04' SXSPAGZM Modifier to SXSPAGZP indicating the Alias is a protected prefix page for more than one cpu in the virtual configuration. Must never be set without SXSPAGZP. Only applies to Aliases. SXSCSB7G SXSTE serialization byte. Contains the four mutually exclusive SXSTE serialization bits. See the serialization section of this part prologue for a detailed discussion of SXSTE serialization rules. 0000001F SXSCSB7G SXSCSB3 Compare and swap dword byte 7. 001F 31 Bitstring 1 SXSCSB3 Compare and swap word byte 3. 1... .... SXSAVAIL X'80' SXSAVAIL SXS page is not in use. The page will be on one of the available SXS page queues depending on SXSBACKD and SXSBKB2G settings unless SXSONQUE is off which indicates that the SXSTE is in the Transitory state. When SXSAVAIL is set the SXSTE may contain residual information from the prior usage. .1.. .... SXSTRANS X'40' SXSTRANS SXS page is being translated. ..1. .... SXSRELSE X'20' SXSRELSE SXS page is being released. ...1 .... SXSSTEAL X'10' SXSSTEAL SXS page is being stolen by the SXS page manager or the real frame manager is stealing frame which requires removal of Alias. END OF DEFINITION for SXS page mgt table entries These bits are used to serialize SXS page state changes. SXSTRANS, SXSRELSE and SXSSTEAL are used only for Aliases. SXSAVAIL indicates it is owned by the SXSPM and does not provide any serialization by itself. See the discussion of serialization in the prolog. Redefinition for SXS pages that are not chained. 0000 0 Signed 4 * Reserved for IBM use 0004 4 Signed 4 SXSID 4 character identifier These identifiers are for visual recognition and are not intended to be used as flags. '*CP*' SXS page in use by control program 'TRAC' CP trace table page 'FREE' SXS page in use for free storage 'SAVE' SXS page in use by save area manager 'PRFX' Prefix page 'AFS ' Aligned free storage 'VCB ' Verifiable control block 'MPWD' SXS CP page in use by HCPDMP for a contiguous ID-mapped buffer. 0008 8 Signed 8 * Reserved for IBM use 0010 16 Address 8 * Reserved for IBM use 0018 24 Signed 8 * SXSSTATEG (flags and status bits) Redefinition for free storage SXS pages A VMDBK is a CP page (SXSCSB0=SXSCP) that is also a free storage page because of the free storage area at the end of the VMDBK. As such the redefinition for generic CP SXS pages applies when the VMDBK is first allocated, but once HCPFRGVI initializes the free storage within the VMDBK the redefinition for free storage SXS pages applies as well. 0000 0 Address 8 SXSFRNXTG Free storage SXSTE forward ptr. Only used for free storage types that are chained by SXSTE; i.e. non-SHORTTERM free storage. 0008 8 Bitstring 1 SXSFSFLG Free storage flag byte 1... .... SXSB2GANY X'80' SXSB2GANY Free storage page backed <2G but obtained for ANY request 0009 9 Bitstring 1 * (3) Reserved for IBM use 000C 12 Signed 2 SXSVMFRG Meaning is dependent on what type of free storage page it is: - SXSAFS - contains block size. - SXSVCB - contains the VCB code input on the verifiable free storage request. See HCPEQUAT for a list of VCB codes. - SYSPERM/GUESTPERM - contains the size of the largest unallocated block remaining in this page. - VMDBK free storage - contains the size of space available in the VMDBK for GUESTPERM requests. 000E 14 Signed 2 SXSDWUSE Doublewords of storage in use 0010 16 Address 8 SXSCHNG (0) Generic name for this doubleword 0010 16 Signed 4 * Reserved for IBM use 0014 20 Address 4 SXSCHN 31-bit ptr to 1st free storage available block in this page. This page is located in the system execution space; i.e. it is a host logical address. Only 31-bit addresses from this space are allocated for use as free storage. This field is also used when contiguous pages are allocated and released by HCPSXPNM and HCPSXPRM respectively. When used for this reason, SXSCHNG will contain a number indicating the total number of contiguous pages in a contiguous set (from lowest to highest SXSTE address.) An allocated single page may have a SXSCHNG value of zero (indicating it was allocated via HCPSXPDF) or one (indicating it was allocated via HCPSXPNM). Note SXSCHNG is not used for the temporary queues of pages returned on calls like FRFDX -> HTFRQ. 0018 24 Signed 8 * SXSSTATEG (flags and status bits) SXSCHNG redefinitions used by the Free Storage Manager during garbage collection (HCPFRFDX) of SHORTTERM and fast allocated subpooled free storage (HCPFGST/HCPFRST). 0010 16 Signed 4 * Reserved for IBM use 0014 20 Signed 2 SXSBCT Count of returned blocks 0016 22 Signed 2 SXSLAST Last block queued Redefinition of SXSTEs handed out by HCPSXPFS. This is a temporary redefinition. HCPFRF converts the SXSTE format to the redefinition above. 0010 16 Dbl-Word 8 SXSFRMAD Real address of backing frames. Redefinition for generic CP SXS pages (SXSCSB0=SXSCP) that are handed out by HCPSXP. This redefinition does not apply for nucleus pages even though SXSCSB0=SXSCP. These fields are not set in the first SXSTE of a contiguous set since this area is redefined for FRMCHNG. The R11 and R14 values can be obtained from any other SXSTE in the range. Since it is possible to return a single page via the contiguous page return interface Bit 0 will be on in SXSOBT14 so it is negative and HCPSXPRC knows it isn't a valid SXSCHN value. 0010 16 Signed 4 SXSOBT11 Obtainers' R11 from SVGR11. 0014 20 Signed 4 SXSOBT14 Obtainers' R14 from SVGR14. When Set bit 0 is on to indicate this field does not contain FRMCHN. Redefinition for available SXS pages assigned to CPEBKs for redriven deferred requests. 0008 8 Signed 4 SXSCPEBK CPEBK SXSTE was given to. Redefinition for available SXS pages whether on a queue or while being processed in the SXSPM. 0010 16 Dbl-Word 8 SXSSXPTE SXS PTE for page SXSTE describes. 0018 24 Signed 4 SXSRET14 SVGR14 from return of page. The value is zero if the page has never been used. May be overlaid by internal processes in SXSPM.
 
 
  SXSTE Storage Layout Top of page
 
          
*** SXSTE - SXS Page Management Table Entry
*
*     +-------------------------------------------------------+
*   0 |                       SXSFPNTG                        |
*     +-------------------------------------------------------+
*   8 |                       SXSBPNTG                        |
*     +-------------------------------------------------------+
*  10 |                       SXSPTEG                         |
*     +-------------------------------------------------------+
*  18 |                      SXSSTATEG                        |
*     +-------------------------------------------------------+
*
*** SXSTE - SXS Page Management Table Entry
          
*** Overlay for SXSSTATEG in SXSTE
*
*     +--------------------+------+------+------+------+------+
*  18 |     SXSLKCNT       |(01B) |:CSB0 |:CSB1 |:CSB2 |:CSB3 |
*     +--------------------+------+------+------+------+------+
*  20
*
*** Overlay for SXSSTATEG in SXSTE
          
*** Overlay for SXSGORGIN in SXSTE
*
*     +---------------------------+---------------------------+
*   0 |///////////////////////////|          SXSID            |
*     +---------------------------+---------------------------+
*   8 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  10 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  18 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  20
*
*** Overlay for SXSGORGIN in SXSTE
          
*** Overlay for SXSGORGIN in SXSTE
*
*     +-------------------------------------------------------+
*   0 |                      SXSFRNXTG                        |
*     +------+--------------------+-------------+-------------+
*   8 |:FSFLG|////////////////////|  SXSVMFRG   |  SXSDWUSE   |
*     +------+--------------------+-------------+-------------+
*  10 |///////////////////////////|          SXSCHN           |
*     +---------------------------+---------------------------+
*  18 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  20
*
*** Overlay for SXSGORGIN in SXSTE
          
*** Overlay for SXSCHNG in SXSTE
*
*     +---------------------------+-------------+-------------+
*  10 |///////////////////////////|   SXSBCT    |  SXSLAST    |
*     +---------------------------+-------------+-------------+
*  18
*
*** Overlay for SXSCHNG in SXSTE
          
*** Overlay for SXSPTEG in SXSTE
*
*     +-------------------------------------------------------+
*  10 |                       SXSFRMAD                        |
*     +-------------------------------------------------------+
*  18
*
*** Overlay for SXSPTEG in SXSTE
          
*** Overlay for SXSPTEG in SXSTE
*
*     +---------------------------+---------------------------+
*  10 |         SXSOBT11          |         SXSOBT14          |
*     +---------------------------+---------------------------+
*  18
*
*** Overlay for SXSPTEG in SXSTE
          
*** Overlay for SXSBPNTG in SXSTE
*
*     +---------------------------+
*   8 |         SXSCPEBK          | C
*     +---------------------------+
*
*** Overlay for SXSBPNTG in SXSTE
          
*** Overlay for SXSPTEG in SXSTE
*
*     +-------------------------------------------------------+
*  10 |                       SXSSXPTE                        |
*     +-------------------------------------------------------+
*  18
*
*** Overlay for SXSPTEG in SXSTE
          
*** Overlay for SXSSTATEG in SXSTE
*
*     +---------------------------+
*  18 |         SXSRET14          | 1C
*     +---------------------------+
*
*** Overlay for SXSSTATEG in SXSTE
 
 
  SXSTE Cross Reference Top of page
 
 
Symbol         Dspl Value
-------------- ---- -----
SXSAdrMk       0018 0000001F
SXSAFS         001C 00000069
SXSAVAIL       001F 80
SXSBACKD       001D 04
SXSBCT         0014
SXSBKB2G       001D 08
SXSBPNTG       0008
SXSB2GANY      0008 80
SXSCHN         0014
SXSCHNG        0010
SXSCP          001C 00000001
SXSCPEBK       0008
SXSCPLOK       001D 40
SXSCSB0        001C
SXSCSB1        001D
SXSCSB2        001E
SXSCSB3        001F
SXSCSB4G       001C 1C
SXSCSB5G       001C 0000001D
SXSCSB6G       001D 1E
SXSCSB7G       001E 0000001F
SXSCSWRD       001C
SXSDS          001C 00000002
SXSDTSP        001C 00000082
SXSDWUSE       000E
SXSFPNTG       0000
SXSFREE        001C 00000061
SXSFRMAD       0010
SXSFRNXTG      0000
SXSFRSY        001C 00000067
SXSFRVM        001C 00000065
SXSFSFLG       0008
SXSGORGIN      0000
SXSID          0004
SXSLenSh       0018 00000005
SXSLAST        0016
SXSLENTH       0018 00000020
SXSLKCNT       0018
SXSLOCKD       001D 80
SXSLTRCTG      001B
SXSLTRNOO      001B 80
SXSMDCHT       001C 0000000D
SXSNEVER       001C 000000FF
SXSNEXTG       0020
SXSNOOWN       001E 40
SXSOBT11       0010
SXSOBT14       0014
SXSOFFLN       001C 00000010
SXSONQUE       001D 02
SXSPAGZM       001E 04
SXSPAGZP       001E 08
SXSPDISO       001C 0000007D
SXSPRFX        001C 00000031
SXSPTEG        0010
SXSRELSE       001F 20
SXSRET14       0018
SXSSTATEG      0018
SXSSTEAL       001F 10
SXSSUTIL       001C 00000083
SXSSVDSK       001C 000000C3
SXSSXPTE       0010
SXSTRACE       001C 00000021
SXSTRANS       001F 40
SXSUSER        001C 00000080
SXSVCB         001C 0000006B
SXSVMFRG       000C
 
This information is based on z/VM 7.3.0 Last updated on 22 Jun 2022 at 15:56:48 EDT.
Copyright IBM Corporation, 1990, 2022