Skip to: Abstract | Comments | Solution | Migration | Download
APAR NUMBER: PK12199 PRODUCT: z/TPFDF FUNCTIONAL AREA: TPFDF CENTRAL DATABASE ROUTINES SHIPPED IN PUT: 2 ABSTRACT: Reorganize SW00SR so that executable code does not share a cache line with data that may be updated during the same read operation. PACKAGE CONTENTS: Source Segments: (C) tpfdf/include/c_sw00sr.h (C) tpfdf/macro/sw00sr.mac (C) tpfdf/rt/uao0.asm (C) tpfdf/rt/ubk0.asm Object Only Binaries: None. Configuration Independent Binaries: (C) base/load/DYDN.so (C) base/obj/dydn.o Support Files: base/lst/DYDN.map base/lst/dydn.lst OTHER BINARIES TO BUILD: (C) <sys>/lib/libUTDF.so (C) <sys>/load/BGAQ.so (C) <sys>/load/BKA1.so (C) <sys>/load/BOFM.so (C) <sys>/load/BRC0.so (C) <sys>/load/BRCF.so (C) <sys>/load/BRCJ.so (C) <sys>/load/BRV3.so (C) <sys>/load/BRV6.so (C) <sys>/load/BRV8.so (C) <sys>/load/BRV9.so (C) <sys>/load/CPS0.so (C) <sys>/load/ICDF.so (C) <sys>/load/UFB2.so (C) <sys>/load/UFB6.so (C) <sys>/load/UFB9.so (C) <sys>/load/UFBA.so (C) <sys>/load/UFBB.so (C) <sys>/load/UFBJ.so (C) <sys>/load/UFBK.so (C) <sys>/load/UFBM.so (C) <sys>/load/UFBP.so (C) <sys>/load/UFBR.so (C) <sys>/load/UFBX.so (C) <sys>/load/UFC0.so (C) <sys>/load/UFD1.so (C) <sys>/load/UFD4.so (C) <sys>/load/UFD6.so (C) <sys>/load/UFD8.so (C) <sys>/load/UFD9.so (C) <sys>/load/UFDD.so (C) <sys>/load/UFDE.so (C) <sys>/load/UFE1.so (C) <sys>/load/UFE3.so (C) <sys>/load/UFE5.so (C) <sys>/load/UFE9.so (C) <sys>/load/UFEC.so (C) <sys>/load/UFED.so (C) <sys>/load/UFI8.so (C) <sys>/load/UFML.so (C) <sys>/load/UFTH.so (C) <sys>/load/UTDF.so (C) <sys>/obj/bgaq.o (C) <sys>/obj/bka1.o (C) <sys>/obj/bofm.o (C) <sys>/obj/brc0.o (C) <sys>/obj/brcf.o (C) <sys>/obj/brcj.o (C) <sys>/obj/brv3.o (C) <sys>/obj/brv6.o (C) <sys>/obj/brv8.o (C) <sys>/obj/brv9.o (C) <sys>/obj/cccpse.o (C) <sys>/obj/cctrap.o (C) <sys>/obj/icdf.o (C) <sys>/obj/uaa0.o (C) <sys>/obj/uag0.o (C) <sys>/obj/uah0.o (C) <sys>/obj/uaj0.o (C) <sys>/obj/uak0.o (C) <sys>/obj/ual0.o (C) <sys>/obj/uam0.o (C) <sys>/obj/uan0.o (C) <sys>/obj/uao0.o (C) <sys>/obj/uap0.o (C) <sys>/obj/uaq0.o (C) <sys>/obj/ub50.o (C) <sys>/obj/ub80.o (C) <sys>/obj/uba0.o (C) <sys>/obj/ubb0.o (C) <sys>/obj/ubf0.o (C) <sys>/obj/ubk0.o (C) <sys>/obj/ufb2.o (C) <sys>/obj/ufb6.o (C) <sys>/obj/ufb9.o (C) <sys>/obj/ufba.o (C) <sys>/obj/ufbb.o (C) <sys>/obj/ufbj.o (C) <sys>/obj/ufbk.o (C) <sys>/obj/ufbm.o (C) <sys>/obj/ufbp.o (C) <sys>/obj/ufbr.o (C) <sys>/obj/ufbx.o (C) <sys>/obj/ufc0.o (C) <sys>/obj/ufd1.o (C) <sys>/obj/ufd4.o (C) <sys>/obj/ufd6.o (C) <sys>/obj/ufd8.o (C) <sys>/obj/ufd9.o (C) <sys>/obj/ufdd.o (C) <sys>/obj/ufde.o (C) <sys>/obj/ufe1.o (C) <sys>/obj/ufe3.o (C) <sys>/obj/ufe5.o (C) <sys>/obj/ufe9.o (C) <sys>/obj/ufec.o (C) <sys>/obj/ufed.o (C) <sys>/obj/ufi8.o (C) <sys>/obj/ufml.o (C) <sys>/obj/uft2.o (C) os390/bin/ppcp.pds (C) os390/obj/ppcp.o (C) os390/obj/stpp.o PREREQUISITE APARS IN APPLICATION ORDER: tpfdf/include/c_sw00sr.h PK12199(2) tpfdf/macro/sw00sr.mac PK06927(2) PK12199(2) tpfdf/rt/uao0.asm PK12199(2) tpfdf/rt/ubk0.asm PK12199(2) <sys>/lib/libUTDF.so PK06657(1) PK05909(1) PJ30389(1) PK08477(1) PK07058(1) PK09151(1) PK09496(1) PK07621(1) PK09149(1) PK09153(1) PK07853(2) PK08095(2) PK10215(2) PK13183(2) PK06927(2) PK12199(2) <sys>/load/BGAQ.so PK12199(2) <sys>/load/BKA1.so PK12199(2) <sys>/load/BOFM.so PK12199(2) <sys>/load/BRC0.so PK12199(2) <sys>/load/BRCF.so PK12199(2) <sys>/load/BRCJ.so PK12199(2) <sys>/load/BRV3.so PK12199(2) <sys>/load/BRV6.so PK12199(2) <sys>/load/BRV8.so PK12199(2) <sys>/load/BRV9.so PK12199(2) <sys>/load/CPS0.so PJ30299(1) PJ30306(1) PJ30297(1) PJ30316(1) PJ30341(1) PJ30360(1) PJ30288(1) PJ30318(1) PJ30357(1) PJ30312(1) PJ30365(1) PJ30374(1) PJ30364(1) PJ30342(1) PJ30332(1) PJ30339(1) PJ30398(1) PJ30286(1) PJ30422(1) PJ30391(1) PJ30409(1) PJ30389(1) PJ30457(1) PJ30429(1) PJ30458(1) PJ30481(1) PJ30442(1) PJ30416(1) PJ30428(1) PJ30487(1) PJ30313(1) PJ30528(1) PJ30402(1) PJ30479(1) PJ30327(1) PJ30423(1) PJ30523(1) PJ30500(1) PJ30517(1) PJ30400(1) PJ30547(1) PJ30571(2) PJ30414(2) PJ30542(2) PJ30424(2) PJ30603(2) PJ30614(2) PJ30619(2) PJ30613(2) PJ30558(2) PJ30561(2) PJ30602(2) PJ30667(2) PJ30632(2) PJ30652(2) PJ30673(2) PJ30324(2) PJ30559(2) PJ30599(2) PJ30564(2) PJ30686(2) PJ30750(2) PJ30747(2) PJ30721(2) PJ30713(2) PJ30562(2) PJ30780(2) PJ30760(2) PJ30645(2) PJ30628(2) PJ30769(2) PJ30774(2) PJ30773(2) PJ30738(2) PJ30726(2) PJ30723(2) PJ30827(2) PJ30740(2) PJ30804(2) PJ30878(2) PJ30870(2) PJ30880(2) PJ30871(2) PJ30892(2) PJ30790(2) PJ30456(2) PJ30900(2) PK12199(2) <sys>/load/ICDF.so PJ30297(1) PJ30312(1) PJ30358(1) PJ30457(1) PJ30442(1) PJ30500(1) PJ30656(2) PJ30767(2) PK12199(2) <sys>/load/UFB2.so PK12199(2) <sys>/load/UFB6.so PK12199(2) <sys>/load/UFB9.so PK10217(2) PK12199(2) <sys>/load/UFBA.so PK12199(2) <sys>/load/UFBB.so PK09152(1) PK12199(2) <sys>/load/UFBJ.so PK12199(2) <sys>/load/UFBK.so PK12199(2) <sys>/load/UFBM.so PK08095(2) PK12199(2) <sys>/load/UFBP.so PK12199(2) <sys>/load/UFBR.so PK12199(2) <sys>/load/UFBX.so PK12199(2) <sys>/load/UFC0.so PK12199(2) <sys>/load/UFD1.so PK07617(1) PK12199(2) <sys>/load/UFD4.so PK08095(2) PK12199(2) <sys>/load/UFD6.so PK12199(2) <sys>/load/UFD8.so PK12199(2) <sys>/load/UFD9.so PK12199(2) <sys>/load/UFDD.so PK12199(2) <sys>/load/UFDE.so PK12199(2) <sys>/load/UFE1.so PK12199(2) <sys>/load/UFE3.so PK12199(2) <sys>/load/UFE5.so PK12199(2) <sys>/load/UFE9.so PK12199(2) <sys>/load/UFEC.so PK12199(2) <sys>/load/UFED.so PK12199(2) <sys>/load/UFI8.so PK07181(2) PK12199(2) <sys>/load/UFML.so PK12199(2) <sys>/load/UFTH.so PK12199(2) <sys>/load/UTDF.so PK06657(1) PK05909(1) PJ30389(1) PK08477(1) PK07058(1) PK09151(1) PK09496(1) PK07621(1) PK09149(1) PK09153(1) PK07853(2) PK08095(2) PK10215(2) PK13183(2) PK06927(2) PK12199(2) <sys>/obj/bgaq.o PK12199(2) <sys>/obj/bka1.o PK12199(2) <sys>/obj/bofm.o PK12199(2) <sys>/obj/brc0.o PK12199(2) <sys>/obj/brcf.o PK12199(2) <sys>/obj/brcj.o PK12199(2) <sys>/obj/brv3.o PK12199(2) <sys>/obj/brv6.o PK12199(2) <sys>/obj/brv8.o PK12199(2) <sys>/obj/brv9.o PK12199(2) <sys>/obj/cccpse.o PJ30341(1) PJ30312(1) PJ30365(1) PJ30457(1) PJ30442(1) PJ30500(1) PJ30571(2) PJ30424(2) PJ30613(2) PJ30667(2) PJ30324(2) PJ30559(2) PJ30686(2) PJ30747(2) PJ30562(2) PJ30760(2) PJ30645(2) PJ30738(2) PJ30740(2) PJ30871(2) PJ30790(2) PJ30456(2) PJ30900(2) PK12199(2) <sys>/obj/cctrap.o PJ30457(1) PJ30327(1) PJ30614(2) PK12199(2) <sys>/obj/icdf.o PJ30297(1) PJ30312(1) PJ30358(1) PJ30457(1) PJ30442(1) PJ30500(1) PJ30656(2) PJ30767(2) PK12199(2) <sys>/obj/uaa0.o PK13183(2) PK12199(2) <sys>/obj/uag0.o PK07621(1) PK13183(2) PK06927(2) PK12199(2) <sys>/obj/uah0.o PK13183(2) PK12199(2) <sys>/obj/uaj0.o PK10215(2) PK13183(2) PK12199(2) <sys>/obj/uak0.o PK13183(2) PK12199(2) <sys>/obj/ual0.o PK06657(1) PK13183(2) PK12199(2) <sys>/obj/uam0.o PK09153(1) PK13183(2) PK12199(2) <sys>/obj/uan0.o PK13183(2) PK12199(2) <sys>/obj/uao0.o PK13183(2) PK12199(2) <sys>/obj/uap0.o PK09149(1) PK08095(2) PK13183(2) PK12199(2) <sys>/obj/uaq0.o PK13183(2) PK12199(2) <sys>/obj/ub50.o PK06657(1) PK08477(1) PK13183(2) PK12199(2) <sys>/obj/ub80.o PK13183(2) PK12199(2) <sys>/obj/uba0.o PK13183(2) PK12199(2) <sys>/obj/ubb0.o PK07621(1) PK13183(2) PK12199(2) <sys>/obj/ubf0.o PK13183(2) PK12199(2) <sys>/obj/ubk0.o PK13183(2) PK12199(2) <sys>/obj/ufb2.o PK12199(2) <sys>/obj/ufb6.o PK12199(2) <sys>/obj/ufb9.o PK10217(2) PK12199(2) <sys>/obj/ufba.o PK12199(2) <sys>/obj/ufbb.o PK09152(1) PK12199(2) <sys>/obj/ufbj.o PK12199(2) <sys>/obj/ufbk.o PK12199(2) <sys>/obj/ufbm.o PK08095(2) PK12199(2) <sys>/obj/ufbp.o PK12199(2) <sys>/obj/ufbr.o PK12199(2) <sys>/obj/ufbx.o PK12199(2) <sys>/obj/ufc0.o PK12199(2) <sys>/obj/ufd1.o PK07617(1) PK12199(2) <sys>/obj/ufd4.o PK08095(2) PK12199(2) <sys>/obj/ufd6.o PK12199(2) <sys>/obj/ufd8.o PK12199(2) <sys>/obj/ufd9.o PK12199(2) <sys>/obj/ufdd.o PK12199(2) <sys>/obj/ufde.o PK12199(2) <sys>/obj/ufe1.o PK12199(2) <sys>/obj/ufe3.o PK12199(2) <sys>/obj/ufe5.o PK12199(2) <sys>/obj/ufe9.o PK12199(2) <sys>/obj/ufec.o PK12199(2) <sys>/obj/ufed.o PK12199(2) <sys>/obj/ufi8.o PK07181(2) PK12199(2) <sys>/obj/ufml.o PK12199(2) <sys>/obj/uft2.o PK12199(2) base/load/DYDN.so PK12199(2) base/obj/dydn.o PK12199(2) os390/bin/ppcp.pds PJ30312(1) PJ30358(1) PJ30457(1) PJ30442(1) PJ30500(1) PJ30656(2) PJ30847(2) PJ30424(2) PJ30767(2) PK12199(2) os390/obj/ppcp.o PJ30312(1) PJ30457(1) PJ30442(1) PJ30656(2) PK12199(2) os390/obj/stpp.o PJ30312(1) PJ30358(1) PJ30457(1) PJ30442(1) PJ30500(1) PJ30656(2) PJ30847(2) PJ30767(2) PK12199(2) COMMENTS: In z/TPFDF, during read operations, there is a section in memory where both data and instructions share the same cache line. The SW00SR blocks are z/TPFDF work blocks that contain information about each open file in the system. Within a SW00SR is a field, SW00KL1, that is used to contain executable code to process keys. During read operations, it is possible that code will be executed in SW00KL1 and also that another area of storage within the same cache line will be updated a few instructions later. Evolving hardware architecture encourages that instructions and data each use their own cache line. SOLUTION: SW00KL1 is moved from it's current displacement within the SW00SR block into its own cache line. COREQS: PJ30785 MIGRATION CONSIDERATIONS: Additionals steps are required as part of the installation of this APAR: - reassemble any assembler program with a KEY1= parameter coded on a DBxxx macro (the only exception is that KEY1 parameters code on a DBDEF macro do not need to be reassembled) - reassemble any assembler program referencing fields SW00SIZ, SW00KL1 or SW00IFB - recompile any C/C++ program referencing fields sw00siz, sw00kl1 or sw00ifb - all objects resulting from these additional reassemblies and recompiles must be linked and loaded concurrently with all other changes associated with this APAR, as well as z/TPF APAR PJ30785 - after the changes are loaded and activated, enter ZUDFM MLS to rebuild the macro label set (MLS) database (ZUDFM MLS must also be entered if a fallback becomes necessary) BUILD COMMANDS AND INSTRUCTIONS: #maketpf commands for linux maketpf -f DYDN dydn.o maketpf -f UFTH uft2.o maketpf -f UFML ufml.o maketpf -f UFI8 ufi8.o maketpf -f UFED ufed.o maketpf -f UFEC ufec.o maketpf -f UFE9 ufe9.o maketpf -f UFE5 ufe5.o maketpf -f UFE3 ufe3.o maketpf -f UFE1 ufe1.o maketpf -f UFDE ufde.o maketpf -f UFDD ufdd.o maketpf -f UFD9 ufd9.o maketpf -f UFD8 ufd8.o maketpf -f UFD6 ufd6.o maketpf -f UFD4 ufd4.o maketpf -f UFD1 ufd1.o maketpf -f UFC0 ufc0.o maketpf -f UFBX ufbx.o maketpf -f UFBR ufbr.o maketpf -f UFBP ufbp.o maketpf -f UFBM ufbm.o maketpf -f UFBK ufbk.o maketpf -f UFBJ ufbj.o maketpf -f UFBB ufbb.o maketpf -f UFBA ufba.o maketpf -f UFB9 ufb9.o maketpf -f UFB6 ufb6.o maketpf -f UFB2 ufb2.o maketpf -f UTDF uaa0.o uag0.o uah0.o uaj0.o uak0.o ual0.o uam0.o uan0.o uao0.o uap0.o uaq0.o ub50.o ub80.o uba0.o ubb0.o ubf0.o ubk0.o maketpf -f ICDF icdf.o maketpf -f CPS0 cccpse.o cctrap.o maketpf -f BRV9 brv9.o maketpf -f BRV8 brv8.o maketpf -f BRV6 brv6.o maketpf -f BRV3 brv3.o maketpf -f BRCJ brcj.o maketpf -f BRCF brcf.o maketpf -f BRC0 brc0.o maketpf -f BOFM bofm.o maketpf -f BKA1 bka1.o maketpf -f BGAQ bgaq.o maketpf CPS0 link maketpf ICDF link maketpf BKA1 link maketpf BOFM link maketpf BRV3 link maketpf BRV6 link maketpf BRV8 link maketpf BRV9 link maketpf DYDN link maketpf BRCF link maketpf BRCJ link maketpf BRC0 link maketpf BGAQ link maketpf UTDF link maketpf UFBA link maketpf UFBB link maketpf UFBJ link maketpf UFBK link maketpf UFBM link maketpf UFBP link maketpf UFBR link maketpf UFBX link maketpf UFB2 link maketpf UFB6 link maketpf UFB9 link maketpf UFC0 link maketpf UFDD link maketpf UFDE link maketpf UFD1 link maketpf UFD4 link maketpf UFD6 link maketpf UFD8 link maketpf UFD9 link maketpf UFEC link maketpf UFED link maketpf UFE1 link maketpf UFE3 link maketpf UFE5 link maketpf UFE9 link maketpf UFI8 link maketpf UFML link maketpf UFTH link #maketpf commands for z/OS maketpf -f ppcp ppcp.o stpp.o maketpf ppcp link None. UPDATED INFORMATION UNITS: None. See your IBM representative if you need additional information. DOWNLOAD INSTRUCTIONS: http://www.ibm.com/software/htp/tpf/pages/maint.htm APAR URL: http://www.ibm.com/software/htp/tpf/ztpfmaint/put2/PK12199.htm APAR Package
