64-bit z/OS UNIX stacks above the bar
z/OS UNIX System Services (z/OS UNIX) is the IBM UNIX implementation in the z/OS operating system.
This chapter describes the new 64-bit support for z/OS UNIX stacks above the bar in z/OS Version 2 Release 2 and includes the following topics:
1.1 64-bit z/OS UNIX stacks above the bar
The increasing demand for threads resulted in the capacity approaching maximum limits of the kernel that are below the bar storage. Changes with IBM z/OS V2R2 introduced new 64-bit support; the following possibilities are available:
Internal dynamic stacks can be moved above the bar.
The thread capacity is increased.
1.1.1 New z/OS UNIX parmlib statement
There is a new BPXPRMxx parmlib statement that specifies whether to allocate kernel stacks from above or below bar storage, as shown in Example 1-1.
Example 1-1 New BPXPRMxx parmlib statement
KERNELSTACKS(ABOVE|BELOW)
The two values have the following meaning:
ABOVE
All kernel stacks are allocated above the bar, which increases the thread limit to a maximum of 500,000.
BELOW
All kernel stacks are allocated below the bar, which is the default setting.
 
Note: As you plan your systems, consider the following points:
The value of KERNELSTACKS cannot be changed dynamically.
Any changes in KERNELSTACKS in the BPXPRMxx member do not take effect until the next initial program load (IPL).
1.1.2 OMVS MODIFY and DISPLAY enhancements
There are two new interface controls or output changes that are introduced with z/OS V2R2.
MODIFY OMVS command enhancement
There is a new interface to send Physical File System (PFS) specific commands to a PFS independent of whether the PFS is within the OMVS address space or outside in a colony address space, as shown in Example 1-2.
Example 1-2 Passing a MODIFY command string to a PFS through a z/OS UNIX LFS interface
F OMVS,PFS=pfsname,command_string
The parameters feature the following meanings:
pfsname
The name of the PFS that receives the command.
command-string
The command string to be passed from the Logical File System (LFS) to the PFS.
 
Important: This new interface is needed by a 64-bit zFS when it runs in the OMVS address space because the MODIFY ZFS commands no longer work.
OMVS storage display output enhancement
If KERNELSTACKS(ABOVE) is specified in the BPXPRMxx parmlib member, the output of command D OMVS,STORAGE shows thread information instead of stack cell information.
 
Note: This difference in displays below and above the line are shown in Figure 1-7 on page 5 and Figure 1-8 on page 5.
1.2 z/OS UNIX System Services scenarios
The command enhancements can be used in different environment set ups.
1.2.1 Addressing PFS commands to zFS and TFS
As shown in Example 1-3, zFS and TFS feature their own address space outside OMVS.
Example 1-3 Displays showing zFS and TFS are in a colony address space
$> cn "d omvs,p" | grep TFS
TFS BPXTFS TFS LOCAL A 2015/07/15 15.15.21
TFS GLOBAL SETTINGS: fsfull(99,5) ea 0 em 0
$> cn "d omvs,p" | grep ZFS
ZFS IOEFSCM ZFS LOCAL A 2015/07/15 15.15.20
ZFS PRM=(74,00)
 
Note: The UNIX command cn is a tool to allow IBM MVS™ system commands to be issued and to receive the output to STDOUT in your shell.
For more information, see IBM z/OS Version 2 Release 1 Technical Updates, SG24-8140-00, which is available at this website:
zFS MODIFY commands when zFS is in a colony address space
Example 1-4 shows how to use the two methods that are available to address MODIFY commands to zFS when zFS is running in its own address space outside OMVS because it was introduced.
Example 1-4 Running zFS modify commands directly and via the new F OMVS,PFS interface
$> cn "f zfs,query,level"
IOEZ00639I zFS kernel: z/OS zFS
Version 02.02.00 Service Level OA47906 - HZFS420.
Created on Fri May 29 11:49:19 EDT 2015.
sysplex(filesys,rwshare) interface(4)
IOEZ00025I zFS kernel: MODIFY command - QUERY,LEVEL completed successfully.
$> cn "f omvs,pfs=zfs,query,level"
IOEZ00639I zFS kernel: z/OS zFS
Version 02.02.00 Service Level OA47906 - HZFS420.
Created on Fri May 29 11:49:19 EDT 2015.
sysplex(filesys,rwshare) interface(4)
IOEZ00025I zFS kernel: MODIFY command - QUERY,LEVEL completed successfully.
TFS MODIFY commands when TFS is in a colony address space
Example 1-5 shows how to use the two ways of addressing MODIFY commands to Temporary File System (TFS) when TFS is running in its own address space outside OMVS.
Example 1-5 Running TFS modify commands directly and via the new F OMVS,PFS interface
$> cn "f tfs,q" | grep "GLOBAL SETTINGS"
BPXTF012I GLOBAL SETTINGS: fsfull(99,5) ea 0 em 0
$> cn "f omvs,pfs=tfs,fsfull(80,5)"
BPXTF012I GLOBAL SETTINGS: fsfull(80,5) ea 0 em 0
$> cn "f tfs,ea 10"
BPXTF012I GLOBAL SETTINGS: fsfull(80,5) ea 10 em 0
$> cn "f omvs,pfs=tfs,em 5"
BPXTF012I GLOBAL SETTINGS: fsfull(80,5) ea 10 em 5
TFS MODIFY commands when the TFS PFS is within OMVS
Example 1-6 shows the difference when the PFS is not running in its own address space as the MODIFY interface is not available.
 
