PM85835: Z/OS SPIN LOOP USING FPBP64=Y 64-BIT DEDB BUFFERING WHEN CTL REGION DISPATCH PRIORITY IS NOT HIGHER THAN DEPENDENT REGIONS

A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Current design of 64-bit buffer manager can cause serious issues
    such as Spin Loops, loss of z/OS, in a CPU constrained system
    where the CTL region does not have a higher dispatching
    priority than dependent regions.
    When there are buffers on the intermediate queue but none on
    the available queue, and a dependent region needs a DEDB buffer,
    DBFBPNI0 running under dependent region posts DBFBPNK0 ITASK
    running under XFP TCB in CTL region to move the buffers to
    the available queue. DBFBPNI0 waits 1/4 millisecond, checks
    the available queue again, and if buffers are still not
    available, posts DBFBPNK0 again.
    In a CPU constrained system, DBFBPNK0 may not be able to run
    fast enough, and the IPOST SRBs generated by the dependent
    regions overwhelm the CTL region and eventually the z/OS
    dispatcher.
    A better mechanism needs to be used here.
    

Local fix

  • Problem will not happen so long as the CTL region runs at a
    higher dispatching priority/service class then the dependent
    regions.
    System also needs to be CPU constrained for the problem to
    occur.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: IMSFP V11 DEDB FPBP64=Y Fast Path 64-bit     *
    *                 buffer users.                                *
    ****************************************************************
    * PROBLEM DESCRIPTION: Z/OS SPIN LOOP USING FPBP64=Y 64-BIT    *
    *                      DEDB BUFFERING WHEN CTL REGION          *
    *                      DISPATCH PRIORITY IS NOT HIGHER         *
    *                      THAN DEPENDENT REGIONS.                 *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    Current design of 64-bit buffer manager can cause serious issues
    such as Spin Loops, loss of z/OS, in a CPU constrained system
    where the CTL region does not have a higher dispatching
    priority than dependent regions.
    When there are buffers on the intermediate queue but none on
    the available queue, and a dependent region needs a DEDB buffer,
    DBFBPNI0 running under dependent region posts DBFBPNK0 ITASK
    running under XFP TCB in CTL region to move the buffers to
    the available queue. DBFBPNI0 waits 1/4 millisecond, checks
    the available queue again, and if buffers are still not
    available, posts DBFBPNK0 again.
    In a CPU constrained system, DBFBPNK0 may not be able to run
    fast enough, and the IPOST SRBs generated by the dependent
    regions overwhelm the CTL region and eventually the z/OS
    dispatcher.
    

Problem conclusion

  • GEN:
    KEYWORDS:
    
    *** END IMS KEYWORDS ***
    The following changes have been made to correct the reported
    problem:
    
    DBFESCD:  Add flag ESCDF3P6 x'40' in field ESCDFLG3 to indicate
              DBFBPNK0 itask is processing.
    
    DBFBPNI0: Add code to post DBFBPNK0 itask only when flag
              ESCDF3P6 is not set.
    
              Use compare and swap instruction to set ESCDF3P6 prior
              posting DBFBPNK0.
    
              Add 1/10 of a millisecond to STIMERM time interval
              each time it retry to get a buffer.
    
    DBFBPNK0: Use compare and swap instruction to reset ESCDF3P6
              prior to issue IWAIT to wait for work.
    
    DBFBPNI0: Add code to post DBFBPNK0 itask only when flag
              ESCDF3P6 is not set.
              Use compare and swap instruction to set ESCDF3P6 prior
              posting DBFBPNK0.
    
    DBFSDEQ0: Add code to post DBFBPNK0 itask only when flag
              ESCDF3P6 is not set.
              Use compare and swap instruction to set ESCDF3P6 prior
              posting DBFBPNK0.
    
    DBFSYP20: Add code to post DBFBPNK0 itask only when flag
              ESCDF3P6 is not set.
              Use compare and swap instruction to set ESCDF3P6 prior
              posting DBFBPNK0.
    
    DBFXCFL0: Add code to post DBFBPNK0 itask only when flag
              ESCDF3P6 is not set.
              Use compare and swap instruction to set ESCDF3P6 prior
              posting DBFBPNK0.
    
    DBFCSTS0,  DBFFATC0:  Update code to use compare and swap
               instruction to set/reset flag ESCDF3CS in flag
               field ESCDFLG3.
    

Temporary fix

  • *********
    * HIPER *
    *********
    

Comments

APAR Information

  • APAR number

    PM85835

  • Reported component name

    IMS V11

  • Reported component ID

    5635A0200

  • Reported release

    100

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-03-28

  • Closed date

    2013-05-14

  • Last modified date

    2013-06-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PM87746 PM87747 UK94300

Modules/Macros

  •    DBFBPNI0 DBFBPNK0 DBFCST00 DBFESCD  DBFFATC0
    DBFSDEQ0 DBFSYP20 DBFXCFL0
    

Fix information

  • Fixed component name

    IMS V11

  • Fixed component ID

    5635A0200

Applicable component levels

  • R100 PSY UK94300

       UP13/05/15 P F305

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.



Rate this page:

(0 users)Average rating

Document information


More support for:

IMS

Software version:

100

Reference #:

PM85835

Modified date:

2013-06-04

Translate my page

Machine Translation

Content navigation