zIIP Exploitation Feature
The zIIP Exploitation Feature (ZEF) is designed to offload CPU time to the System z Integrated Information Processor (zIIP), a special-purpose processor integrated into the System z server platform infrastructure. By freeing up the general purpose processor (CP), the efficiency of environments where CPU-intensive activities are being performed, such as ZLIB compression and SSL/TLS encryption, can be significantly enhanced.
zIIPs execute programs that are structured to operate under control of z/OS-preemptable enclave service request blocks (SRB). An enclave is a z/OS construct that allows a unit of work or transaction to be assigned a goal by the z/OS Workload Manager (WLM). If a program can operate under control of an enclave SRB, then it can be made eligible to run on a zIIP processor. The COPY operation, which is the core operation of IBM® Connect:Direct® for z/OS®, uses multiple phases in a pipeline to copy data from source to destination. Because some of these phases are CPU-intensive, they are good candidates for zIIP-eligible work.
Requirements to Use the zIIP Exploitation Feature
- Your System z must have one or more online zIIP processors.
- You must be running z/OS 1/10 or later.
- You must activate ZEF by performing one of the following actions:
- Add the ZIIP parameter to your global or local initialization parameter file. See ZIIP = NONE | EXTCOMP | SSLTLS | ALL | PROJECT for a complete description of all settings. Because this parameter is not refreshable, you must restart IBM Connect:Direct to activate the ZEF feature.
- Use the MODIFY command and specify the ZIIP setting you want to use. See IBM Connect:Direct MODIFY Command for more information.
Choosing the Appropriate ZEF Setting
The default value for the ZIIP parameter is NONE meaning that no enclave SRBs will be created and so no CPU time will be offloaded to a zIIP.
To offload all eligible activities to zIIP, you can select the ALL setting. These activities include all SSL/TLS encryption and decryption and extended compression and decompression performed during COPY steps. To check the results of using the ZEF feature, you can check the Copy Termination and Process Termination (PT) records in SELECT STATISTICS.
In the following example, no zIIP processor was online, so all work was done under a CP and is shown in the Time on CP field and no time (0) is shown in the Time on zIIP field. The zIIP Qualify time indicates the amount of time that could have been processed on the zIIP, had one been available 100% of the time it was needed. If work executes on a zIIP processor in a fraction of the time it takes on a CP, then the wall time for the entire process can be estimated as (Time on CP – zIIP Qualify) + (zIIP Qualify * fraction). The fraction is needed because the zIIP Qualify time is normalized to standard processor speed (that is, the fraction is the normalization factor). For more information on how these new IBM Connect:Direct statistics are calculated, see Additional Information on How Time is Calculated for Statistics.
You can project how much time could be offloaded to a zIIP without actually using the zIIP. If a zIIP processor is online, you can specify the PROJECT setting for the zIIP initialization parameter. All activities will continue being dispatched to the CP. If there is no zIIP processor online, there is no difference between the PROJECT and ALL settings.
To segregate extended compression and encryption activities, you can use the EXTCOMP setting to offload only extended compression and decompression CPU time to a zIIP or the SSLTLS setting to offload only SSL and TLS data encryption and decryption CPU time.
Potential Issue When Using ZEF
Because the ZEF feature does not constrain which SRBs are offloaded to zIIPs when ALL is specified, all available zIIPS could easily be dominated by IBM Connect:Direct when multiple concurrent COPY steps with extended compression are executing. To allow zIIP-eligible work to be executed on a CP if all zIIPs are in use, make sure to set the IEAOPTxx parameter, IIPHONORPRIORITY, to YES. For more information, see IEAOPTxx (OPT parameters) in MVS Initialization and Tuning Reference (SA22-7592) or IEAOPTxx (OPT parameters) for the online information center.
Additional Information on How Time is Calculated for Statistics
The three new time-related statistics are derived as follows:
- Time on CP = (IWMEQTME CPUTIME) – (IWMEQTME ZIIPTIME)
- Time on zIIP = (IWMEQTME ZIIPTIME)
- zIIP Qualify = (IWMEQTME ZIIPQUALTIME)
If the installation has no zIIP processors:
Time on zIIP (IWMEQTME ZIIPTIME) = 0
Therefore, Time on CP = (IWMEQTME CPUTIME) – 0
However, regardless of whether the installation has a zIIP processor:
Time on CP (IWMEQTME CPUTIME) – (IWMEQTME ZIIPTIME) + Time on zIIP (IWMEQTME ZIIPTIME) = (IWMEQTME CPUTIME)
The (IWMEQTME ZIIPTIME) and (IWMEQTME CPUTIME) times in the Process Termination record example above will be the same (except for rounding errors) as reported by SMF and RMF for the enclave. But for step statistics reported in COPY and RUN TASK records, times are "slices" of the enclave times and will add up to slightly less than the corresponding Process Termination record times. These differences should be negligible. This occurs because there is a small amount of between-step processing charged to the enclave that is not charged to any particular step. All of the between-step time is CP time; none is zIIP qualified.
Because SSL and TLS handshakes occur before an enclave is created, their CPU time is not reported in any enclave time.
Because IBM Connect:Direct reports zIIP-qualified time, not zIIP-eligible time, the IEAOPTxx parameter setting for PROJECTCPU has no effect on the times in IBM Connect:Direct statistics. However, if PROJECTCPU=NO, there may be nothing in SMF or RMF to compare IBM Connect:Direct statistics to.