Skip to main content

TPF : Support : Maintenance

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