Attention: Changing a TFS to be within OMVS is not meant as a suggestion. It is done for demonstration purposes only. We still suggest running a TFS in a colony address space. However, you can move a TFS into OMVS in addition to HFS and zFS.
Example 1-6 For a TFS within OMVS MODIFY commands only work via F OMVS,PFS=
$> cat "//'SYS1.PARMLIB(BPXPRMTF)'"
FILESYSTYPE TYPE(TFSO)
ENTRYPOINT(BPXTFS)
PARM('-fsfull(80,5) -ea 1 -em 1')
$> cn "set omvs=(tf)"
BPXO032I THE SET OMVS COMMAND WAS SUCCESSFUL.
$> cn "d omvs,p" | grep TFSO
TFSO BPXTFS
TFSO -fsfull(80,5) -ea 1 -em 1
TFSO GLOBAL SETTINGS: fsfull(80,5) ea 1 em 1
$> cn "f tfso,ea 0"
IEE341I TFSO NOT ACTIVE
$> cn "f omvs,pfs=tfso,ea 0"
BPXTF012I GLOBAL SETTINGS: fsfull(80,5) ea 0 em 1
 
Because the MODIFY OMVS interface always works for addressing commands to zFS and TFS, the following tip is suggested.
 
Tip: If you switch to always use F OMVS,PFS=, this change is independent of the location of the PFS and helps reduce potential errors.
1.2.2 Displaying OMVS storage information
Example 1-7 and Example 1-8 shows how the output of the D OMVS,STORAGE command differs depending on the BPXPRMxx setting of KERNELSTACKS.
In Example 1-7, KERNELSTACKS is set to BELOW, which is the default and works as it did before.
Example 1-7 Displaying OMVS storage information if KERNELSTACKS is set to BELOW
$> cn "d omvs,o" | grep KERNELSTACKS
KERNELSTACKS = BELOW
$> cn "d omvs,storage"
BPXO075I 20.44.51 DISPLAY OMVS 395
OMVS 0011 ACTIVE OMVS=(2A)
KERNEL STORAGE USAGE
PRIVATE STORAGE:
CURRENT USAGE MAXIMUM AVAILABLE HIGH WATER REGION SIZE
59740158 363046502 59748350 1830789120
STACK CELLS:
CURRENT USAGE MAXIMUM CELLS HIGH WATER
36 35453 46
PROCESS STACK CELL USAGE
USER JOBNAME ASID PID PPID STATE THREADS STACKS
NO PROCESSES FOUND USING 50 OR MORE SPACE SWITCHED STACK CELLS.
In Example 1-8, KERNELSTACKS is set to value ABOVE.
Example 1-8 Displaying OMVS storage information if KERNELSTACKS is set to ABOVE
$> cn "d omvs,o" | grep KERNELSTACKS
KERNELSTACKS = ABOVE
$> cn "d omvs,storage"
BPXO075I 13.01.46 DISPLAY OMVS 919
OMVS 0011 ACTIVE OMVS=(74,2A)
KERNEL STORAGE USAGE
PRIVATE STORAGE:
CURRENT USAGE MAXIMUM AVAILABLE HIGH WATER REGION SIZE
147451904 1815228416 163024896 1830789120
THREADS:
CURRENT USAGE MAXIMUM THREADS HIGH WATER
87 500000 108
PROCESS THREAD USAGE
USER JOBNAME ASID PID PPID STATE THREADS
NO PROCESSES FOUND USING 50 OR MORE THREADS
 
 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset