PJ40766: PROVIDE PDU THROTTLING MECHANISM
Closed as program error.
See Problem Summary.
APAR NUMBER: PJ40766 PRODUCT: z/TPF FUNCTIONAL AREA: POOLS SHIPPED IN PUT: 10 ABSTRACT: Enhancement to ZRPDU CREATE to limit the number of ECBs that it uses. PACKAGE CONTENTS: Source Segments: (C) base/include/tpf/c_bk0rp.h (N) base/include/tpf/c_bl0rf.h (C) base/include/tpf/i_pdu.h (C) base/macro/bk0rp.mac (C) base/rt/bof7.asm (C) base/rt/bofa.asm (C) base/rt/pdu_mr_processing.c Object Only Binaries: None. Configuration Independent Binaries: (C) base/lib/libBSSA.so (C) base/load/BSSA.so (C) base/obj/pdu_mr_processing.o Support Files: base/lst/BSSA.map base/lst/pdu_mr_processing.lst OTHER BINARIES TO BUILD: YES (C) <sys>/load/BOF7.so (C) <sys>/load/BOFA.so (C) <sys>/obj/bof7.o (C) <sys>/obj/bofa.o COMMENTS: The first step in a pool directory update (PDU) is to run command ZRPDU CREATE. ZRPDU CREATE takes release file information and populates pseudo directories. Multiple ECBs are used by ZRPDU CREATE to get the release file information from CA records that are referenced out of FC33 records (dsect I80I8) and update the appropriate pseudo directory. Currently, ZRPDU CREATE has controls to limit the number of ECBs that it uses. Macro LODIC CLASS=IBMBATCH is executed to determine whether ECBs are available before a new ECB is created. Typically, the shutdown level for LODIC CLASS=IBMBATCH is 48% of available ECBs. In a system where a larger number of ECBs are allocated, ZRPDU CREATE can use a large number of ECBs. For example, if 2000 ECBs are allocated, ZRPDU CREATE will stop creating new ECBs when 960 or fewer ECBs are available. This means that 1040 or more ECBs will be in use. Obviously, not all of these in use ECBs will be for ZRPDU CREATE, but it is possible that a large percentage of the in use ECBs will be for ZRPDU CREATE. ZRPDU CREATE is processor intensive. For every released file address it does the following. The IPART table is searched to determine the directory where the file address lives. A find is done on the pseudo directory. The appropriate bit in the directory is updated. Lastly, the psuedo directory is filed. The pseudo directories are intended to be delay file in VFA. As a result, when the find is done, the ECB does not give up control. Because ZRPDU CREATE is processor intensive and because it can use a large number of ECBs, it can drive processor utilization to 100% on all I-streams. When TPF is running in a dedicated LPAR, driving processor utilization to 100% is not a problem. PDU controls effectively give PDU a lower priority than transactional traffic. In this case it makes sense to use all available resources to complete PDU. However, when TPF is running in a shared LPAR, driving all TPF I-streams to 100% may affect other shared LPARs that are on the same machine. In this case there needs to be better controls for the number of ECBs that ZRPDU CREATE uses.
SOLUTION: An additional control is now available for ZRPDU CREATE. Command ZRPDU CNTL has been updated to allow users to set the maximum allowed number of ECBs that ZRPDU CREATE will use when populating the pseudo directories. The format for this new option is ZRPDU CNTL SET MAXECBS-value. In addition, ZRPDU CNTL has the ability to display the current setting for the maximum allowed number of ECBs. The format for this new option is ZRPDU CNTL DISPLAY MAXECBS. The use of LODIC CLASS=IBMBATCH still exists. LODIC CHECK,CLASS=IBMBATCH is executed by ZRPDU CREATE when a new ECB is created. This new control for the maximum allowed ECBs is in addition to the LODIC CLASS=IBMBATCH control. The initial value for the maximum allowed number of ECBs for ZRPDU CREATE is zero. This allows ZRPDU CREATE to operate the same way that it does prior to this enhancement. In this case LODIC CLASS=IBMBATCH is the only control. It is possible to change the maximum allowed ECBs value while ZRPDU CREATE is active. Lastly, the logic that ZRPDU CREATE uses to populate pseudo directories is also used by Recoup. The Recoup 'PRE' phase 1 release pass and the Recoup 'DURING' phase 1 release pass uses this logic. Because the same logic is used, this new control for the maximum allowed number of ECBs is also used. Therefore, ZRPDU CNTL SET MAXECBS is used to limit ECBs when Recoup processes pre Recoup release files and when Recoup processes during Recoup release files. COREQS: NO None. MIGRATION CONSIDERATIONS: YES Functional, automation, and operation changes: Changed commands: ZRPDU CNTL New messages: RPDU0005I RPDU0006I RPDU0017E RPDU0018E RPDU0019E Installation validation: In order to determine a reasonable value for ZRPDU CNTL SET MAXECB, you should run one or more PDUs with the maximum allowed number of ECBs set to 0. During ZRPDU CREATE, do display ZRPDU CNTL DISPLAY MAXECBS. This will give you not only the maximum allowed number of ECBS, but also the number of ECBs that are currently in use. By doing several ZRPDU CNTL DISPLAY MAXECBS commands, you will understand the number of ECBS that are being used by ZRPDU CREATE. Coexistence, migration, and fallback considerations: After installing PJ40766 and before the first PDU is run, you should display the maximum number of allowed ECBs for ZRPDU CREATE. Do command ZRPDU CNTL DISPLAY MAXECBS. The purpose is to validate that the default setting for maximum number of ECBs is zero. BUILD COMMANDS AND INSTRUCTIONS: YES #maketpf commands for linux maketpf -f BSSA pdu_mr_processing.o maketpf -f BOFA bofa.o maketpf -f BOF7 bof7.o maketpf BSSA link TPF_VERIFY_LINK_REFS=NO maketpf BOFA link maketpf BOF7 link maketpf BSSA link UPDATED INFORMATION UNITS: YES z/TPF and z/TPFDF Migration Guide: PUT 2 and Later z/TPF Messages (Online, SQLCODEs, and errno Values) z/TPF Operations See your IBM representative if you need additional information. DOWNLOAD INSTRUCTIONS: http://www.ibm.com/software/htp/tpf/maint/maintztpf.html APAR URL: http://www.ibm.com/software/htp/tpf/ztpfmaint/put10/PJ40766.htm
Reported component name
Reported component ID
NoSpecatt / Xsystem
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels